设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 技术文摘 查看内容

我的面试程序员的经验:一个能一网打尽的技术问题

2014-8-8 13:33| 发布者: joejoe0332| 查看: 5934| 评论: 0|原作者: techug|来自: techug

摘要: 我面试过两种类型的人:实习生和准员工。实习生只需要经历以上第二条步骤即可,其他人则需要经历所有的步骤。在那个公司工作的两年多时间里,我进行了超过200次技术面试,这对我来说是一种丰富的学习经历,我逐步弄 ...


面试时让程序员去编码

  8个月过去了,我做了更多的研究,视察了一些美国公司筛选候选人的过程,这时候我决定去追求另一种方法:只需编码。这是程序员得到报酬的原因啊,所以为什么不直接展示给我看他们是怎样写代码的呢?你会觉得这很合乎逻辑……在经历了前几个月的教训后,现在测试变得很简单:我会给出三个算法题,你需要在30分钟内解决它们。候选人可以任意选择语言,并使用一台电脑作答(无法连接网络)。这些都是网上能找到的经典问题:其中一个算法题通常涉及字符串操作(比如在一句句子中逆置单词),另一个问题涉及循环(比如计算斐波那契数列),最后一个问题涉及集合(比如列表排序)。


示例:

  1. print out digits 1-100.
  2. for multiples of 3, print out foo.
  3. for multiples of 5, print out bar.
  4. for multiples of both 3 and 5, print out foobar.

  所有事情都变得更清晰,更美好了。我可以很直观地看到谁在代码中缩进、注释、遵循约定、寻找解决方案,等等。我可以据此判断这个人在过去的编程量,此外,通过与他们讨论问题的答案也能获得很多信息。我觉得候选人对这些测试题应该会感觉良好,因为我已经试图解除他们所有的压力,他们可以从容作答,选择他们想用的任何一门语言,征求建议,等等。

  起初,我对结果感到很振奋,并继续执行了几个月,然而再一次的,我意识到我遗漏了些什么……好像有些事不对劲……事实上我确实可以依靠这种方式找出能解决算法问题的人,但他们真的是我所要寻找的优秀程序员吗?请你思考一下,一个程序员的水平是不是由他能否解决一个数学问题所定义的?是不是由他能否写出复杂度为O(n log n) 而非 O(n^2)的排序所决定的?


能够一网打尽的面试问题

  我很清楚的记得,当我初学编程时,windows 3.1还未问世,QBasic语言是搭载在MSDOS 5.0上的,它包含自带的帮助信息,其中有所有的函数和关键字,像一本完美的离线手册。至今我还记得那时候编程的独特感受,萦绕在我心头,每一次我敲击F5,看到我写的程序在我眼前执行,每一行代码,每一个提示,甚至是颜色,或难以解决的问题……我简直是在天堂。我记得我在每一条命令前添加行号,用可怕的GOTO填满我的代码,同时每天又能学到很多令人振奋的新东西。我热爱编程,我会夜以继日地编写游戏、解决问题,并展示给我父母和朋友。时光飞逝,我从QBasic到pascal到vb,通过2400bps的调制解调器和家庭电话线路,为我们的BBS(Atomic BBS)编写游戏。我并不优秀,好吧事实上我的代码相当糟糕!但我热爱它!!我不能失去它……我猜有些人在他们第一次驾驶飞机、驾驶船只、吸食大麻、吃in n out(译注:美国一家汉堡快餐店)时会感受到他们的肾上腺素涌出的感觉,对我来说,那就是编程、编译和运行。25年前我获得了这种感受,至今它从未离我而去,我为编程而生,我永远都是程序员。


  我始终相信,一个热爱编程的人不会只在工作中编程,在家中他们也会继续创造乐趣,这是一种爱好。多少次,我在工作中因为蛋疼的Eclipse而感到失望,只能在我回家后,写Ruby on Rails代码寻找快乐,放松身心!


  回到上一个话题,在一年的尝试和失败后,我完全放弃了技术测试。我会坐在候选人身边,花5到10分钟阅读和点评他的简历,不问任何问题,之后我会翻过简历,看着候选人的眼睛问道:“我们剩下大概30分钟时间,你能告诉我你所编写过的最成功的项目的情况吗?”


  这个简单、独特和客观的问题是关键。一些人会含糊地回答他们之前的工作或学校的项目,而另一些人会突然变得生龙活虎,尽管一开始他们还有点放不开,他们会热情激昂的谈论他们编写的游戏、制作的站点、贡献的开源项目、开发的工具,他们会很骄傲的展示给我看。我时常会被他们的侃侃而谈吸引和着迷,继而询问他们这些喜爱的项目的所有细节,他们的话匣子打开了,讲述了他们所攻克的技术难题,加上一些小小的个人情怀,仿佛这就是他们的孩子。还有一点无法令人忘怀:我仿佛可以看到他们眼中的光芒,仿佛可以看到他们小时候编译和运行第一个hello world程序的情景,很快,我意识到了我们的共同点,我们都是程序员。


  他们中的绝大多数人没有接触过struts或其它我们正在使用的指定框架,然而当他们一进入工作后,他们总是会成为金牌程序员。他们学习快速,能写出更好的代码,他们用创造力和正能量激励着其他人,他们是真正的程序员。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部