按要求转载自36Kr
编译 | 木木子
编者按:程序员是一个高门槛的技术工种,各种开挂技术与高能脑洞齐飞。因此,对于面试官而言是否会编码也成为一个to be or not to be的问题。来自博思艾伦咨询公司的Alea Qawiyy在” How to interview a web developer who just graduated from a coding bootcamp”一文中向面试者传授了她对于如何对刚毕业的程序员进行面试的意见和看法。
在参加完集训并对所有开发技能都有所了解之后,我开始找工作。然而在第一次面试时,现实就狠狠地打了我一巴掌。招聘人员对于如何面试一个新人相当手足无措。有些人甚至在面试之前就给我打了预防针,但这只会使面试过程变得尴尬而难以进行。
我会敲代码,也相信我能拿到offer,但是我很困惑为什么一到面试就会进展不顺。所以我挑选了一些于我而言很难的问题提前做准备,并对面试中回答不完美的地方进一步完善。在认识到自己的问题后,我将尽最大努力把控整个面试过程并充分展示自己的技能、素养以及已经取得的一些成果。
最后,我找到了一份满意的工作,现在我想把自己的面试经验分享给招聘人员以便帮助更多刚从训练营中归来的开发者找到一份心仪的工作。
不要只关注定义
开发者学习的是如何编程,因此我们不需要花费四年的时间只为记住一些定义。每当要求我说说对一些功能的看法时,我会就按自己的理解谈一谈。这些答案不会出错,因为招聘人员也不可能按照教科书上的答案来判题。如果面试官很熟悉编程,那么接下来他会针对我所说的提出问题。然而有时候,面试官对编程不熟悉从而无法理解我的想法,那么他们只能从教科书里寻找答案。所以重要的是,面试官应该对于这些概念有一定的了解。毫无疑问,在工作时会我们会迅速学会术语和行话。而对于满足商业需要的一些知识也需要额外耗费时间去学习,因此,在面试过程中更多关注于技能。
亲自体验开源代码,或者就一些代码进行讨论
所以,如果没有被问到大量相关的定义,那么彼此之间有什么可谈的呢?当然是要谈代码啦。我们可以顺便看一看他们的开源代码并请他们简单介绍一下情况。如果招聘方真的对JavaScript语言很了解,则可以指出一些可能存在问题的代码并告诉他们要对此留意。当在General Assembly集训时,我早上9点到,晚上10点离开。我不断训练自己迅速接触一个主题并写出代码。仅仅利用12周的时间就想让自己成为一个全能的开发者,那么就需要每天学习全新的东西。但缺点就是,很难再凭借记忆敲出代码。
有一次我参加一个电话面试,要求我按步骤描述出如何编一个程序。我之前做了很多相关的编程,因此内心非常窃喜。但当我开始回答时,面试官打断我说“我们需要你用专业术语告诉我们你将建立哪几个部分,并且在每个部分里面有什么”。说实话,这是一个离谱的要求。因此我提议以一个应用为基础,我再以此为基础阐述我会怎么做,并提出自己的改进意见。
如果使用白板则允许使用伪代码
我不知道为什么在白板上写代码会风行起来。我和许多资深的开发者讨论过这件事情,他们都认为其实这会使过程变复杂,以至于总体上并不会对项目评估有多大帮助。通常情况下,我用电脑和鼠标写代码,这会使我对于之前写的记忆深刻。而一旦我把它们列在白板上就很难记住。
试想一下,有人请求外科医生进行一次他们已经做过很多次的肾脏切除手术,但是病人是一个番茄。这没有丝毫意义,对吧?确实,而这就像让一个开发者在白板上用为数不多的标记来建构一组复杂代码一样。
但是,如果招聘方受限于招聘人数而一定要让应聘者在白板上编码,以此增加面试的难度。那么也必须同意伪代码的存在。如果开发者能够解释这个过程并能够描述出伪代码的作用那么也算面试成功。
同样重要的事:学习能力
记住,应聘者只是刚刚离开课堂训练的人。尽管他们在尽可能短的时间内学了很多东西,但也不是无所不知。像我参加的General Assembly集训一样,也需要极其用心才能毕业。我亲眼见证过其中的崩溃和放弃。但凡参加集训的人,他们都拥有想要学习的意愿以及快速学习的能力。与我而言,我在集训中就get到了自学新语言的能力。此外,我还认识到如果目前对某些事情不懂,这并不意味着我不能在工作的几周时间内学会。
来源:http://36kr.com/p/5074936.html