论坛首页 招聘求职论坛

[转]如何准备软件工程师的面试

浏览 8850 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2006-10-13  
如何准备软件工程师的面试
http://googlechinablog.com/2006/10/blog-post_13.html

2006年10月13日 上午 09:33:00
发表者:王忻,Google 工程师

(作者简介: 王忻,Google 工程师。北京出生,五岁时跟随父母移居美国。中学期间跳了三级,十五岁进入了加州理工大学,加入 Google 前曾在微软等公司工作。)

六月份的时候,我曾经在黑板报上介绍过“如何写一份好的工程师简历”, 今天想跟大家来谈谈如何准备软件工程师的面试?假设,现在您的杀手简历 (killer resume)已经吸引了某大公司的注意并约你面试。那么接下来该如何准备呢?

我在 Google(以前是微软)工作期间面试了不下 300人,其中某些应聘者确实表现非凡,但有些却显得准备不足。当然许多面试准备不足的人最后依然获得了录用通知,因为他们本身确实才华出众。但如果应聘者能提前准备妥当,那么面试过程将更为保险和轻松。以下所列出的就是我根据多年经验总结得出的建议:

1.使用相同的工具(如铅笔和纸张)和时间限制(例如半个小时)模拟面试训练

Google 和微软都会让应聘者在白板上手工解答编程问题,但通常大部分的应聘者都是习惯于在电脑上利用编程工具系统编写程序。因此面试的时候,某些应聘者离开了熟悉的电脑光标,站在白板前感觉手足无措不知该如何起行。又或者他们不习惯在编程之时旁边有人观看,这会让他们感到紧张而无法正常思考。

在现实生活中,如果你想要横渡英吉利海峡,自然不能总是在室内游泳池练习。你必须投身于大海在波涛之中训练,在准备面试的时候也是如此。:)

在面试开始之前你最好向招聘单位询问面试形式和面试问题。如果招聘单位让你在某个房间考试且仅提供没有汇编程序的编辑器,那么就应该在家中按照这种情景进行练习。如果招聘公司单位让你在白板上回答问题并会安排考官在旁监督,那么你就要找一位软件工程师来扮演考官配合你练习。即使找来的考官经验不如你也没有关系,他们依然能帮助你消除在他人面前出错所带来的紧张感,这样可以让你适应有人在旁边盯着看的面试氛围。

如果你恰巧认识我并希望由我来帮你联系,那我的条件就是必须请我吃饭:如果你已经工作了就吃日本寿司大餐;如果你还是学生,那么吃比萨饼也可以。:)

2.在面试过程中不要对细小错误耿耿于怀

我曾不止一次的在面试过程中碰到这种情况:当应聘者知道编程问题后,他马上就想到了最佳的方案、确定了边界条件,然后开始编写程序。但在编写过程中,应聘者犯了诸如首先检查是不是操作顺序错误或忘记设定某变量等无关大局的小错误,当我指出其错误之后,应聘者立刻变得十分紧张,这种焦虑情绪影响了他在后面环节的正常发挥。

其实这种恐惧心理完全不必要。一名优秀的程序员在编程过程中出现错误也是很正常的,就像是小提琴手在演奏高难度的巴赫交响乐时也会偶尔失误。音乐会的听众可能会觉察到这些错误,但是听众绝对不会因为这种细小失误就把出色的小提琴手看作是门外汉。

即便应聘者彻底搞砸了某个编程问题,面试考官也可能会提出不同的问题并会容忍应聘者在某个问题上的失误。再退一步说,就算某次面试彻底失败,你也有机会在其它面试上补救。

我的一位同事(一个项目的技术负责人)最近面试了一个人,在开始面试时他觉得面试者的交流方式存在问题,因此开始表现的相当不友好。但经过了整个面试过程后,面试者证明了自身的能力,而我的那位同事也成了那位面试者最坚定的支持者。在过去的一年中,我从未见过这位同事如此强烈的支持哪位面试者。

所以,因此就算面试进展不顺,也务必坚持到底不要放弃。

3.在面试过程中不要失礼

这似乎是不用说的问题,但在面试过程中我确实碰到过影响很不好的失礼行为。曾有一位前来应聘软件工程师的人看到我就说:“哇,我真不敢相信你这么年轻!你看上去好小!!我觉得你才 18 岁!”我看了他的简历才搞清楚原来是来应聘的,在开始的时候我却忍不住想:“这个人是来面试我的吧?!?!”

面试者的这种言行实在要不得。

面试者也要注意不要说出诸如此类的话:“哇,你真的就是考官吗?你看上去好老!”“哇,你真的是来面试我的,你看上去好胖!”(相信应该不会有人说这样的话)。

在我的另外一次面试中,应聘者的手机在面试开始 15 分钟之后就响了,她没有理会,手机连续响了 20 秒,这样不免会对面试造成影响。5 分钟之后,她的手机又响了,她依然没有理会;5分钟之后,手机第三次响起。最后她终于抓过手提包在里面翻出了手机。我想:“是时候关掉手机了,她在进来之前就应该把手机关掉。”但是她在手提包中拿出手机之后却旁若无人的打起电话来,而且就在面试过程中间!

这种情况唯一可接受的理由就是他有什么非常紧急的事,但是即便情况如此,那么他也应该在面试开始之时就讲清楚,让面试官有所准备。

4.不要在面试中喧宾夺主

我曾经面试过几个应聘者,他们好像铁了心肠一定要告诉我他们最近的“超级项目”。当我开始发话他们就立刻打断:“我想让你了解我们近期处理的超级项目,10年之前当这个项目开始之时还默默无闻……”,然后接下来的5分钟时间都在那里滔滔不绝唾沫横飞。

有时应聘者好像打定主意要给每个考官详细描述其引以为豪的项目,然后一整天都在那里翻来覆去的说这个项目。

记住:面试官在面试过程中有具体的问题需要询问。但是如果应聘者喧宾夺主,那么考官就可能无法获得充分的信息来做出判断,同时这种行为也会让考官觉得应聘者很难共事。

如果你确实想谈论自己的项目,那么就应询问面试官:“我觉得最近的某某项目能充分体现我的能力,我能不能用 10分钟的时间来描述一下具体情况?”这样就会给面试官空间来调整面试过程,由此也避免毫无征兆就让面试离题万里。

5.在回答需要具体答案的问题之时,记得首先要有总括性的发言

有时我会问一个答案可以很简练的问题,例如:“在你的那个成功项目中总共有多少人参与?”但应聘者往往会就此打开话匣:“恩,张三参与了这个项目,他负责 UI部分,当然我也会给他一些指导。李四也在项目中,她在宾州远程工作,负责后端服务器。两年之后我们又有新人王五加入……”

在应聘者滔滔不绝的讲了三分钟之后,我还是不知道这个项目到底有多少人参与。

因此首先要简练的回答问题,然后再展开描述:“在我接手项目时有三个人,但当我离开项目时人数已经增加到12人。”

当然如果能简练的回答问题,然后征询意见之后再展开论述那就更好了:“在我接手项目时有三个人,但当我离开项目时人数已经增加到 12 人。我可以讲一下各人在项目中的具体分工吗?”

6.(不是特别重要)在面试中要衣着得体,舒适的商务便装是最佳的选择

人们有时候会为衣着犯愁。但是最重要的是要让自己感觉舒适。如果需要具体的建议,那么我建议穿衬衫甚至T恤衫。对于某些公司(例如 Google),西装革履显然是太隆重了。

这条建议不必太看中,因为面试官不会管应聘者穿什么。最好应该询问人事招聘部门穿什么合适,因为不同国家有不同习俗,就算美国东海岸和西海岸的公司着装文化也会有差别。像 Google 这样的公司在着装方面更加随意,因此如果你穿着“三件套”的经典西服去 Google 面试,考官可能会有异样的感觉。因此如果你真的具备软件工程的本领,穿什么其实并不重要。某个应聘者曾经穿着皱巴巴脏兮兮的T恤就跑来面试,他的T恤衫上还有着许多破洞。但最后他还是拿到了录取通知(当然我绝不建议如此穿着)。

最后的一个小故事

最后我想讲一场极为尴尬的面试。在看完之后,我希望你能这样想:无论你的面试如何糟糕,你至少要比这位应聘者幸运。

以前我还在微软的时候,我们通常会为应聘者准备一些饮料,某位暂称其为 Jeff 的应聘者要了一听百事可乐。我们走进面试房间后,他就在桌前坐下了。接下来我们简要的谈了谈他的工作经历,然后他开始在白板上解答编程问题,此时他还没有打开他的可乐。

我们俩站在白板前,然后杰夫开始在上面写程序。在写程序之时他沉浸在对整体构架的思考中,下意识的退了一步来查看整个白板。在后退时他不小心碰到了桌子,放在桌上的百事可乐掉到了地上。

因为可乐还没有打开,因此当可乐罐落地的时候,可乐罐炸开了。

可乐罐在地上打转,泡沫喷的到处都是。你可以想象当时的场景,可乐喷到了墙上、书架还有我电脑的键盘上。我俩楞在那里,手都半伸着(根本来不及抓到可乐罐),眼睁睁的看着可乐弄得到处都是。

我们花了 5 分钟的时间用纸巾来清理现场(虽然我的书本自那天之后都粘页了,而墙壁也不再是干净的了)。

随后我们重新开始白板测试。杰夫此时已非常紧张(换了谁都会紧张吧?)。他写了几行程序,然后擦掉,然后再写。他是用自己的手擦拭白板而不是用板刷。他急得额头冒汗,然后他又用刚刚擦过白板的手擦汗。在面试过程结束之时,他的脸上布满了红色、绿色和蓝色的颜料。

我说:“你的手上粘了很多颜料,我带你去卫生间洗洗吧,”然后我把他领到洗手间让他从镜中看到了自己的尊容。

王忻的其它文章:
如何写一份好的工程师简历
我对女性做工程师的一点看法
   发表时间:2006-10-13  
我对女性做工程师的一点看法
2006年3月8日 上午 08:29:00

发表者: 王忻,Google 工程师

http://googlechinablog.com/2006/03/blog-post_08.html

去年 10 月,我跟开复去南京大学做演讲谈 Google 的技术,讲座结束之后,有一位女同学提了个问题让我很惊讶。

她说: "我是学计算机软件的,蛮喜欢的。但是女生学这行不太好吧?你看我该不该找个时机改行?"

我问: "你为什么会觉得女生不适合学软件?"

"女生三十岁以后, 体力和智力下降, 会跟不上男同事。"

这是我第一次听到如此具体的性别歧视,挺吃惊。做为一位女性软件工程师, 我平时难免听到了一些对于女性做工程师和对女性能力的疑问,我觉得这些话最大的危险是影响到人的自信。

我在北京出生,五岁时我父母到美国留学,于是把我也带了去。 我父亲是数学博士,母亲从小就用心辅导我,所以我小时候数学特别好。十岁的时候我就开始在附近的大学选微积分课, 随后又跳了三级,十五岁进入了加州理工大学 (California Institute of Technology)。 现在说起来简单,但当时我的经历经常遭到别人的反对,说我年龄太小、学不好之类的话,或者说女性不适合学计算机。 我当时觉得这些话大都很可笑,没有在意,当然也要特别感谢我父母没拿它当回事。后来我顺利的完成了所有的学业,用事实证明了我走的路, 那些所谓的“预言”也就不攻自破了。

后来我在美国另一家大软件公司做了五年的工程师, 随后来 Google ,在这里已经工作了两年半。 在 Google, 我第一次有了很多杰出的女性榜样。我们公司有六位女性副总裁, 两位女性董事会成员,当然还有许多女性工程师总监、女性工程师等等...... 目前我的老板 (manager) 就是一位女性主管经理。她是我的第一个女老板, 我从她身上学了很多女性擅长的本领,比如如何让别人采取你的观点,同时又不伤害他们的感情等等(她也是中国人)。

Google 意识到女性员工在很多问题上可以给公司一些新的视角。 创始人 Larry Page 去年对我们的人事部门订了要求,要求新招的软件工程师里应该有 25% 是女性,当然这是不能以降低录取标准为前提的。所以我们下了更多功夫去寻找女工程师,邀请她们来面试。 这可不是口头说说而已 – Larry 专门调了三分之一的人事部员工去招聘女工程师。结果去年我们的女工程师比例在 6 个月内由 13 %上升到 19 %。 Google 每几个月还会邀请中学和小学朋友来参观公司、与员工谈话,对于其中的女孩子,Google 一直鼓励她们要好好学习科学和电脑。

Google 还要求在我们应聘面试的过程中至少要有一名女性面试官,如果申请者被发现有性别歧视,那不管这个人有多聪明也不会被录取。我曾经有过这方面的亲身经历。两年前,我和一位男同事共同面试一个男性应聘者。当时我考了他一道难题,但那位应聘者回答时,只对我的男同事讲话, 几乎不睬理我。45 分钟的面试中, 我感觉越来越不舒服。 事后,我把我的顾虑写进了面试反馈。另一位女性面试官也表示了同感。结果,虽然这位应聘者其它方面都表现的很好,他还是被拒绝了录取。

其实从很多细节上可以看出 Google 对女性员工的重视。软件公司庆祝业绩时,常常会发 T 恤,Google 也不例外。别的公司因为男员工比较多,常常只订男尺寸,造成我家里存了很多大的只能当睡衣的 T 恤。但是 Google 每次总会订女生的大、中、小号。每个小组庆祝阶段性成果的时候,也会挑男女员工都喜欢的活动,比如听现场相声等,而不仅仅是看跑车赛或棒球。

我虽然在 Google 很幸运有许多优秀的女性软件工程师和同事, 但有时侯会觉得也许其它公司的女性没有公司这样支持她们。我想利用这个机会鼓励国内和海外的女性软件工程师,相信自己,让那些对女性的怀疑消失!

三八妇女节快乐!
0 请登录后投票
   发表时间:2006-10-13  
喜欢二楼的文章
0 请登录后投票
   发表时间:2006-10-13  
看到楼主的文章,顺道一块拷过来的。估计楼上也是女性吧,对这类文章感兴趣
0 请登录后投票
   发表时间:2006-10-13  
恩,最喜欢是这个了

创始人 Larry Page 去年对我们的人事部门订了要求,要求新招的软件工程师里应该有 25% 是女性,当然这是不能以降低录取标准为前提的。所以我们下了更多功夫去寻找女工程师,邀请她们来面试。
0 请登录后投票
   发表时间:2006-10-13  
cjmm 写道
恩,最喜欢是这个了

创始人 Larry Page 去年对我们的人事部门订了要求,要求新招的软件工程师里应该有 25% 是女性,当然这是不能以降低录取标准为前提的。所以我们下了更多功夫去寻找女工程师,邀请她们来面试。


楼上是Google的?
0 请登录后投票
   发表时间:2006-10-13  
不是才喜欢啊。
0 请登录后投票
   发表时间:2006-10-13  
还有一篇不错,贴过来。

如何写一份好的工程师简历
2006年6月14日 上午 10:15:00

http://googlechinablog.com/2006/06/blog-post_14.html

发表者:王忻,Google 工程师

最近三年作为 Google(谷歌)的软件工程师,我每周会帮人事部门审查简历,决定要不要给他们面试。Google 这几年的发展让很多许多优秀的工程师都前来申请。到目前为止,我已经看了上千份简历,有些简历留下的印象比别的好很多。尤其是最近亲戚朋友常常问我如何修改他们的简历,所以我积累了一些常见的错误避免的提议,在此跟大家交流一下。

1.谈到你做过的技术时,应该提到用的程序语言、你的个人贡献和产品细节。

有时我看到有人把过去的经验在简历上一笔带过,比如说:

• 在三人小组里,为电子邮件软件写了些 features。

这是远远不够的,看简历的人希望了解你做的工作的难度和对本公司有多少联系,所以你最好写的具体一些。譬如:

• 用 C++ 语言写了网络电子邮件的自动 backups。在三人小组里,专门负责设计和写储存服务器。从设计开始, 一年后把这个功能 feature 的用户推到了三千。

2.多讲事实, 少用形容词。

看简历的人读你的简历时,需要做判断,所以在简历里需要事实和数目。如果你写“迅速的提高了软件的操作效率”,看简历的人很难判断你成就的难度。但如果你写“在3个星期内,把软件的操作效率提高了40%” 就好多了。

有些谦虚的朋友们不愿意把话说满,所以你也可以用这个办法。你如果说自己“突出”或“在项目上常常被请去救火”,听起来难免会有点骄傲。但你也可以用不能否认的事实来说明你的观点,如“《纽约日报》评这个产品为‘突出’”,或“加入了三个原本已落后于计划的项目小组,但经过努力和组员一起把它们都按时完成了。”

3.你获得的奖、商业的荣誉或表扬、受用户欢迎的产品和你做过的有难度的业余项目都该包括在简历里。

我有位朋友在硅谷一个著名的硬件公司做了六年,她设计的 IP phone(网络电话)为公司赚了上亿的收入,被公司与商业报道多次评了奖。我有一次在旧金山的高速公路上驾车时,看到路边有她产品的广告牌;还有一次我去上海度假时,竟然发现上海公路边上也有!

不久,这位朋友决定换工作,请我看看她的简历。我惊讶的发现,她居然轻描淡写的写了一句-- "1998 – 2004:网络电话产品的硬件工程师组长" 和她的职责。

"产品赢的奖呢?它为公司赚的钱呢?" 我追问到。

"那些也该写吗?" 她说。

当然该写。

有人问,业余时间做的项目可不可以写?我觉得只要你的项目有代表性能说明对你的能力,都该包括。

4.分清主次,删掉相比之下不起眼的成绩,以免冲淡更加突出的成绩。

有朋友问,写简历是不是写的越多越好?譬如:

在甲公司做暑假实习生——
* 改善电子游戏的数值分类算法, 减少了内存要求 10%。
* 用 Java 写了 3000 行用户界面程序。
* 每周做两小时的人工测试。

你在申请软件工程师的职位时,我觉得前两点比较相关,第三点其实就不必写了。有时我看到有的简历里会提到,"按时完成了任务,产品符合原计划规格"。但读简历的人通常会认为这是理所当然的,而你把这些声明出来反而减弱简历的效果。

0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics