口试
指考试的一种方式,要求应试人口头回答问题。很多很有才华的程序员在口试的时候总是掉链子,这大概是由于他们把大多数时间都用来搞技术开发,而忽略了学习口试技巧的重要性。
即使你对那个领域也并不是非常熟悉,有效的口试技巧业能让你成功得到工作。
1.给自己写一份非常专业的简历
作一份专业的简历,有可能得到的巨大收获。
2.研究口试官
调查发现,很多HR在招人面试前会发封邮件给应聘者,上面有相关个人介绍及公司资料。结果面试时却任然对公司一无所知。再举个正面的例子,我在口试时也碰到过这类开发人员,甚至能对我以前写的一篇博客或者做的教学视频上面的内容侃侃而谈。
你说我会推荐哪个?
“如果你要使别人喜欢你,如果你想他人对你产生兴趣,你注意的一点是:谈论别人感兴趣的事情。”
——Dale Carnegie
口试官也是人,也会有人性的弱点和特点。
不管这种方法是否有欠公正,但是假如你想口试成功,那么我建议你事先最好先好好研究一下你应聘的这家公司和口试官(假如知道的话)。
当今社会的信息是如此的发达,我们完全可以在Facebook、Twitter、微博、博客上找到任何人的资料。即使你只是大致浏览一番,也会让你受益很多。
3.获得内部推荐
知道找工作最简单的方法是什么吗?那就是获得内部推荐。这不但可以增加口试机会,还能提升40%的录用几率。
“可是,某某某公司里面的人我一个也不认识啊。”很多程序员会这么说。
举个例子,你可以找到该公司的一名和你有共同想法和意见的开发人员,然后开始关注他的博客。接着在他的博客中留言、发表建议,并且表现出对他的公司非常感兴趣的想法。混熟了害怕拿不到这个内部推荐资格吗?悟空道:"这个却难!却难!"
祖师道:"世上无难事,只怕有心人。"
——吴承恩《西游记》第二回
不过之前呢你需要险在网上创建自己的“名片”打造个人品牌,让别人有了解你的机会,所以do it now~
4. 学会解决算法问题
这是每一个开发人员都应该具备的重要技能,而且真要把握起来也并非那么难。
在很多口试中,都会有这样的问题,要求你在白板或者电脑上解决编程问题,但是很多程序员,即使是那些非常优秀的程序员,都会一下子大脑一片空缺,完全理不出思路来。
假如你能花时间学会如何解决这种类型的口试问题,那么下次再碰到这种场景,就不会这么紧张了。
我们会紧张实在和怯场无关,主要是由于我们不熟悉这些问题,也没有自信能解决这种问题。
在这方面建立起自信之后,你就再也不会紧张了。
5.活力洋溢地回答问题
只用一个字或者一句话,照本宣科平平无奇地回答问题,或许在技术上是正确的,但是你忘了应该借此机会好好展示自己的激情——这才是一个开发人员能带给团队的最大正能量。
举个例子说,假如我问你什么是多态性,我不是要你按照课本中的定义重复给我听,我希望你能就这个主题阐述一下,然后我们可以更深入地聊一聊。
6.小心“陷阱”问题
你为什么换工作?
说说你最大的优点和缺点。
最近一次你是如何解决和同事之间发生的技术分歧的?
在回答问题之前,你最好明白口试官问这些问题的目的,把握如何回答这类问题的技巧。
就先说说第一个问题吧“你为什么换工作?”
在大多数情况下,口试官想知道的是你是否是一个爱说三道四、惯于诽谤抨击雇主的人。所以千万不要上当。
7.永远不要撒谎
最糟糕的事就是在口试的时候撒谎。
知之为知之,不知为不知,假如你确实不知道,千万不要自作聪明来编造问题的答案。
相反,你应该诚实地说,你不知道或者你并不是100%肯定,但是你愿意尝试一下,然后再讲讲自己的想法。讲完之后也可以问口试官正确答案是什么,以显示你对此非常感爱好。
实话告诉你,大多数口试官问的问题都是他们知道的问题,不然假如你滥竽充数给你通过的话就会显得他们像个傻瓜。所以千万不要抱着侥幸心理,一旦发现你在撒谎,口试官马上就会质疑你的人品。
8.不要太诚实
很多程序员会过多地透露自己的信息,不要以为诚实和完全透明就是最好的政策,殊不知过犹不及。
第7条所说的不可撒谎诚然不错,但是我们也没必要将自己所有生活的细节和所有缺点都告诉给口试官。
有个性是好的,但是假如暴露了性格缺陷就坏事了。
试想一下,要是你说自己喜欢赌博或者沉迷于魔兽世界,我敢打赌,口试官肯定会重新审视你。所以在说自己信息的时候一定要慎重,由于这不但会暴露你的缺陷,还会显得你缺乏应有的判定力。
9.把握计算机科学的基础知识
是的,很多程序员在口试的时候,甚至理直气壮地说,他们不知道链表和堆栈,由于他们没有受到正规教育或者早就还给老师了。
我也承认我们在工作的时候是用不到那些深层次的计算机科学概念的,但是作为一个专业的软件开发人员,你至少应该知道一些基本知识。
举个例子说吧,你请电工来重新给你家的屋子布线,但是这电工一点也不知道任何电气工程的基本知识,你还请他干不?同理,我们也是如此。
10.关于经验
这是最后一点,但并非最不重要的,很多开发人员,特别是刚进入这一行的新手,往往缺乏相关的经验,也不知道如何增加所谓的工作经验。
这有点像是鸡和蛋哪个先出现的问题。
那么又该如何增加经验呢?
关键是要用创造性的方式。有很多方法都可以获得工作经验,但是却不必真正去一家公司上班。
给你点提示:
- 参加开源项目
- 启动开源项目
- 做一个移动app,放到App Store里
- 写一个小型的Web应用程序
- 参与代码交流和用户组
这些方式都可以作为工作经验写到简历中去,只要自己有想法,不愁没经验。
更多建议: