周四晚上又重新把C#基础看了一遍,设计模式的书也在看。其实说不紧张,还是挺紧张的,毕竟工作了十多年,好久没有过面试经历了,都不知道要问什么。周五凌晨两点多就睡不着了,醒了看了看时间,然后就闭眼重新整理了一遍思路。迷迷糊糊又做了个梦,梦见自己正襟危坐准备面试,还穿着衬衫……忽然就醒了,才五点多,于是就起床洗漱准备电脑、网络,准备面试了。7点面试正式开始,先是打电话过来问能不能Skype,然后就开始视频聊天了。面试我的是两个人,年纪都不大,开始让我介绍了一些我的工作,问了我做过的一些项目的情况。然后就问C#的基础问题,还有SQL的一些内容,但SQL的问题我没听明白,没答上来,他就说算了,后面还包括了一些设计模式的问题。面试涵盖了以下内容:

  • interface和abstract
  • protect和internal
  • async,await ,Task
  • var和dynamic
  • Singleton
  • delegate 和 Event
  • Generic ,boxing和unboxing
  • Repository模式
  • 熟悉的设计模式 
  • WCF
  • ASP.NET的Filter
  • Authentication和Authorization 这俩单词我老混……
  • 如何处理Exception 这个问题我没听懂,后来没再让回答。后来回忆,应该是问ASP.NET MVC中的ExceptionFilter
  • SQL Server

  现在来看,都是比较基础的,各位应该都可以答个差不多吧。具体深入的话,就看个人经验了,面试并不是固定的题目,interviewer会根据对方的回答继续引申下去,来了解面试者的真实水平。这部分结束后就是一个在线测试,他们提供了一个在线的编程环境,提供了一个完成了部分代码的计算器项目,要求修复bug,并重构。基本上就是找找bug,我用了工厂模式去改他的if,应该都算最基本的了。但是最后也没做完,因为网络太差,每点一下就感觉有延迟。后来结束的时候我说了下我的思路。基本也还算沟通的不错。最后问我还有什么问题,我问了两个,一个是根据他们的开发模式,Scrum/Waterfall如何应对用户的需求变化,一个是他们有没有用到什么公开的第三方库或框架,或者他们自己开发的类库或框架。然后就说后面再联系,面试就结束了。我一看表,已经九点多了,足足进行了两个多小时。站起来的时候感觉腿都软了,一大早都没吃饭。

面试B

  7月31日周一上班,就收到中介的邮件,说另一家公司B的面试安排在周二下午3点,也就是中国的11点。时间还好。但是没说是技术面试还是什么。于是都准备了一下。8月1日早上还是简单回顾了下可能会问到的问题。11点准时电话就来了。这次心态轻松了很多,interviewer应该是这个职位的直接领导,除了一般性的介绍之外,还重点了解了以下问题:

  • 就简历中提到的项目,个人发挥了什么样的作用?项目架构设计有哪些需要注意的?我谈了关注点分离,依赖倒置,封装等,她又问如何看单一职责,当然这些都是一些软件开发中最基础的概念,就是谈谈自己的理解就好。
  • 因为简历中提到了部分项目管理工作,就这方面展开,在项目管理方面做了哪些工作?如何测试?因为平时工作确实不负责测试,有别的同事做这个事情,所以就直接说了用哪些框架。还问了数据库的一些内容。
  • 问了我微软MVP的一些内容,需要做什么工作?感想如何?如何开展活动?这部分是比较轻松的,因为都是实际经历,所以聊的比较放松。
  • 再就是问我,如果在前端和后端中选择,选哪个?我说还是选后端,因为Web API应用很广泛,可以被多种平台调用。
  • 还问了开发模式的问题,是传统的瀑布型还是敏捷型。我说传统开发模式已经不适合现代软件开发了,大部分情况下都是敏捷开发,快速响应用户需求变化。
  • 最后问我还有什么问题,我还是问了如何应对需求变化的问题,她说的也是敏捷模式,每两周一个发布周期。基本上跟我理解的差不多。

  这次面试在友好的气氛中结束。她说会再跟中介联系。

  第二天也就是8月2日,我又给中介发邮件问情况,答复说一个好消息一个坏消息。坏消息是第一个公司A拒绝了我,好消息是第二个公司B让我继续做一个测试。说实话我挺失望的,因为我感觉公司A面试过程还算比较顺利,但不知为何还是没达到他们的要求,给的理由也比较牵强,说我WCF经验不足,我记得当时说的是有WCF经验,但是很久不用WCF了,现在都用Web API了。可能就是因为这个认为我经验不足吧,其实我不说应该也没事。但这就是面试,拒绝你是不需要理由的。我还是按照要求做了公司B的在线测试,这个测试与中介让我做的测试形式一样,但不是编程题了,而是一些阅读理解、逻辑推理方面的题目。我做完后就发邮件告知中介已经完成,让她再帮我问问。8月4日中介答复说我做的还不错,会再约时间。转眼又是一周,8月8日周二我收到了中介的邮件,公司B的面试定在周四,还是11点。这两天还是继续看英文文档,熟悉一些名词的英语说法,准备面试。

  8月10日是第二次面试。过程跟公司A的差不多,记录的时候其实已经知道被拒的结果了,还是记录一下。聊了以下内容:

  首先还是项目经验,就其中提到的SignalR、Angular问了些问题,有什么优势之类的。如何设计Web API,还有RESTful。以及测试的一些问题。坑爹的是SQL,他们问我存储过程,第一次我没听明白,又重复了一次,原来说的是stored procedures,我这么多年一直读的是错的……我不知道其他团队怎么看这个问题,我们现在基本上不用存储过程了,有ORM基本上可以处理大多数的SQL语句,存储过程比较难调试,迁移不同的数据库也比较麻烦,我还是倾向于业务逻辑写在代码里。可能我理解有误,他们想问我存储过程的问题,我谈的是存储过程的劣势,结果以我SQL经验不足的原因拒了。

first.. 2 3 4 5 6 .. last