职悠学堂 CS面试考什么?高级软件工程师面试官教你求职技巧

 

CS面试考什么?YoYo君和大家分享一篇高级软件工程师面试的分享,从面试题分析到面试官行为分析,还有Tips技巧帮你快速提高~...





CS面试考什么?YoYo君和大家分享一篇高级软件工程师面试的分享,从面试题分析到面试官行为分析,还有Tips技巧帮你快速提高~

计算机面试深度解析1 - 面试问题

一般而言,公司面试一个candidate时有好几项指标(metrics):包括 Attitude, Capability, Professionalism, Culture, Communication, Preparedness等。在面试的短时间内无法衡量候选人主观指标的前提下,一些客观性的指标尤其重要。

我所负责面试的职位是Developer。和QE/PM/Designer略有不同,Developer具体更侧重于考察编程能力和经验。

针对developer的面试,无非考察这几点:分析能力,编程能力,解决问题的能力。

除了视候选人在面试时答题的表现外,我会看面试者简历列出的project这一部分。有实战经验的人会把参与的project写的比较专业,比较具体。面试者的project不一定要高大上,有独到之处即可。大家自己写了project也最好放到GitHub上。另外一些同学如果经营个人的技术blog或是个人主页,在面试中提及也自然增分不少。

面试时我也会问求职者“你经常光顾哪些网站?”。如果他实践经验很丰富的话肯定会提到stackoverflow.com这个网站。

我在调试程序调不通的时候会把出错信息复制到google里搜,基本上十有八九返回第一条都是stackoverflow里面的回复。所以如果一个行内人士亲自参与编程的话肯定是绕不开这个网站的。

如果候选人提到他经常看CSDN或者是国外toptal.com上面的一些文章或者技术类的博客也会加分。此外经常访问cnBeta/Wired/Gizmodo等网站说明这个人是一个geek,也会产生一点点正面的作用。当然仅仅记住这几个网站的名字是不够的。相反,如果连以上几个网站都不熟悉,我就会对面试者的专业技能产生质疑。

作为面试官,我一般面试会出一些自己原创的题目。和网上的题目不会完全一样,但整个解题的思维方式有相通之处。

作为面试官,我一般面试会出一些自己原创的题目。和网上的题目不会完全一样,但整个解题的思维方式有相通之处。所谓“内行看门道”,真正优秀的candidate不见得能百分百做对,但他在做我设计的题时至少能体会到题目设计中的精妙之处。

我在面试中所提出的要点题目,一般不依赖于某个特定的知识点,而是考查逻辑思维能力。我会给候选人一小段大概15行左右的代码,让他找bug。这种面试的方式,使得面试人无论之前有没有看过面经都处于同一起跑线上。

关于面试结构的问题我整理了五大类:

1

设计题

设计题相对来说是比较开放性的题目,相对而言没有一个固定的答案,关键在于推导的过程中逻辑要make sense。对于应届毕业生来说没有太多相关经验,甚至是有N年工作经验的人也不一定遇到过,所以回答时的技巧在于充分运用自己的逻辑分析能力

可以先竖立一些assumption,跟面试官沟通确认这些假设是否成立;一来求证面试官是不是考查相关的知识点,避免出现类似命题作文中跑题的情况 (命题作文中“跑题“可是不及格啊)。二来给面试官留下“逻辑很有条理“的印象。然后再在这些假设的基础上做因果分析,最后提出多个方案并且针对每一个方案指出pros and cons。

千万不要自己设了assumption然后在未经证实的前提下顺着自己的假设一个劲儿地往下说(闭门造车,轮子转得再快也跑不起来)。
2

编程题

编程题有的时候需要白板写 pseudo code, 有的时候需要写比较全面详细的代码。这种题目网上有很多面经,大家准备的话一定要通过刷题多练多学。大多数问题有特定的解题思路,尤其是那些时间复杂度需要优化的题目。另外很多时候题目初眼乍看简单、但有很多edge cases,如果不考虑edge cases的话就算回答有bug,有bug就要相应扣分,所以大家要尽可能把bug降到最少。

大家在准备时,最好的策略是practice makes perfect,一来出现在面经中的题目是公司常用的题目,公司认为你本就应该要掌握;二来刷面经本身是一个提升自己能力的过程,无论对提高解题的速度准确度还是拓宽自己的知识面都很有必要。
3

基础概念题

前面提到,虽然我本人在面试中不侧重于考教材上死背硬记的概念或者算法,因为这部分在真正工作中用到的不多。但是那些最最基本的概念我肯定还是会问。不单我会问,别的面试官也同样会问。故而给读者的建议是:这类题目大家还是要充分准备。

为什么我会问这些基本题?因为前面还提到,“preparedness“也是公司明文规定的考查指标之一。所以只有基本题答上来,才能显示你prepare了。一个对基本题对答如流的人能比较容易留下较好的第一印象。

举个反面例子:之前某位同学有很多实战经历,我很欣赏他,想”拉”他一把,但如果他连最简单的基本概念题都回答不上来,那么我肯定爱莫能助——面试官的心理是:即使在这一轮面试中我给你”放水”,后面的别的面试官迟早也会把你涮下,既然这样,我还是保证我的信誉,老老实实把你unprepared这一点汇报给HR。这时候,面试官真是爱莫能助啊。为了避免这种“冤情”发生,大家还是要准备好基本题。
4

分析题

面试QE时,此类分析题面试官会问的比较多一些。什么是分析题?一般地,分析题是涉及概率、排列组合类的数理题,或者是考察思维能力的brain teaser。
5

简历题

我的一个原则是简历可适当包装修饰,但千万别无中生有

当时进公司面试时有个细节,我提到我写过perl,正好我的面试官也接触过perl,他问了我一些相关概念我答上来了,他就眼前一亮。我觉得这是一个加分的因素。

面试时如果简历上有buzzword我也会校验,比如我经常遇到某南亚地区候选人的简历上写了Python。为了校验真实性,我在面试时就会问:“你用的是Python 2.x 还是Python 3.x ?”回答时他们十有八九都会楞一下,有些人会回答说:“我记得好像是Python 2”,我就会追问”你为什么说‘好像’而不确定?这个其实是很基本的,装python的第一步就需要从网上下载选择版本。他接着回答:”实际上是我团队中另外一个人写的”……我还算nice的,倘若如果遇到一个更刁钻的并且是Python程序员出身的面试官,他也许会设套问:“你用的是Python 4还是5呢?”,这时候对方无论回答4还是5都是错的,因为蟒蛇4和蟒蛇5都还木有出生哪……

总之简历中你提到的程序,你可以只是浅层次接触,但如果自己哪怕连Hello World都没有写过,那就会很容易被戳穿,自然对你的credibility产生负面影响。

深度解析2-面试官行为

面试时官问得很细,问得很难?

这个时候大家一定要淡定。面试官问的细,第一他是在给你一个机会,让你展现更多在这方面的才能;第二表示他对你在这方面的表现有兴趣,这时候如果你能答上来的话马上你的评价就会比别人高很多。面试时的五大类问题都有一些Open-ended questions,可能一开始你一点线索都没有,但大家在回答时一定要尽自己最大的努力,主动回答得细致具体一些,从而面试官感受到你解决问题的诚意。

面试官反驳我的回答?

遇到被反驳或被指正这种情况一定要知道这是好事而不是坏事。因为面试官被要求维持微笑或“poker face“以保持专业形象, 所以他们通常不会通过表情或语言给求职者回应。反之,面试人如果在回答完一问题没有得到面试官回馈时,可以询问,但不必追问”Am I correct?”

回到正题:遇到面试官反驳你的时候,实际上这是他给你在本轮面试中纠正自己的一个机会,希望你在这一轮或者以后的面试中能力能有所提高,不然他可以不明指出评语直接写”面试人此题回答错误“。

(那遇到面试官反驳应该顺着他说呢还是?)具体情况具体分析,大多数情况下面试官反驳你时他说的是正确的,要尽量顺着他的思路答,因为美国的面试非常主观。当然如果你确定自己说的是对的,而且能够客观真实地分析解答过程也会加分。

面试时”言多必失”吗?

面试过程中尽量be talkative,be explicit,要把分析的过程说出来,不要只重结果。我印象很深刻的是以前有个学生回答一道题目时说对了80%,但却没有说到”exactly“的程度,但他一直不停地在阐述分析的过程,时间关系我打断了他,但最后review的时候我就不太忍心给他扣分,因为他至少答出来了80%。所以说“言多必失”的传统观念在面试时不一定适用,大家要通过communication skills尽力为自己争取优势。

Follow-up没有回音?

面试完尽量让面试官留一个邮箱,及时写一份Thank you letter体现你争取这份工作的诚意。Thank you letter不用太洋洋洒洒,基本上用一个模板套一些面试中的细节就可以。但有时客观条件导致这封邮件你不知道发给谁(比如某些公司要求面试官不能留邮箱,只能HR留)这种情况下发Thank you letter除了多花你5分钟,其余我看不出有任何害处。另外有时你发了以后会接到out of office auto response。大家也不用太担心。因为有些公司有类似防火墙的policy会过滤来自非本公司邮件地址的邮件,也有可能recruiter还在外校招没有办法及时回复。

内推十拿九稳?

内推一般青睐有工作经验的人,但内推只是保证公司能看到你的简历,后面其实还有过五关斩六将的过程,每次面试大家还是要做好准备认真对待,不仅对自己负责、也是对内推的朋友负责。 一句话:别人推你自然会事半功倍,但你自己也要给力呀!

快速提高Tips

职场新人怎样能够提高求职或面试技巧?

从宏观上来说中国留学生最关键的问题首先在于观念的改变。以前我们中国人强调”集体利益至上,个人利益其次”,现在我的感觉是从一个极端走到另外一个极端,我们这一代的媒体和文化虽然强调了”个人利益”,却忽视了”团队合作”给大家带来的好处。现实是:当代的就业市场是一个公开的市场,你所面对的竞争对手并不是你的同学,而是来自全世界的劳动力,所以大家要在这个大背景下需要重新审视单枪匹马的求职策略,充分发挥团队协作1+1>2的synergy效应。大家如果作为一个团队互相交换信息,分享经验,帮助润色简历,在LinkedIn上面互相endorse一些skills都是很好的方法。

第二,以前普遍传言”中国人更讲关系,西方人更客观”,实际我多年的感受恰恰相反。我觉得整个求职过程中,国内的公司或职位更强调客观的用人标准,美国的招聘则更强调networking。留学生初来乍到美国,大家networking的资源有限,但 networking恰恰是面试过程中最重要的,包括面经这种信息也是通过networking获得的。大家不妨主动一些积极通过学校的校友和已经工作的同行互动,拓展人脉网。

第三,不要得罪HR。俗话讲”阎王好见,小鬼难缠”,表面上看起来nice的HR未必真是如此。我有一位之前通过个人关系结识的HR妹妹,在某一次私下交流的时候,她向我曝了一个反面例子的料:一次他们去某学校招聘路演,在info session结束之后大家都围着HR索要名片和联系方式。这时某位同学跑过去问HR”你们什么时候面试”,她答”我们明天安排面试”,这位同学说:”我明天下午有课,你要不把面试时间和地点给我们群发一遍吧”。这时候HR心里想”我们大费周折来学校招人,作为求职者你却理所当然地享受拿来主义”,但表面上却面带微笑:”OK. We will do that.”显然,HR不会群发面试的时间地点信息,只有那些向HR索要过email并且主动发信问候的同学才能被安排面试。

当然,我并不是要妖魔化HR,只是想陈述一个一般性的原理:公司校招时一般会派遣两种职位的面试官——HR或者是专业的QE/Developer。HR会询问”你什么时候毕业?是否需要sponsorship?”,表面上看起来HR只是起到了一个次要的作用,但其实校招时HR的权利比谁都大——万一HR对你印象不好,可能就把你简历扣下不送上去了。而面试官只能写review,却没有扣简历的权力。此外,相比我们这些技术出身的面试官对于业务能力的侧重,HR更加偏向于考察behavioral questions,重视culture, professionalism, attitude等软因素,所以大家在HR面前最好behave yourself。

面试分天时地利人和。前面提到Networking,也就是人和。下面讲讲天时和地利:

天时:公司招人有两种pattern,一种是传统咨询类公司的招人方法。比如一个职位明年8,9月份需要用人,可能提前一年就开始招聘长期的岗位。还有一种是科技公司的招人方式,快到一个项目开始前1、2个月才开始招人,谁能最快入职谁就有优势,所以大家一定要摸准pattern把握时效性。

地利:对于应届生来说校招是非常好的机会,外地的学生一定要算好时机,确保面试官在校招前顺利地收到你的简历。如果是自己找工作而不是通过校招这个方式呢,我建议大家最好在简历上留一个与目标公司同城的地址,给公司一个你可以随时可以去面试的印象。计算机行业因为公司主要集中在硅谷,纽约,西雅图,你可以去这三个地方临时借住一段时间,找比较要好的同学家睡客厅——林书豪当年不是也睡过别人家的沙发嘛!

虽然公开场合不明说,公司实际上还是更倾向于招本地人。故面试人使用本地地址多少会有加分。一旦人才供求都非常大的IT类公司通过本地招人就能补足职缺,它们就不会再做为外地求职者买机票订旅馆之类的麻烦事。说得再直白一些:主场有优势;如果你在客场,可以想办法转化为主场。

在微信平台中回复“帮助”可查看更多文章。

在微信平台中回复“服务”可了解职悠课程。

本文转载自:Careeyo.com(你的个人求职顾问),泰勒展开时

Careeyo独家整理修改,版权归原作者所有,若需引用请注明出处。



关于职悠 Careeryo!






作为Analytics和IT/CS行业的领先一对一求职培训机构,职悠来自世界五百强的350+在职导师不断帮助求职者斩获梦想公司的offer。

需要获得职悠帮助?请添加职悠客服--YoYo君微信:careeyo1。
职悠官网:www.careeyo.com


    关注 职悠


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册