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

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

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

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

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

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

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

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

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

Facebook:

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

Google:

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

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

我讨厌智力题。

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

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

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

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

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

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

[英文原文:I Hate Puzzles: Am I Still A Programmer? ]
分享这篇文章:

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

  1. haitao says:

    本站的文章意思、取向,有返璞归真的感觉了。。。。。。。
    螺旋式上升

  2. Sweet says:

    这个站的新闻都是关于程序员的一些生活或者周边的一些东西,不是技术上的东西,非常好。

  3. zhong says:

    我在看文中提到的persistence.js,挺有意思的。

  4. newtamato says:

    我和作者的想法一樣,作為程序員,我們步伐見到一些很聰明的人。我們稱之為牛人,他們大部份的特質都是喜歡沉默,然後遇到難題幾乎都會很快的給出解決的方法。我不是這樣的一員,因為我知道我這方面不是強項,比不過的。
    但這並不影響我作為程序員所享受的快樂。呵呵

  5. 不喜欢智力题 says:

    我不喜欢做智力题,更不是喜欢做程序员,可我还是一个程序员……

  6. vicky says:

    我觉得必要的算法是必须的….效果很差很多的..

  7. hotdigger says:

    我看到智力题我头就大,特别是招聘要求的那些题,我从来都没有全部做出来过。于是我出招聘题的时候,就不考智力题了,有时间解决困难问题不在于算法,而是问题没有搞清楚,就限入忙于实现的怪圈,当然,我是说有时候。

  8. Yonghang Jiang says:

    4人过桥的题目属于ICPC的一道比秒杀题稍微难一点的题目。
    初次遇到的话半小时确实有点难度,但也不是不可能的。

  9. 张晟 对这篇文章的反应是赞一个

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据