曾在包括微软、苹果、Google等大公司待过的面试专家告诉大家要避开这些坑。
编者注:《Cracking the Coding Interview》作者Gayle Laakmann McDowell曾在包括微软、苹果、Google等大公司待过。这位面试专家希望软件工程师抛弃完美主义,避免下述常见错误,并尝试这些策略。
11年前,Gayle Laakmann McDowell第一次面试是去微软应聘软件工程师,当时她对自己要面临什么还懵懵懂懂。“我对面试流程还很幼稚,”她说。当时她刚刚从宾夕法尼亚大学毕业,正在申请一个实习生的职位。“现在,我会想:‘我应该像备考一样研究一下面试,’”她说。
McDowell的确应该如此。10多年以后,曾在包括微软、苹果、Google等大公司待过的McDowell已是《Cracking the Coding Interview》一书的作者,同时还是CareerCup的创始人,这家公司做的正是帮助求职者为应聘技术工作面试做准备。
2014年,McDowell开始在Facebook总部授课,课程内容是帮助来Facebook面试的准候选人做好准备。起初她是一个月授两次课,但现在由于需求增加,她一周就要上两次课。“公司意识到面试过程需要大量知识,而这些是应聘人员大学以来没用过的,”她说:“做好准备的人越多,公司能够雇用的人也越多。”
但面试期间的关键并不是追求完美,相反是要知道什么最重要。McDowell介绍了要记住的最重要因素,同时还告诉面试者面试过程中要避免哪些太过常见的错误。
关注过程,而不是提供正确的答案
2004年夏天的时候,McDowell曾经去Google申请当实习生,但是被拒绝了。不过她并没有妥协,后来又到同一家公司拿到了一份全职软件工程师的工作并在Google待了3年。McDowell在Google期间来了个角色转换,面试起那些应聘软件工程师的人来,这让她对自己第一次做错了什么有了深刻了解,而这个也是太多的人面试过程中经常会犯的错误。“最大的错误是大家都会匆忙完成一件事情而没有进行足够的思考,”她说:“他们总是留恋于完成,GTD,但这种做法并不是很有效。”
相反,最重要的是尽可能把你的思考过程跟面试官沟通清楚。“面试要考的很大程度上是你的思考过程,如果没有沟通清楚这个过程,面试官就无法对你进行评估,”她说:“许多人过早地扎进去了,他们犯了很多的错误,实际上最终结果要糟糕得多……要花时间确保你真正理解了自己要做什么。”
从暴力破解开始,不是完美主义
当然,花时间不是说呆站在白板面前不发一言苦苦思索第一步怎么走(你一开始就想着要做出一个完美计划,你会成为最后用时耗尽却一步都没有走的象棋大师)。一头扎进去,但是对你的步骤要考虑周到。面试官并不指望你马上能够得出正确答案,但是他们的确希望了解你是不是愿意不断尝试直到抵达彼岸。“我总是鼓励大家用暴力破解的方式开始,” McDowell说:“一些人非常关注于自己第一次说的东西是不是最好的。但是更好的是先说一点有用的东西,而不是因为苦苦思考而把一切都错过。”
McDowell鼓励求职者抛弃一开始就对被问到的东西追求完美的想法。“应聘者往往对这个过程很沮丧,因为他们认为自己必须在白板上写出完美的代码,然后又认为这是不且实际的,”她说:“要努力做好。但不必完美。”
通过举例来克服你的紧张
从容面对并确保面试官与你达成共识的最好方法之一是从举例开始。这能帮助避免误解问题,McDowell说,但对于许多人来说更重要的是这是克服紧张的很好办法。“大家一紧张起来就会不停地想自己有多紧张,”她说:“而一旦某人从举例开始,例子就会把他们从自己有多紧张的想法拉走。”
如果你想往空空如也的白板上添点东西,例子就是很好的办法,通过例子来建立待解决问题的术语和值。“这就是实际的值,” McDowell说:“那么从这儿我们要怎么走呢?”
记住:面试官是站在你这边的
如果Facebook不想确保未来的待聘人员是否已经充分准备好面试的话,这家公司是不会一周两次把McDowell这样的人带进来的。面试不是我们对你们的关系。你的面试官看起来也许很强硬,但是一天结束时,每一位面试官都希望你成功并成为那份工作的合适人选。“有些人把面试官当成敌人,” McDowell说:“但其实面试官是在那里跟你对话。面试官希望看到你表现得好。”
也就是说,如果你不确定问你的问题究竟是什么,或者不是完全清楚面试官的预期是什么的话,不要把它当成猜谜游戏。问对方就是了。“面试官是站在你这边的,” McDowell说:“你不用去猜他们的预期。他们跟你是站在一条壕沟的。”
关于面试你还可以了解更多: