程序员?还是小丑?

标签: 程序员 小丑 | 发表时间:2011-10-27 16:06 | 作者:(author unknown) Vingel
出处:http://www.cnbeta.com
cnBeta 人物

这是我遇到的问题。和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑。我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人。但是,有些程序员,我的天。

就像最近,我面试了一位毕业生。我把他叫做Ada。对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生。

我让Ada写一段程序,在纸上,打印出“hello“这个词10次。用什么语言都行,我说。

下面就是Ada写出的。

\

不管怎么说,拼写是完全没有错误的。

我差点就被这些化妆成程序员的小丑给骗了。我本以为他会使用一些基本的循环句法。你说这种东西还要去告诉他吗?

是的,我觉得也没必要。

有些人喜欢集邮。我喜欢收集诡异的代码。我在代码审查的过程中收集它们,这些年已经有了丰富的收获。我收集它们主要是好玩,但在面试中它们却能派上大用场。

我会在一次面试中挑出10个代码例子,大多少是C#和TSQL代码,然后问面试者如何评价它们。

事实上,由于经常做这个,我已经记住了一段解说词,就像这样:

我会向你展示一些代码,这些代码都是在正式的代码审查中发现的,它们都是已经准备好要发布给客户的代码。你可以认为它们是经过编译,测试,能符合需求要求运行工作的代码。你需要指出的是这些代码中存在的一些涉及到日后维护工作的问题。

语法型小丑

这样,就比如我会展示一段像这样的代码

1

2

if(long.TryParse(x, out number))

    number = long.Parse(x);

对于这段代码,你可能会惊讶,我希望程序员能发现这第二行代码完全是多余的。但语法型小丑会立即指出你没有声明xnumber 变量。

“提醒一下”,我说,“这是从一大段程序中摘录出来的,它是编译通过的,而且经过测试。“然后我满怀希望的看着他。

语法型小丑执着的回复说“可是你确实没有声明这些变量!“

\

“你再说一次这些变量没有定义,
你他妈的再说一次,我看你敢。”

万事通女孩罗西型小丑

语法型小丑归罪于没有好好听,万事通女孩罗西型小丑问题更大了。

罗西女孩拒绝相信代码里有任何的错误,即使在我明确的说“这里有一些问题,你要找出它们!“很显然,在罗西女孩生活的魔幻世界里没有任何不好的代码。

\

“不会有写的不好的代码的,
而且,你看我这可爱的头发!”

“我一眼就看出来了,我只是不知道如何向你解释“型小丑

用力的一弹纸,确信的一点头,很显然,这种小丑清楚的知道问题出在哪里。

但是就是在这关口,他们无法找到正确的词来解释清楚。

即使你给他几分钟让他想想,他们还是想不出来。你等他一整天,还是如此。

即使你等到海枯石烂、对面只剩下一堆骨架,你也等不到他们能找到正确的词语来答复你。

尽管他们有发现问题的锐智和本能,这类小丑不能表达出来,这不能不让人惋惜。

\

“等等!我知道怎么回事!
可是,我怎么用简洁的话把它说清楚呢…

小题大做型小丑

这种小丑很神奇。当能用迭代器时他们绝对不愿意使用简单的循环。当能用递归时,他们绝对不愿意使用简单的迭代。如果你想派人参加代码混淆技术大赛,这些小丑正是你要找的人。

\

“这代码很明显缺少抽象—代理—façade模式…”

愤怒型小丑

很多次我都会被礼貌的问候,与他们愉快的谈论天气,倒杯茶,安排妥当,开始一场关于编程的对话。

接下来的事情会让你无法招架。

愤怒型小丑很酷,沉着,镇定—在你问他第一个问题前。

\

“我怎么他妈的会知道,这是他妈的什么破问题”

并不是都这样糟糕

公平的说,如果某个人在面试我,他也许会认为我是个小丑,也许认为我是这些类型小丑的混合体。这是面试官的特权。

不仅如此,一些程序员会认为给他们面试的人正是马戏团团长,这是他们的特权。

不管情形是怎样,亲爱的程序员们,你要明白,我只是想在我们之间建立一种融洽的关系。但有时候,我发现这很难。

还是很有趣的。

本文是从 Coder or Clown? 这篇文章翻译而来。
编译/外刊IT评论


相关 [程序员 小丑] 推荐:

程序员?还是小丑?

- Vingel - cnBeta.COM
和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑. 我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人. 对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生. 我让Ada写一段程序,在纸上,打印出“hello“这个词10次.

【外刊IT评论网】程序员?还是小丑?

- Coolxll - 外刊IT评论
本文是从 Coder or Clown. 和你从不认识的人坐在一起,试图弄清楚他是个程序员还是个小丑. 我没有想侮辱任何人的意思,而且,我是第一个要感谢这么多年的教育和努力终于把我变成一个专业小丑的人. 就像最近,我面试了一位毕业生. 对于程序员新手,我充满怜悯,为了和缓的帮他热热身,我给了他一道温和的问题来消解我们之间的陌生.

普通程序员、文艺程序员、2B程序员

- 可可 - 宇宙的心弦
希望能引起广大苦逼的正在学或者已经学过c++人的共鸣和会心一笑吧. 如何辨别自己在现实还是虚拟世界.

如何面试程序员?

- bluesnail - 阮一峰的网络日志
你要面试一个程序员,应该问他什么问题. 有人在Hacker News的讨论区里,请求指点,怎么才能在面试中发现合格的人. 众人纷纷出主意,有很多高质量的回帖,我觉得挺有启发,就整理出了下面这篇文章. 首先,最重要的是,你自己一开始就应该想清楚:. 哪些途径和方法可以发现这样的人. 只有明确这些根本性的问题,才能正确高效地完成面试.

程序员的本质

- Allen - 译言-电脑/网络/数码科技
来源What do programmers really do?.   很多人(包括我岳母)认为计算机变得如此智能,所以在不久的未来将不再需要程序员. 另外一些人认为程序员是天才,他们在电脑前能不断地解决复杂的数学难题. 甚至不少程序员对他们是做什么的都没有清晰的概念.   在这篇文章中,我想给不知情的人解释一下程序员到底是做什么的:.

程序员人生之路

- myartings - 博客园-首页原创精华区
   程序员人生之路(强烈推荐,分析的透彻. ),某程序达人的人生感悟,估计没有半个甲子的时间,是绝对不可能感悟出来的.    相对同时刚出校门同学从事其它行业而言优厚的薪水,以及不断学习更新的专业知识不仅仅让你感到生活的充实,更满足了你那不让外人知的虚荣心. 在刚出校门的几年中,你经常回头看看被你落在后面的同学们,在内心怜悯他们的同时,你也会对自已天天加班的努力工作感到心里平衡:“有付出才会有回报”这句话在那几年中你说的最多,不管是对自已的朋友们还是自已的爱人.

程序员装B指南

- Qing-Run - 博客园-首页原创精华区
1.电脑不一定要配置高,但是双屏是必须的,越大越好,能一个横屏一个竖屏更好. 一个用来查资料,一个用来写代码. 总之要显得信息量很大,效率很高. 2.椅子不一定要舒服,但是一定要可以半躺着. 3.大量的便签,各种的颜色的,用来记录每天要完成的事务,多多益善. 沿着电脑屏幕的边框,尽量贴满,显出有很多事情的样子.

程序员收入报告

- diaoxsh - cnBeta.COM
最近,波兰的程序员Chris(也叫KreCi)公布了他的第十四期程序员收入报告. 数据显示,上月是目前为止他收入最多的一个月. Chris的收入并不是指他的工资或薪水,Chris是一个自由职业者. 他的收入也不是来自个人承包软件工程的收入,他更像是一个果农,种了优良的果树,只要不断的给这些果树施肥浇水,这些果树会给他带来源源不断的财富.

程序员的利器-SourceInsight

- Alex - 博客园-首页原创精华区
作为程序员,大部分时间是在已有的代码上代码工作. 要对已有的代码进行调整,首先就要搞清楚当前代码中蕴含的逻辑关系. 所以常常有程序员调侃说花了大半天时间看代码,最后写代码的时间只有几分钟. 所以,对已有代码的分析质量将影响(甚至会决定)最终代码修改的质量. SourceInsight在代码分析上给予程序员极大的帮助.