请见谅:怕原文被删除,故copy过来了

真正的程序员,请你站出来(http://news.csdn.net/a/20100719/219154.html)

在CSDN论坛上,曾有一篇主题为“这里90%的程序员根本就不算程序员”的热帖,谈到并不是每个操作代码的人就是程序员,那些不热爱开发行业的人根本不算程序员。并列举了许多“伪程序员”的行为特征。

无独有偶,国外一家技术公司RethinkDB在其官方博客上也谈到这个问题,抱怨了找到一个真正符合要求的程序员是多么艰难。外刊IT评论编译了这篇博文,全文如下:

我们积极的对外招聘已经有四个多月了,如果要问从这次经历中有哪些收获,我只能说,我终于明白,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个小时的工作。这占用了一个懂技术的工程师大量的时间去发现一个可用的候选人。

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

(copy)真正的程序员,请你站出来---结论:戒骄戒躁,脚踏实地相关推荐

  1. 一个我自己建的程序员资料分享站

    自己建的一个小站,目的是分享收集起来的程序员资料(大部分是pdf和视频). 资料都经过我分类和统计,每个资料都会有简介或者目录,可以看看是否适合再下载. 具体可以到我的小站 程序员资料站 看看. 资源 ...

  2. 程序员请收好:10个非常有用的Visual Studio Code插件

    作者 | Daan 译者 | Elle 出品 | CSDN(ID:CSDNnews) [导读]一个插件列表,可以让你的程序员生活变得轻松许多.无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发 ...

  3. 程序员请收好:10个非常有用的 Visual Studio Code 插件!

    一个插件列表,可以让你的程序员生活变得轻松许多. 作者 | Daan 译者 | Elle 出品 | CSDN(ID:CSDNnews) 以下为译文: 无论你是经验丰富的开发人员还是刚刚开始第一份工作的 ...

  4. 作为一名程序员,我站在人生的十字路口

    一位程序员的困惑,相信也是不少人有这样困惑,如果是你,你会做出什么样的决定?(文章底部有投票) 我毕业于一所知名的重点工科大学,计算机专业,纯正科班出身. 上学比较出色,成绩很好,英语6级(毕业后没用 ...

  5. 前谷歌技术主管亲述:程序员请避开这几大雷区

    软件工程师的技能发展都会经历一个自然的过程--经验从无到有,最后变成老手.而一旦到了经验丰富的阶段,他们对代码就不那么感兴趣了.恰恰相反,他们会把更多的精力放在文件设计和代码重构上. 奇怪的是,不管任 ...

  6. visual studio 代码提示插件_程序员请收好:10个非常有用的Visual Studio Code插件

    作者 | Daan 译者 | Elle 出品 | CSDN(ID:CSDNnews) [导读]一个插件列表,可以让你的程序员生活变得轻松许多.无论你是经验丰富的开发人员还是刚刚开始第一份工作的初级开发 ...

  7. 从医记之程序员请呵护你的胃

    2019独角兽企业重金招聘Python工程师标准>>> 前言:转到医院工作已经3月了,虽然不是医生,但也穿着白大褂,看着像那么回事儿,内心也渐渐强大了.上次@王振威 的老婆@刘小羊 ...

  8. 大学生或者程序员上B站学习编程必备的几位优秀UP主

    一.尚硅谷(很多优秀的课程和先进的学习路线,很多资源都是开源,大家可以在评论区寻找) 二.黑马程序员(应该是B站上粉丝最多的编程教学官方号,开源方便) 三.遇见狂神说(狂神Java系列讲解很细致,sp ...

  9. 世界读书日:作为一个优秀的程序员请收藏这份书单

    ​4月23日世界读书日全称"世界图书与版权日",又称"世界图书日".最初的创意来自于国际出版商协会.由西班牙转交方案给了联合国教科文组织. 1995年11月15 ...

最新文章

  1. 与现代传感器的接口:轮询ADC驱动程序
  2. 隔年的衣服发黄处理方法
  3. 1984钻石一代NBA选秀
  4. MVC中的统一验证机制~续
  5. JS的ES6模板字符串(拼接、变量、循环、函数)
  6. 8 行 Node.js 代码实现代理服务器
  7. Kubernetes的Device Plugin机制源码解析
  8. 主题:Spring注解入门(转载)
  9. git常用命令及冲突解决
  10. python最大公约数计算_使用Python求解最大公约数的实现方法
  11. 使用 BoringSSL 优化 HTTPS 加密算法选择(不同终端加密算法不同)
  12. 【bzoj4974】字符串大师 逆模拟KMP
  13. linux系统中配置NFS实现文件共享
  14. SQLServer2008----对数据分区
  15. 欢迎关注中文开源字体集 Open Source Fonts Collection for Chinese
  16. JSP文件过大编译失败 异常is exceeding the 65535 bytes limit错误
  17. Python 重载向量加法运算符 +
  18. 什么是HSS?HSS有什么主要功能?HSS与HLR的区别是什么
  19. 低档计算机配置 新闻,一台电脑配置的高低,主要看这四方面
  20. 因果推理(八):工具变量(Intrusmental Variables)

热门文章

  1. 惠普linux系统改装win7,惠普EliteDesk800 G3台式机预装win10改win7教程
  2. 百度地图开发(3)实现本地两点间步行导航
  3. python将.mat文件转换为.txt
  4. HTML5期末大作业:轮滑运动体育类人物介绍主题网站设计(12页) HTML+CSS+JavaScript 学生DW网页设计作业成品 web课程设计网页规划与设计
  5. [JMeter性能测试实战]之先从搭建测试环境开始
  6. “科林明伦杯”哈尔滨理工大学第十届程序设计竞赛——H.直线【JAVA大数 | Python】
  7. linux kernel panic not syncing 永久解决的方案
  8. bzoj1724【Usaco2006 Nov】Fence Repair 切割木板
  9. Java设计模式之Builder模式
  10. [OHIF-Viewers]医疗数字阅片-医学影像-Module: Panel-自定义面板-中二-Reduxreact-redux状态管理详解...