综合资讯   

我讨厌智力题:我还是个程序员吗?

时间:2011-03-17 19:52:38

本文是从 I Hate Puzzles: Am I Still A Programmer? 这篇文章翻译而来。


大概是一两个月前,朋友送了我和老婆一份礼物:一个有1000个小拼块的拼图版,拼的是艾歇尔名作:

艾歇尔名画hand-with-reflecting-sphere-1935-lithograph

昨天我们决定试一试身手。

仔细看了看这个图片,60-70%的色块都是灰的。这些拼块都非常的小,只有少数几块能辨认出上面画的是什么东西:艾歇尔的眼睛和背景上窗户的某些部分。等把这几块拼完后,我们就傻眼了。

为什么人们会喜欢这种东西?如果你实在没有任何事情可做,那就不说了 —— 但我们还有很多有意义的事情要做。

我们决定放弃。我们再次确认了已知的一个事实:我们讨厌做智力游戏。

这天晚些时候我在Reddit或是Hacker News或是其它的一个什么地方发现了这个”漫画“。画的是关于编程的乐趣。简而言之:写公式化的代码 —— 无聊;尝试新的算法 —— 有趣。

寻找新的算法是程序员版的智力游戏。当有问题时,能找出解决这个问题的最优算法是一件非常有趣的事情 —— 不是吗?当我的博士学习快要结束时,我四处看了看可以去哪里工作,我发现很多有趣的公司都想要:解决算法问题能力很强的聪明的小伙和女孩。至少,他们招聘 过程体现出来这些。

Facebook:

你喜欢智力题吗?我们也是。

Google:

四个人需要在晚上通过一个损坏的桥。不幸的是,他们只有一个手电筒,而过这个桥不拿手电筒是很危险的。这座桥每次只能承受两个人同时经过。每个人通过桥时所需的时间也不一样。四个人分别用去:1分钟,2分钟,7分钟,10分钟。四个人都通过这个桥最短需要多少时间?

几周前,旧金山的一个名声很响的新锐公司联系到我 —— 问我是否有兴趣加入他们的团队。是吗!太好了!你能否在半个小时内把这个算法难题解决掉?我失败了。是否要我结果出来了。故事结束。

我讨厌智力题。

不喜欢智力题我就不是一个好程序员了吗?如果我不喜欢或很讨厌这种类型的智力题我就不是程序员了吗?有很多迹象表明我可不是一个真正的书呆子 —— 比如,我不喜欢科幻小说。也许只是我不是这些公司要找的那种类型的程序员。这很公平。

我编程已经有18年了。非常少的机会我需要解决复杂的算法问题。我喜欢编程并不是喜欢解决难题 —— 我是喜欢设计。如何的方式能设计出一个大家都能理解的应用程序?什么样的工具能让开发者们获得更高的生产效率?

我第一个大工作量的编程项目——大概十年前——是YaBB。我需要一个论坛软件,但你根本找不到一个好的免费的可用。在YaBB里有很复杂的算法吗?几乎没有。然而,它对人们却是非常的有用,而且当时也是非常的成功。

后来我开发了persistence.js 和 mobl。两种产品都可以使开发人员获得更多的工作效率。同样,这里的挑战根本不是来自算法。挑战性来自API(persistence.js接口)和编程语言(以mobl为例)。两者都很简单,强大,灵活,有用。这些都不是简单的活儿,但都跟算法没有什么关系。它们是设计。

也许我更应该把自己当作一个软件设计师,而不是一个程序员。

编程对你意味这什么?是一种本质的算法?还是根本不是?我不喜欢智力题是脑袋有问题吗?

 

来源:外刊IT评论 http://www.aqee.net/

Notice: Constant RUNTIME already defined in /srv/html/srccn/news/config.php on line 15 Notice: Constant ROOTDIR already defined in /srv/html/srccn/news/config.php on line 16 Notice: Constant SITEDIR already defined in /srv/html/srccn/news/config.php on line 17 Notice: Constant DATAURL already defined in /srv/html/srccn/news/config.php on line 20 Notice: Constant VERSION already defined in /srv/html/srccn/news/system/kernel.php on line 17 Notice: Constant COREDIR already defined in /srv/html/srccn/news/system/kernel.php on line 18 Fatal error: require(): Cannot redeclare class mysql in /srv/html/srccn/news/system/kernel.php on line 22