青岛达内it培训 > 达内新闻
程序员面试圣经,教您如何拿下编程面试?
- 发布:互联网
- 来源:互联网
- 时间:2017-04-11 16:55
1面试过程
本文概述了硅谷公司的面试过程,仅仅是个情况介绍,大家可以跳过去往后看.
除了直接申请面试以外,一般说来,还有两种途径来获得面试的机会:由现在的雇主推荐,或者通过LinkedIn.虽然前者会快一些、更尊敬一些,但后者很可能是大部分应聘者所走的路径.事实上,每天都有无数的招聘人员趴在LinkedIn上,他们唯一的工作就是寻找和接触有可能换工作的员工,所以一定要保证自己的信息是最新的,而且要多交人脉、多请别人来认可自己的技能,并且要把你所具备的技能、做过的个人项目或者对开源软件所做的贡献加到个人页面里去.青岛IT培训机构
最初的接触一般是通过电子邮件进行的,然后招聘人员会给你打电话,大概了解一下你的技术背景.如果你的技能和他们正在寻找的技能一致,他们就会安排一次电话面试,在电话面试时,你可能就会被要求在一份共享的在线文档里编程.那么你就会知道,这份文档很可能没有任何代码补全和句法高亮的功能.电话面试会持续半小时到45分钟,如果你表现不错,就会被邀请去参加现场面试.现在如果没有电话面试、或者在电话面试之外,你可能还得去参加一个小的编程项目.
现场面试由几次面试组成,总体会持续45分钟到一个小时.这些面试会和电话面试非常像,只是问题会更难--不过能亲眼见到面试官多少算是有所补偿.现场面试数周之后,所有反馈应该都被看过、招聘决定就会做出,招谁不招谁也就定了.如果你没拿到offer,也要明白面试是一个随机的过程,包含运气的成分,不妨把它看作是一次学习的经历.可能你还会想起布莱恩·阿克顿面试Facebook和Twitter不成、后来成为WhatsApp联合创始人的故事.
理论上讲,用哪种编程语言并不重要,但你面试需要用某种特定语言来完成的工作时除外,比如iPhone开发者或者前端开发者.我强烈建议你用正在面试的公司所使用的一种编程语言来编程(以及练习面试问题).
2面试获得成功的6个步骤
编程面试的目的,是为了确定你的编程水平有多高.一般来说,你将被要求用编程来完成一个功能或者方法,但有时候,你会需要编辑一个类的定义,或者设计一系列相关的代码模块.在任何一种情况下,你都要有条不紊地解决问题,并遵循以下六个步骤:
1、首先,要确保你理解了面试官的问题.许多问题都是故意措辞模糊或者模棱两可,这个时候你可以请面试官把问题说清楚,从而确保你真正回答面试官的问题.你的提问同时还有一个好处,就是它能给你自己一些时间,让你的脑子转起来.
2、用一到两个例子来确定问题的限制条件和要求(在现场面试时在白板上完成这个过程,在电话面试时在笔记本上完成).尝试用中等规模的例子,以便覆盖到一些特殊情况.如果你能想到可能相关的表格,就把它画出来.事实上,把你想到的任何东西都写下来是会有帮助的,因为它能为你提供一个视觉锚点,从而让你在走不通时或者思考过程中随时返回某一个点.
3、把话说清楚,这可能是最重要的一步.要试着让面试尽可能有更多的互动,面试官不知道你在想什么,而让他们参与到你的思考过程里,会让她给你一些有用的提示,防止你偏向错误的方向.你的目标就是要先和面试官确证你的答案,然后再去写代码,而且你考虑答案越清晰、越高效,你得到的即时反馈也就越好.
4、通过应用以下技巧来找到答案:回想一下你遇到的类似问题,再想想它们是如何被解决的,尝试各种不同的算法(分治算法、贪心算法、递归、排序,等等),把问题分解成更小的、可处理的小问题(这样你就能得到相应部分的分数),最后再通览一遍你列出的数据结构,因为有时候,只要想到了正确的数据结构,就能给出正确的答案.
5、当你向面试官问清楚了问题、并向她解释了你的答案之后,就可以开始写代码了.要记住,在共享文档里写代码的时候,你可以复制粘贴、写评论,而且能回过头来完成骨架算法和功能.但在白板上写代码就不一样了,它需要你的头脑很清醒,而且需要你具备管理白板空间的技能.
如果足够幸运的话,现在当你开始在白板左上角动笔的时候,应该非常明白你要写些什么东西,而且你要确保在你写答案的时候,没有挡住面试官的视线.花点儿时间把代码写得紧凑而美观一点儿,因为你的代码也会是面试反馈的一部分.在你写代码的时候,要大声解释你在写什么,这会让你的面试官更容易地跟上你的思路.
6、最后,用不同的例子和特殊案例验证一下你的代码,并且要一行一行地过.这会展示你的思考过程,让你检查出小错误,并告诉面试官你的办法是可行的.如果你想得到额外加分的话,甚至可以把单元测试的代码写下来!最后再和面试官聊一下你的答案在空间和时间利用方面的复杂性,然后结束整场面试.
3电话面试中提示出的问题
电话面试值得特别一提,因为这是大多数人失利的地方.之所以会这样,部分原因在于电话面试是招聘过程中第一道真正的关卡,但也有一部分原因在于,这种形式容易造成沟通的错误,而且缺乏可视化线索,所以电话面试是特别严酷的.
电话面试有两大障碍.第一大障碍是,在电话面试的一开始,双方都能看到的唯一的东西就是一个空白的共享文档.这会让面试者倾向于过度补偿非语言沟通的缺失,从而着急忙慌地在屏幕上进行沟通.令人遗憾的是,这么做很少会有好结果.
所以当务之急并不是去关注那个正在盯着你的空白文档,而是要首先理解和评估问题(也就是完成上述六个步骤中的前四个),同时通过尽可能地沉浸到面试中来弥补现实存在感的缺失(要记住,电话的另一头是一位可以很容易就被别的事情[比如查看邮件]分心的面试官).
电话面试的第二大障碍,就是要同时在电脑上打字和在电话上聊天的后勤保障问题.你不必一只手敲代码、一只手打电话,也不必把电话调到扬声器模式,我建议你用电脑上的Google Hangouts接面试电话(你得有一个GoogleVoice号码,而且得在面试前测试一下).你还可以用耳麦或者耳机来进一步降低不好的接收效果、提高沟通质量.
更多青岛IT培训机构相关资讯,请扫描下方二维码

最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 哈尔滨
- 济南
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 长沙
- 昆明
- 太原
- 无锡
- 石家庄
- 南宁
- 佛山
- 珠海
- 宁波
- 保定
- 呼和浩特
- 洛阳
- 烟台
- 运城
- 潍坊
程序员面试圣经,教您如何拿下编程面试?
- 发布:互联网
- 来源:互联网
- 时间:2017-04-11 16:55
1面试过程
本文概述了硅谷公司的面试过程,仅仅是个情况介绍,大家可以跳过去往后看.
除了直接申请面试以外,一般说来,还有两种途径来获得面试的机会:由现在的雇主推荐,或者通过LinkedIn.虽然前者会快一些、更尊敬一些,但后者很可能是大部分应聘者所走的路径.事实上,每天都有无数的招聘人员趴在LinkedIn上,他们唯一的工作就是寻找和接触有可能换工作的员工,所以一定要保证自己的信息是最新的,而且要多交人脉、多请别人来认可自己的技能,并且要把你所具备的技能、做过的个人项目或者对开源软件所做的贡献加到个人页面里去.青岛IT培训机构
最初的接触一般是通过电子邮件进行的,然后招聘人员会给你打电话,大概了解一下你的技术背景.如果你的技能和他们正在寻找的技能一致,他们就会安排一次电话面试,在电话面试时,你可能就会被要求在一份共享的在线文档里编程.那么你就会知道,这份文档很可能没有任何代码补全和句法高亮的功能.电话面试会持续半小时到45分钟,如果你表现不错,就会被邀请去参加现场面试.现在如果没有电话面试、或者在电话面试之外,你可能还得去参加一个小的编程项目.
现场面试由几次面试组成,总体会持续45分钟到一个小时.这些面试会和电话面试非常像,只是问题会更难--不过能亲眼见到面试官多少算是有所补偿.现场面试数周之后,所有反馈应该都被看过、招聘决定就会做出,招谁不招谁也就定了.如果你没拿到offer,也要明白面试是一个随机的过程,包含运气的成分,不妨把它看作是一次学习的经历.可能你还会想起布莱恩·阿克顿面试Facebook和Twitter不成、后来成为WhatsApp联合创始人的故事.
理论上讲,用哪种编程语言并不重要,但你面试需要用某种特定语言来完成的工作时除外,比如iPhone开发者或者前端开发者.我强烈建议你用正在面试的公司所使用的一种编程语言来编程(以及练习面试问题).
2面试获得成功的6个步骤
编程面试的目的,是为了确定你的编程水平有多高.一般来说,你将被要求用编程来完成一个功能或者方法,但有时候,你会需要编辑一个类的定义,或者设计一系列相关的代码模块.在任何一种情况下,你都要有条不紊地解决问题,并遵循以下六个步骤:
1、首先,要确保你理解了面试官的问题.许多问题都是故意措辞模糊或者模棱两可,这个时候你可以请面试官把问题说清楚,从而确保你真正回答面试官的问题.你的提问同时还有一个好处,就是它能给你自己一些时间,让你的脑子转起来.
2、用一到两个例子来确定问题的限制条件和要求(在现场面试时在白板上完成这个过程,在电话面试时在笔记本上完成).尝试用中等规模的例子,以便覆盖到一些特殊情况.如果你能想到可能相关的表格,就把它画出来.事实上,把你想到的任何东西都写下来是会有帮助的,因为它能为你提供一个视觉锚点,从而让你在走不通时或者思考过程中随时返回某一个点.
3、把话说清楚,这可能是最重要的一步.要试着让面试尽可能有更多的互动,面试官不知道你在想什么,而让他们参与到你的思考过程里,会让她给你一些有用的提示,防止你偏向错误的方向.你的目标就是要先和面试官确证你的答案,然后再去写代码,而且你考虑答案越清晰、越高效,你得到的即时反馈也就越好.
4、通过应用以下技巧来找到答案:回想一下你遇到的类似问题,再想想它们是如何被解决的,尝试各种不同的算法(分治算法、贪心算法、递归、排序,等等),把问题分解成更小的、可处理的小问题(这样你就能得到相应部分的分数),最后再通览一遍你列出的数据结构,因为有时候,只要想到了正确的数据结构,就能给出正确的答案.
5、当你向面试官问清楚了问题、并向她解释了你的答案之后,就可以开始写代码了.要记住,在共享文档里写代码的时候,你可以复制粘贴、写评论,而且能回过头来完成骨架算法和功能.但在白板上写代码就不一样了,它需要你的头脑很清醒,而且需要你具备管理白板空间的技能.
如果足够幸运的话,现在当你开始在白板左上角动笔的时候,应该非常明白你要写些什么东西,而且你要确保在你写答案的时候,没有挡住面试官的视线.花点儿时间把代码写得紧凑而美观一点儿,因为你的代码也会是面试反馈的一部分.在你写代码的时候,要大声解释你在写什么,这会让你的面试官更容易地跟上你的思路.
6、最后,用不同的例子和特殊案例验证一下你的代码,并且要一行一行地过.这会展示你的思考过程,让你检查出小错误,并告诉面试官你的办法是可行的.如果你想得到额外加分的话,甚至可以把单元测试的代码写下来!最后再和面试官聊一下你的答案在空间和时间利用方面的复杂性,然后结束整场面试.
3电话面试中提示出的问题
电话面试值得特别一提,因为这是大多数人失利的地方.之所以会这样,部分原因在于电话面试是招聘过程中第一道真正的关卡,但也有一部分原因在于,这种形式容易造成沟通的错误,而且缺乏可视化线索,所以电话面试是特别严酷的.
电话面试有两大障碍.第一大障碍是,在电话面试的一开始,双方都能看到的唯一的东西就是一个空白的共享文档.这会让面试者倾向于过度补偿非语言沟通的缺失,从而着急忙慌地在屏幕上进行沟通.令人遗憾的是,这么做很少会有好结果.
所以当务之急并不是去关注那个正在盯着你的空白文档,而是要首先理解和评估问题(也就是完成上述六个步骤中的前四个),同时通过尽可能地沉浸到面试中来弥补现实存在感的缺失(要记住,电话的另一头是一位可以很容易就被别的事情[比如查看邮件]分心的面试官).
电话面试的第二大障碍,就是要同时在电脑上打字和在电话上聊天的后勤保障问题.你不必一只手敲代码、一只手打电话,也不必把电话调到扬声器模式,我建议你用电脑上的Google Hangouts接面试电话(你得有一个GoogleVoice号码,而且得在面试前测试一下).你还可以用耳麦或者耳机来进一步降低不好的接收效果、提高沟通质量.
更多青岛IT培训机构相关资讯,请扫描下方二维码

最新开班时间
- 北京
- 上海
- 广州
- 深圳
- 南京
- 成都
- 武汉
- 西安
- 青岛
- 天津
- 杭州
- 重庆
- 厦门
- 哈尔滨
- 济南
- 福州
- 沈阳
- 合肥
- 郑州
- 长春
- 苏州
- 大连
- 长沙
- 昆明
- 温州
- 太原
- 南昌
- 无锡
- 石家庄
- 南宁
- 中山
- 兰州
- 佛山
- 珠海
- 宁波
- 贵阳
- 保定
- 呼和浩特
- 东莞
- 洛阳
- 潍坊
- 烟台
- 运城