程序员面试金典第一章 面试流程以及面试时十大常见错误

在看程序员面试金典这本书,觉得这本书很多地方写得都不错,把好的地方记录一下。

程序员面试金典第一章 面试流程以及面试时十大常见错误

1.4面试评估流程

招聘人员可能会告诉你,他们主要考查四个方面:工作经验、企业文化契合度、编程技能及分析能力。这四个方面相辅相成,但在决定录用与否时,分量最重的通常还是编程技能和分析能力(或者看你是否聪明)。

1.5答题情况

有则谣传甚广且颇具迷惑性:求职者必须答对全部问题才会被录用。事实绝非如此。
首先,面试题的答案很难用“正确”和“错误”去简单评判。我个人在评估求职者的面试表现时,一般不会只看他们答对了几道题。相反,我会考量其最终解法是否最优,用时多久,代码整洁与否。这不只是单纯的是非判断,还要综合考虑很多因素。

其次,你的面试表现还会拿来跟其他求职者作比较。比如说,你用15分钟出色地解决了一道题,而另一个人用不到5分钟就搞定了一道比较容易的题,是否就意味着那个人的表现比你好呢?也许是,但也未必。很自然,面试官出的题越简单,他们越是希望你尽快给出答案。但要是题目很难,他们也不会指望你能答得又快又好,毕竟,出点纰漏也是在所难免的。

1.7十大常见错误

错误一:只在计算机上练习

如果你正准备参加海洋游泳比赛,你会只在泳池里练习吗?应该不会。你得去体验大风大浪及海洋里各种情况带来的影响。所以,你肯定会希望到海洋中实地训练。

在计算机上借助编译器演练面试题就像只在泳池里练习一样。抛开这个环境吧,让我们拿出纸和笔。你可以在写好全部代码并做出人工测试之后,再在计算机上用编译器进行验证。

错误二:不做行为面试题演练

很多求职者将全部时间花在演练技术问题上,而忽略了行为面试题。你猜怎么着?面试官可是两者都会考查的。

而且不止于此,你回答行为问题的表现其实还会左右面试官对你技术能力的看法。行为问题的准备工作其实相对比较轻松,而且容易达到事半功倍的效果。用心回顾你以往的项目和经历。然后准备一些小故事。

错误三:不做模拟面试训练

假如你要准备一次重大演讲,所有同事和相关人员都将列席,而且它还关乎你的未来。要是只在头脑里无声地练习演讲,到了真正演讲时,你肯定会发狂的。

光是纸上谈兵,不做模拟面试也会陷入同样的境地。如果你是一名工程师,肯定认识不少同行,不妨找个朋友帮你做模拟面试。作为回报,你也可以给他当一回面试官。

错误四:试图死记硬背答案

死记硬背答案最多只能解决一些特定问题,但是一碰到新的题,你可能就傻眼了。而且,基本上你不太可能碰上出自本书的题目。

最靠谱的做法就是,不看答案。先把书里的题全部认真做一遍。这样你才有可能练就各种技能和技巧,从容应对新问题。就算你只能大概复习一下为数不多的题,这种做法也会对你有帮助。质量胜于数量。

错误五:不大声说出你的解题思路

透露个秘密:面试官才不会知道你心里想什么。因此,面试时默不作声,我根本无法了解你的思路。假如你沉默时间过长,我还会误以为你毫无进展。你得多出声,没准说着说着就找到了解法。请大声说出解题的思路。这样面试官就会知道你还在处理这个问题,没有卡壳。

这么做还有个好处就是不至于跑题,从而有助于你尽快找到解法。当然,最大的作用就是突显你强大的沟通能力。何乐而不为呢?

错误六:过于仓促

写程序不是什么竞赛,面试也不是,所以解题时不要太过仓促。代码写得太草率容易出问题,也说明你这个人不够细心。请放慢节奏,有条不紊,多做测试,问题考虑得周全些。这么一来,最终你反而能更高效地给出答案,错误也会少一些。

错误七:代码不够严谨

其实每个人都写得出完美的代码,但有时我们还是会在面试中写出错误百出的程序,不是吗?代码冗余、数据结构乱七八糟(比如,缺少面向对象设计)等等,这些都是常见错误!写代码时,不妨设想一下你是在处理实际问题,要注重可维护性。将代码划分成不同的子程序,并精心设计数据结构来处理相应的数据。

错误八:不做测试

在日常工作中,你不可能不做任何测试就提交代码,既然如此,为什么要在面试中省略这一步呢?写完代码后,请“运行”(或者审查)一下程序来验证结果。或者,在处理复杂问题时,你还可以边写代码边测试。

错误九:修正错误时漫不经心

程序总会有bug,这就是生活或者编程的本来面目。只要用心测试你的代码,bug也许就会现出原形。那也不错。

不过,重要的是发现bug时,你必须三思而后行,修正之前先确定出错原因。有些求职者看到传入特定参数时函数返回false而不是true,会直接将返回值取反,接着检查问题是否得到修正。当然,偶尔他们也能瞎猫碰上死耗子,但实际上如此仓促行事往往会导致更多的bug,同时也反映出你这个人比较粗心大意。

有bug其实很正常,但胡乱修改代码却很严重。

错误十:轻言放弃

我知道面试题都很难,但不难怎么显出求职者的水平呢?你会迎难而上还是轻言放弃?态度很重要,面试官都喜欢那些不畏挑战、迎难而上解决问题的求职者。毕竟,面试本来就不简单。所以,碰到棘手的问题请不要惊慌,也不要轻言放弃。

1.8常见问题解答

1.碰到熟悉的问题时应该如实相告吗?

是的!碰到熟悉的问题,当然要告诉面试官!有些人会觉得这很傻–要是熟悉这个问题(并知道答案),岂不是如虎添翼,对吧?其实,未必如此。

我们力荐你如实相告的理由如下。
(1)彰显你的诚实品质。这能反映出你的诚信–可以大大加分!要知道面试官可是在默默地考察你,看你够不够格成为他未来的同事。我不知道你个人怎么想,反正我是喜欢和实在人一起共事。

(2)这个问题可能略有改动,你不会冒这个险给个错误答案吧?

(3)如果你将正确答案脱口而出,面试官会觉得很可疑。面试官当然知道题目的难度。但如果你佯装磕磕绊绊地答题,则很有可能夸张过度,而显得你这个人很不诚实。

你可能感兴趣的:(程序员面试金典)