我面试过的程序员,没有100个也有80个了。我来总结下,什么样子的人比较容易被录用。
1. 题要做满
一般来说,程序员面试都会先由HR给一张面试题。面试题一般包含:逻辑题、代码规范、数据库理论、简单算法、高级函数应用、服务器基础。大多数公司出的题目,百度上都有。如果面试的岗位是初级开发,大胆去百度吧,只要填满就能获得好感度。如果面试的是中级开发,这些题只需要写重点就行,对做题时间会有要求。如果面试的是高级开发,在中级开发的要求上,把字写得漂亮些。
2. 面试问答
第一面,基本是技术主管/经理。可能是因为营造优越感,一定会问高级问题,即使需要的岗位是初级岗位。
提问的第一波是面试题上的细节,确定是百度的还是真的懂的。第二波,会随机提问一些技术问题。
PHP面试最喜欢问的就是常用框架和框架之间的差别。
Java面试最喜欢问关于函数构建、算法加密等问题。
前端面试,基本就拿着其他公司的界面设计问多久可以实现。
会涉及一些数据库,基本都是问增改删查的应用、数据库设计的规范。
其他的可能会随机选取一些业务场景,让当场做程序设计。
整体的提问过程,能回答上一半就可以进入下一个面试节点。回答的时候态度一定要好,不知道的就回答“以前工作中没怎么用到”,千万不能胡说八道。知道的,也谦虚一点,回答“我过往是如此运用的”。
3. 面试沟通
可能是第二面,也可能是第三面,会有一个看上去和蔼可亲的人来面试。这个人基本上是某个项目负责人,面试的内容是沟通能力。
一开始也会带一点基础技术问题,基本上还是根据面试题扩展的。
然后就会开始问是否可以加班、如果需求发生变更怎么处理、对过往的工作从业务上理解多少、响应Bug会具体怎么做。回答不能啰嗦,要肯定句,比如:可以加班。而不要,模棱两可或者带有场景的回答,比如:不排斥加班,但是无意义的加班不太能接受。
4. 面试情怀
一般部门总监会谈这个问题。这部分,每个人都不同,但是未来规划一定要明确。一般程序员就两个发展:管理和技术专家。一般问这个问题,就是看短期内会不会离职,是不是一个有目标的人。
还会问一些兴趣爱好,看未来能不能融入团队氛围。
接下来就问薪资和待遇要求了。这部分,请根据自己的心走。不要觉得不好意思开口,面试是双向选择的过程。如果面试感觉比较好,当然也可以适当的降低一点要求。切记不要说出让自己下不了台的薪资。
说几个有意思的对话,在以往面试中遇见过的:
程序员李某面试:
-Q:以前的工作是否用过敏捷开发?
-A:核心就是以人为本。开发设计功能跟着心走。
结果:回答完,面试就结束了。
程序员王某面试:
-Q:你当初做保险行业的,怎么处理用户名、密码、银行卡入库加密这块?
-A:为什么要加密?明文存就好了啊。
结果:认为明文存是理所当然不假思索的,Pass。
程序员马某面试:
-Q:PHP的常用框架了解的有哪些?
-A:ThinkPHP和Yii。
-Q:他们的区别是什么?或者说优缺点?
-A:(沉默了3分钟)其实我没有接触过Yii。
结果:后面的面试也基本是这种一知半解的节奏,Pass。
程序员刘某面试:
-Q:如果产品经理安排了一个任务给你,然后当天就需求变更了,你怎么办?
-A:这种事情绝对不允许发生第二次。
结果:应该会很难融入团队吧,Pass。
但愿天下程序员都能提升语言艺术,不能因为有一技旁身,就忽略了说话的技巧。