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

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

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

我讨厌智力题:我还是个程序员吗?_第1张图片

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

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

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

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

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

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

  Facebook:

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

  Google:

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

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

  我讨厌智力题。

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

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

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

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

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

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

你可能感兴趣的:(程序员)