`
wjlgryx
  • 浏览: 297875 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

真正的程序员,请你站出来

阅读更多
我们积极的对外招聘已经有四个多月了,如果要问从这次经历中有哪些收获,我只能说,我终于明白,Jeff Atwood在FizzBuzz这篇文章里说的并不是玩笑话。(译者:这篇文章里说程序员不会编程)。

在新成立的公司中,我们RethinkDB公司因面试过程最为苛刻而出名。这是事实——我们对面试过程不会有半点妥协。我们期望通过最大范围的筛选来建立一个高质量的开发团队。对于这个初衷,我在之前的一些文章里提到过多次。在过去的几个月里,我们遇到不少人认为我们的要求高的有些离谱,以为我们是在招聘同时具有量子力学和计算科学双学位的火箭专家。这是误解。我们只希望招的能编程的程序员。

为了满足大众的好奇,我们公布了一些冒烟测试过程(smoke test),这写过程只是半个小时内的一次电话交流,大概20个候选人中有19人通不过这个测试。(这些候选人都是经过简历审查筛选出来的)。我们并没有 要求他们对一个复杂的算法提出解决方案。我们并没有让他们去做脑筋急转弯问题。我们并没有让他们做复杂的指针算法和操作。就像下面的这个问题,绝大多数的 应聘者都不能正确的解答,甚至做满半个小时,甚至给了大量的提示的情况下:

请写出一个C函数,实现反转一个单向链接表的功能。

就这样的一道题。我们选了一些简历写的让人不可抗拒的应聘者(包括做内核开发的,编译器设计的,还有一个哲学博士学位的),没有人能正确的编写出来,不管给他们多少时间。

我们当然也问了些其它问题。把N个元素插入到一个Vector里(或者ArrayList,或其它的你所选择的语言里被称作动态数组的东西),最坏的最复杂的一种运算情况是怎样的?我们并不是考察应聘者对这个数据结构的了解程度,我们只是希望他们用自己的见解阐述一下。我们会告诉他们vector的内部工作原理。你们知道吗,我们甚至接受O(N log N)次这样的答案。

如何实现一个读-写锁?我们并不要你通过电话编写出这样一个程序。只是说说方案,如果你的方案里能提到饥饿矛盾问题(starvation issues),那我们就算你中了头彩了。我们真的希望老天能不拘一格降人才,可是我们真的没有找到这样的人。

我们试探着询问多任务运行的合作模式和抢先模式的区别。我们试探着询问条件变量的工作原理。20个人中有19个人从头至尾一句话都没说出来。

为什么我们会询问这些很特别的问题?因为这些知识对一个大学毕业生来说是他们所学的全部课程中最核心的部分,因为这些知识在我们的日常工作中会以这 样或那样的形式被使用。而且,在这四个月的招聘中,我们发现,如果你能理解线程和协调进程的区别,你就能知道如何反转一个链接表,如果你对条件变量有了基 本的了解,你就能获得更多的机会在众多的应聘者中证明你是个更好的程序员。很多的人都做不到这些。

我们希望所雇佣的程序员拥有比我们上面所说的技能更多的能力,而且我们不认为这些要求很过分。只是希望你们对基础知识有扎实的掌 握,有潜力去完成艰巨的任务,对你们所开发的程序有虔诚的热爱。引用我的同事第一次听到FizzBuzz里的言论时的反应:“如果他们不能编程,他们能干 什么?”挑选简历需要好几个小时,每个应聘者需要20多分钟进行冒烟测试。然后面试过程每个人需要45分钟。整个过程差不多要15个小时的工作。这占用了 一个懂技术的工程师大量的时间去发现一个可用的候选人。

真正的程序员,请你站出来。
分享到:
评论

相关推荐

    vc教程入门-----真正的程序员用Visual C++

    真正的程序员用Visual C++。 如果你想当程序员,就请上课吧! chm格式让你的看的更方便!

    程序员如何真正的成长

    摘录自51CTO.com,文章就程序员的生涯发表了一些想法,从成为一个程序员需要具备的东西到成长成为一个真正的程序员,以及关于程序员的职业发展等等做出了一些较好的建议。

    lover-awesome:程序员相亲助手,重点解决程序员交友、程序员恋爱、程序员相亲、程序员找对象的问题,真正开源交友.zip

    lover-awesome:程序员相亲助手,重点解决程序员交友、程序员恋爱、程序员相亲、程序员找对象的问题,真正开源交友。.zip,程序员相亲助手,重点解决程序员交友、程序员恋爱、程序员相亲、程序员找对象的问题,真正...

    作一个真正合格的程序员要知道的

    作为一个程序员要知道的。。。。 作一个真正合格的程序员,或者说就是可以真正合格完成一些代码工作的程序员,应该具有的素质。

    作一个真正合格程序员的七种素质

    作一个真正合格程序员的七种素质

    程序员,你能真正掌握多少编程技术?共2页.pdf.zip

    程序员,你能真正掌握多少编程技术?共2页.pdf.zip

    像程序员一样思考

    《像程序员一样思考》分析了程序员解决问题的方法,并且教授你其他图书所忽略的一种能力,即如何像程序员一样思考。全书分为8章。第1章通对几个经典的算法问题切入,概括了问题解决的基本技巧和步骤。第2章通过实际...

    《真正的程序员 For C++》

    《真正的程序员 For C++》.torrent

    做一名真正的程序员.pptx

    共有三部分,第一部分1、程序员的基本素质。第二部分2、程序的编辑、编译、运行。第三部分3、代码规范。

    《程序员》2011年08期

    6,资格证书 资格证书并不是识别真正程序员的方法,MCSE、SCJP说明不了什么,它们只是让别人认识和获取的,顶多代表这个人在某个技术有一定的知识。 原文作者在文末写道:以上所说的标准并不是绝对的,因为有些优秀...

    像程序员一样思考.pdf

    《像程序员一样思考》分析了程序员解决问题的方法,并且教授你其他图书所忽略的一种能力,即如何像程序员一样思考。全书分为8章。第1章通对几个经典的算法问题切入,概括了问题解决的基本技巧和步骤。第2章通过实际...

    真正程序员Asp.Net开发系统必

    这是我从事.Net程序员多年积赞下来的常用方法的精华,可以大大提高大家的开发效率,特别是刚入门的新手。常用方法包括 MD5加密,解密,防SQL注入,正则表达式验证等等,还有好多,值得大家收集。

    程序员面试宝典 第五版

    《程序员面试宝典(第5版)》是2015年10月电子工业出版社出版的图书,作者是欧立奇、刘洋、段韬。程序员面试宝典(第5版)》不仅对...真正做到了由点成线,举一反三,对读者从求职就业到提升计算机专业知识都有显著帮助。

    程序员面试宝典pdf

    本书取材于各大IT公司历年面试真题(包括笔试题、口试题、电话面试、英语面试,以及逻辑测试和智商测试)。... 希望真正做到由点成线,举一反三。本书对于读者从求职就业到提升计算机专业知识都有显著的帮助。

    程序员该如何打败拖延症

    关于拖延症的话题我在Hacker News上不断的看到有人提出来(你也读了,不是吗?),感觉有必要将我是如何跟拖延症做斗争的方法分享给大家。然而,我这里说的主要是针对程序员/美工,但其实任何人都可以使用。首先最重要...

    程序员成长路线图:从入门到优秀.pdf

    我早就有和他们共语的愿望,希望通过这个主题和他们交流程序员所关注的各种问题,希望我的经验有助于他们的成长,同时我也想谈谈EOM对程序员的真正价值的影响,以及如何实现“成为比尔·盖茨”这个程序员的最高梦想...

    程序员面试宝典完整版

    本书取材于各大公司面试真题(笔试、口试、电话面试、英语面试,以及逻辑测试和智商测试),详细分析了应聘程序员(含网络、测试等)职位的常见考点。本书不仅对传统的C系语言考点做了详尽解说,还根据外企出题最新...

    如何识别真正的程序员

    由于好的程序员喜欢学习和涉猎新技术,所以一般来说超过22岁的都熟知很多新技术,而且对多种技术的长短有 “强烈”的个人意见/见解,喜好尝试新鲜技术。

Global site tag (gtag.js) - Google Analytics