最近我拜读很多文章,都是介绍面试问题的,我真心不理解,面试官代表公司想要聘用的是最优秀的程序员,那就意味着需要想出一些有意义的面试问题。如果你就提一些毫无用处的垃圾问题,那么很容易遗漏很多能干的程序员。当然如果你觉得你就是要吓跑这些人才,那么你就让人力资源部门来面试而不是真正精通程序的人就可以了。
为什么会这么严重?这是因为问题的答案能反映一个人的情况,而且问题本身也能告诉面试人员有关公司的一些情况。如果面试问题很糟糕,那么即使面试过程再完美,有可能你挑选出来的也并非最优秀的人才。话说没什么人愿意和一些技术能力差的家伙共事,而程序员更加受不了这种情况。至少,我是这样。
因此,为了确保能找到真正优秀的程序员,并且不至于吓跑他们,以下这些问题必须涉及
真的,会写,能写,代码
能够把事情办好
可靠
有点书呆子性格,乐于助人
喜欢学习新事物
基于上面这些要点,我整理出10个面试问题。如果是我的话,作为一个程序员在面试的时候要是被问及这10个问题,我会觉得以后我肯定能在这家公司愉快工作。
1、你最喜欢的编程语言是什么?你讨厌哪些编程语言?为什么?
2、如果让你在自己最常用的编程语言上面添加功能,你希望是什么功能?
3、说一个你曾经参与过的项目,在这过程中经历了哪些困难,最后如何克服?
4、你有没有干过什么事情最后却铩羽而归?
5、在某个休息天,突然有同事打电话来要你快速回复有关于你最近写的代码片段的问题,你会不会觉得生气烦躁?
6、你被要求去搞定一堆艰巨的代码,但是你却不知道它是如何工作的,没有文档也没有测试,你会怎么做?
7、在Zelda系列中你最喜欢什么游戏?你还喜欢哪些?你是否曾想过如果是你先开发的minecraft,那会怎么样?
8、你喜欢什么网站?
9、你会推荐什么书作为必读?
10、最后一个但并非是最不重要的,请解释以下名词:DRY、SOLID、YAGNI、乐观锁与悲观锁)、MVC与MVVM(可自行添加)
此外,写代码能力也是不可忽视的。可以让他们展示自己写的代码或者实现一个你现场要求的功能。真正有能力的程序员会为自己的代码感到骄傲,所以可以好好观察一下,看看他们是否乐意并勇于展示自己的代码。
以上这些问题不但能确保我们聘请到的是真正优秀的程序员,还能保证他们是真正的人才。
英文原文:10ProgrammerInterviewQuestionsI’dliketobeasked
翻译:codeceo