程序员面试不仅要复习技术,更要揣摩面试官的心理。
站在面试官角度想问题,他们为了能找到一名优秀的人才,需要经历无数次枯燥的面试,而且很多面试都只是在浪费双方的时间,这是时间成本。
即便找到了优秀人才,优秀人才也很有可能不愿来。这时候,面试官是愿意等,还是找一个不那么优秀但还可以的应聘者呢?这是一个博弈的过程。所以,即便你不能全部回答面试官的所有问题,甚至都不会某些技术,但如果你能达到60分,就有可能被入取。
此外,要听懂面试官话中的话,什么叫“听懂”,简单的讲就是,不要从表面上去理解话的意思,而是站在面试官的角度去思考这句话。
比如,面试官问你有什么缺点,他不是真的对你的缺点感兴趣,而是考察你是否诚实,以及看待缺点的态度,因为很多人被问到自己的缺点时,要么开玩笑说我很完美没有缺点,要么把优点包装成缺点,这样的回答都会让面试官觉得你这个人不靠谱。
再比如,当我说是从培训学校出来的时候,面试官表现出一副很怀疑的表情,好像我就是一个弄虚作假的冒牌java工程师,但面试官的怀疑是可以理解的,或许面试官之前被类似的人骗过。面试的时候能说会道,好像什么都会,一旦上班开始敲代码,就写不出来。这时,我们更应该表现我们的水平,来证明我们的确有这个能力胜任这份工作。
我一直认为,成为一名程序员是一件很骄傲的事,只要技术牛,啥问题都能解决,于是一门心思研究技术,等工作后、经历两个星期的煎熬的面试后,我才深刻地体会到,程序员的沟通表达能力,也极其重要。除此之外,即便你只是一名技术人员,但你也需要了解管理、前端、UI设计、产品经理等等职位。社会在变化,公司对人才的要求也在变化,而且是往越全面的方向变化。
所以,如今并不仅仅做好本份工作就可以了,每个怀有技术梦想的程序员都应该从多维度、全面的发展自己。