在开发者工作面试上,并没有大量的建议。

我发现很多有才华的开发者都会在工作面试上存在困难,这是因为他们都把自己大部分时间花在他们所热爱的技术和开发上,而没有锻炼他们的面试技巧。

这是不幸的,因为拥有好的面试技巧,通过给你不熟悉领域上可能得不到的一些机会,真的能帮助你提高你的职业生涯。
1.聘请专家为你创建简历

我之前就说过该想法,但它如此重要,所以我再说一遍。除非你以写简历谋生,否则你不会是一名专业简历写手。

有许多人以写简历谋生,那些职业简历写手可能不会尝试在他们自己的电脑上写自己的软件。

因此,倘若简历写手不会写软件,为什么软件开发者尝试写简历呢?

也许你可以有一份好的工作,但够专业的话可以得到一份更好的工作。

我的建议是,如果你想使得到工作的机会最大化,那就硬着头皮支付美元吧,为了使你的建立更加专业化。这是一个基于更好的机会,相对较小的的投资,你很有可能有大量的潜在的收益。

2.了解你的面试官

当我对开发者进行面试的时候, 我总是感到很惊讶。我在开始面试之前已经给这些开发者发过邮件,这些(邮件)包含了我的全名和我的博客地址,但在面试中我与他们交谈的时候,似乎他们对我一无所知。

反过来说,在那里我曾经面试过一些人,他们在面试中提到我曾经写过的有一篇博文或者在Pluralsight上观看过我的课程。

猜猜对于某一份工作我更倾向于推荐那类开发者?

我们都是凡人,我们想知道的是我们感兴趣的人。 Dale Carnegie曾教过我,最简单的方式来获得对你感兴趣的人,是对他们显示出真正的兴趣。(的确,我好像第八次推荐这本书了,是的,这是一个亚马逊的链接。)

不论这是否是公正和客观,另外几点。如果你为了一份工作需要面试,提前不去了解下你将要面试的公司和面试官,将是非常荒谬的(如果你知道面试官是谁的情况下)。

今天,通过Facebook页面,Twitter或者博客,比任何时候都容易找人。仅进行一点点的研究你就会学到相当多的(知识),同时也表示你注重细节,更关心你的职业生涯。

3. 争取得到内部推荐

想知道什么是最简单直接的方式得到工作吗?那就是争取得到内部推荐。内部推荐可以提高两倍被面试的可能性以及40%的概率得到这份工作。这会产生很大影响。其实也并不困难,如果你能够提前播种下很多种子,那么在你想采摘的时候自然会收获充足的果实。

回想下,你找到一家理想的公司,想在此工作,该如何做呢?

首先,可以找到这家公司中一个开发人员的博客,并且发现你和他在某些方面有共同的想法,接着开始留意他的博客。

然后,评论他的博客,并且表示对他所从事的工作以及所在的公司感兴趣,当然最终目的是为了得到你理想职位的内部推荐。

许多开发者会说,“很抱歉,我不认识XXX组的任何人”。好吧,如果这个时候你想放弃,那就放弃吧,但是我敢打赌,如果你用这种方式继续下去,一定能够和任何一家公司的人员见面甚至成为朋友。

所有的秘密就是,在你需要一份工作时必须有网络,现在就开始吧!

4.学习解决算法问题

我总结了6步,用于解决在开发者面试中经常出现的算法问题。

它是每个开发者应该掌握的很重要的一项技能,学会它实际上没有那么困难。多数(注重实际能力)的面试都会涉及到一个或多个问题,让你解决一些编程问题,不管是在白板还是计算机上,多数开发者都是这样,除非是伟大的程序员,当被问及这样做的时候变得手脚无措,然后搞得一团糟。

如果你花时间去学习怎样解决这类问题,你将很容易把自己放到最高的10% 的能得到大部分工作的开发者中,同时在被问到上述问题时,你会放松许多。

我们之所以变得紧张与表现的焦虑无关,与解决该类问题的自信程度和熟悉程度有关。

例如,假如有人要你做10个玩玩,你可能不会觉得周围所有的紧张和桎梏...为什么?因为你自信你可以做到这一点。

在该领域建立自己自信心,你再也不会感到紧张。

5.回答问题要饱含激情

如果这是你想要的,用一个词来回答问题,或者用教科书般的句子来回答,在技术上可能是正确的,但你错过了展示一名开发者能带给团队的最大的资产的机会—激情。

如果我问你多态是什么,我不仅想知道你能从教科书上读到并记住定义再重复给我。我试着去发现你对多态性的理解。我期望你能阐述上述主体,并且借此作为一次谈话交流的机会。

现在,并不是所有的面试官都以同样的方式,你必须弄清何时该闭嘴,如果可能的话,在你回答和解释的是时候,你应该尝试表现出一定的激情

6.避免“陷阱”式问题

你为什么寻找新的机会? 你最大的优点和缺点是什么。 最近一次你和你的同事关于某个存在分歧的技术问题的结果如何?

在你被问及这类问题之前,你应该知道你将如何回答这类型的问题,并且知道面试官问这些问题时想要的答案是什么。

例如,加入我们看一下第一个问题,关于为什么你会寻找一个新的机会。。。

在多数情况下,面试官试着发现你是否会说你目前或之前同事的坏话。这是一个明确的信号,你会对他们做同样的事,所以不要这样做。如果你没有提前考虑这些,你会很容易的就掉入对目前工作的同事做出负面的评价的陷阱,这样将会严重的影响到你获得新工作的机会。

7. 永不说谎!

面试时最坏的就是说谎。

如果你不知道,不要给予答案。不要假装自己使用过一些你没有用过的技术,或是编造你上分工作所做事情的故事。

当然,即便你不能百分之百确定,甚或不知道,你也可以试着基于你所知道的事情给出一个回答。向面试官询问一下正确答案也无伤大雅,因为你真的感兴趣。

大多数面试官的提问方向都是他们所熟知的,这样,当你开始就问题展开讨论时,他们不会难堪。基于这个原因,哪怕你觉得自己是个扯淡高手,你扯的蛋也会迅速被察觉,你将立刻失去诚信,诚信一去难回。

8. 不要过于诚实

有一点,很多开发者做的有些过火了,他们揭露了太多的个人信息,认为诚实和完全透明是最好的策略。

尽管不应说谎,但同样也不应该将太多个人生活琐碎或是个人缺陷丢给你的面试官。

人们会被一点点神秘所吸引,他们不会压注于你的强迫症或对魔兽世界的痴迷是否会影响你的工作。

有个性是好事,性格缺陷则不然。

永不说谎,诚然,但也不要主动给予对自己不利的信息;不仅仅因为这些信息会伤害到你,同样也会显的你缺乏判断能力。

9.了解你的计算机科学基础知识

在我的工作面试课程中也涵盖了这一点,因为它非常重要,并且在不到一小时的时间能学会的。

当然,众多的开发者声称他们不知道链表和堆栈为何物,因为他们没有参加过计算机科学方面的正式教育或者距他们毕业的时间太久了。

我承认在大多数编程工作中,我们都没有用到深层次的计算机科学概念,但作为一名专业软件开发者,你至少应该知道最基本的知识。

我非常质疑,如果电工对电子工程的基本知识都不了解,你会期望他对你的房子重新布线,因此不要假定有人期望雇能编码但连他们专业最基本的知识都不了解的人。

你不必成为计算机科学教授,但你至少应该知道最基本的知识,那些我能确信在一小时之内能学会的知识,因为我在我的工作面试课程里就是这么做的。

10.创造性的积累经验

最后,但同样重要的是,大多数开发者,特别是刚起步的开发者或者进入到另一个不同的领域,缺乏相关的工作经验,也不知道该如何获得。

这有点像排在第一位的先有鸡还是先有蛋的问题。

如果你没有工作经验,你怎么才能获得经验呢?

答案是要创造性的(获得)。有很多方式去获得经验,不涉及到直接作为软件开发的公司。

这里仅仅是一些想法:

加入开源项目

启动一个开源项目

建立一个移动App,并且将其加入到app store

建立一个小型的web app

写博客

在代码营或其他用户组里展示

有很多方式你能获得在你的简历上看起来很漂亮的经验,并给你的雇主信心,让他雇用你,你仅仅需要的是要有点创意。

原文出处

results matching ""

    No results matching ""