宠文网

奔跑吧,程序员

宠文网 > 科普学习 > 奔跑吧,程序员

10.2通过面试

书籍名:《奔跑吧,程序员》    作者:叶夫根尼.布里克曼
    《奔跑吧,程序员》章节:10.2通过面试,宠文网网友提供全文无弹窗免费在线阅读。!



你也许是一名非常出色的开发人员,也很适合那家公司,但是除非你知道如何在面试过程中展示自己,否则也有可能无法获得它的职位。原因很简单:面试的过程是让人畏怯的。通常面试官会用一个小时去决定是否要在接下来的几年和你一起工作。可是在一个小时内,你能真正发现一个人的什么呢?你所能使用的招聘过程已经重复地在许多面试和面试官身上使用了,虽然其中有些实践方法更为出色(阅读11.4节了解更多信息),但没有完美的方法。而且所有面试都要求你——作为应聘者,展示出面试所需的技能,这些技能有时候已经超出了你平时每天进行的编程活动。

但既然面试是一种技能,我们就可以通过实践把它做得更好。你需要掌握的关键就是能够在白板上编程,能够把思考的过程说出来,认识自己,了解公司,熟悉那些简短的、重复出现的计算机基本问题。



10.2.1  在白板上编程


在白板上编写代码是一种讨人厌的面试方式(阅读11.4.2节了解更多信息),但是却为大多数公司所采用。面试并不是天生适合编程的环境:我们是在用手编写代码而不是用键盘输入,没有语法高亮、没有IDE、没有编译器、不能剪切粘贴、没有Google、没有Stack  Overflow,也没有任何惯用的其他工具。这很痛苦,但我们又不得不做。请加以练习!



10.2.2  把思考的过程说出来


你可能习惯了默默地在脑海里解决问题。不幸的是,如果你这样做,面试官无法知道你是如何得到解决方案的,也不知道如果你被难住,要怎么帮助你,或者如何评估你的表现。因此,要习惯在思考问题时说出来。另外,如果你陷入苦苦思索,也没什么好奇怪的。大多数面试问题就是专门设计让你要动脑筋思索一番的,所以如果你不能立即想出答案,也不要觉得恐慌,可以继续把思考的过程说出来,提出一些想法,尝试举几个例子,尽可能取得一些进展。把思考问题的过程说出来可能会让你感觉不自然,但却是一种在很多地方都有用的技能(例如可以用在结对编程和设计会议上),也是面试的基本要求之一。请加以练习!



10.2.3  了解自己


除了编程问题之外,大多数面试官还会问一些关于你自己的问题。

·  谈谈你自己。

·  你以前做过什么项目?

·  你为什么要找一份新的工作?

·  你为什么想来这里工作?

·  你理想的工作是什么样的?

·  你想在5年内做什么,10年内呢?

·  你最大的优势是什么,最大的劣势呢?

·  你最大的成就是什么?

·  你曾经解决的最难处理的bug是什么?

·  我应该再问些别的什么问题吗?

有些问题听起来可能很俗气,但是却经常出现。请加以练习!



10.2.4  了解公司


虽然是公司在对你进行面试,但你也应该对它们进行“面试”。创业公司的职位是一种严肃的承诺——它会在接下来的几年轻易吞噬掉你一半的清醒时间——所以你要尽可能多地了解它们。在面试之前,要研究公司及其员工:他们是谁?他们在过去做了什么?他们在以后将走向何方?你也应该在面试过程中花点时间咨询一些你无法通过研究找到答案的问题。不要在面试完成之后还不了解以下问题的答案。

·  该角色的期望是什么?

·  该职位能够取得什么样的成功?

·  谁是我的经理?

·  我将从事什么项目?

·  技术栈是什么?

·  工作时间怎么样?他们花多少时间在编程上,又花多少时间来开会?

·  如何构建和发布代码?

·  公司的使命和价值是什么?

·  办公室怎么样?

·  在这里工作,你最喜欢和最不喜欢什么?

几乎每一名面试官都会给你咨询的机会。要当场想出一些问题并非总是那么容易,如果你什么都想不起来要问,看起来会像个糟糕的应聘者。一定要加以练习!



10.2.5  简短的、重复的计算机基础问题


由于时间限制,大多数面试问题都不会是大型、开放、真实的问题,而都是一些在限定范围内测试基本知识的小问题,通常来自于计算机科学课程的介绍,属于数据结构、算法和设计思想方面的。涵盖的主题也同样只是一小部分——大O符号、字符串处理、数组处理、遍历列表、遍历树、迭代、递归和动态编程——这些内容经常会在大多数面试中出现,所以要备上一本《程序员面试金典》和《程序员面试攻略》。这两本书涵盖了90%以上在一般面试中会遇到的问题,练习这两本书中的问题,将会明显增加你的机会。