软件蚕食一切。未来属于程序员。所以人人都想当程序员。但是并不是每个人都能当好程序员。在你做出决定前还是先看看自己能不能当好程序员吧。可是什么样的人不适合当程序员呢?不要喝鸡汤,我们看看 Quora 上面是如何回答的。
在全栈开发者 Adam Leffert 看来,最重要的是态度:
我认为编程要想成功最重要的是态度。当然,最低水平的智力还是要的。以我这么久的经验来看,还没见过蠢到不会做的。
但是好坏程序员之间的差别几乎永远是态度。
耐心:对我来说这是最重要的一条。写代码和调试极其令人沮丧。要想做好,你得保持冷静,至少冷静到能够保持清晰的头脑。
精力:处理棘手问题,编写大量代码容易使得身心俱疲。最重要的是要有我朋友 Joshua Wachs 所谓的 “坐能量(tushie power)”。也就是屁股不离座直到工作完成的能力。
逻辑思维:这条看似明显,其实不然。一般的程序员在碰到棘手问题的时候一般是靠猜来解决的。运气好可能猜得中。但运气不好就难搞了。问题是猜并不能有效缩小可能原因的范围。好的程序员会提出猜想然后进行测试,从而排除掉一堆的可能性。比方说,屏蔽一段代码,看看问题是不是还出现。
自负:编程不是你自己的事。这跟你的团队、代码、客户、利益攸关者等等都有关系。(eShare CEO Henry Ward 说自己永远都不会要自负的人。)
曾写过不成功 OS 的 Peter Nierop 则总结出了当不好程序员的 3 个迹象:
讨厌用 Google:
在 github、google 和在线网站上面有大多数现成的解决方案。买本老教授的书学编程的日子已经过去了。现在的代码来得快去得也快。而至关重要的事情是把你的东西尽快推向市场。任何不愿每天至少使用搜索引擎 1 小时的人都应该另寻高就(编者注 1:Google 自己的研究也发现,开发者搜代码越来越频繁注 2:有人可能会说自己不是讨厌用而是用不了。好吧如果是这样的话,我要加最重要的一条:不懂用 google 的想都不要想当程序员了)。注意,这某种程度上可能是因为你什么都想自己来,想成为全世界唯一的那个纯粹的 coder。
朝九晚五的心态:
再强调一遍:及时发布很重要。普通的程序员往往每天工作不到 8 小时,好吧这就是你平庸的原因所在。不平庸的程序员连续 22 小时冲刺以后才能打个盹隔 4 天才洗次澡并在接下来的 2 周时间里每天要用 2 小时写一些报告。不能或者不愿在必要时加班的人最好打住。
极其糟糕的记忆:
编程就是开很多的会,做各种各样的变更,可能脑子里面要装 100 页的代码。未必是每一行都要记得清清楚楚,但起码在管理层又折腾出一个变更或客户突然又冒出一个想法时要知道你的程序是干什么用的,什么地方可能会失败,怎样才能很快修好。如果你的记忆力实在是太糟糕的话,最好还是找份其他的工作。
我在这个行当干了这么久,碰到过各种各样的程序员,不变的一点是一旦有上面的问题这些人基本都干不久。
CaveOfProgramming.com 开发者 JohnPurcell:
由于开发界总是渴望有新鲜血液进来,所以除非你实在是太差(或者你原来基本都不用工作)否则想不成功都很难。我喜欢 Peter Nierop 的回答,不过说到正式的付费工作,我本人总是严格遵守朝九晚五的习惯,所以那个说法应该看工作情况而定。
如果你发现编程很乏味,学习又总是繁琐无趣的话,那你想做好就很难了。因为你要跟已经编程上瘾的人竞争。不过我也见过几个人虽然不喜欢编程,业余时间基本也不编程,虽然称不上出色的程序员,但是的确能够借此谋生。
要记住的是,编程不是什么精英才能干的事情。这个行业永远都缺人。所以除非你一点都不喜欢编程,或者也没有准备好看在钱的份上忍住这种不喜欢,否则都可以来编程。
而享受编程乐趣的 Prince Pranav 提供了 3 个不适合编程的迹象:
因为错误而过早放弃:
永不放弃。哪怕是简单的错误也不要放弃。这会让你的代码和心态大不同。好的程序员,在写一长串代码的时候会把代码分解出来,分段测试。如果你因为前面 1 个小时总是碰到同样的问题就把电脑给关掉了事,可以认为这是迹象 1。最后你总会找到问题的,但一定不要放弃。
只对输出而不是质量感兴趣:
开发出好应用是你的责任。如果你为了赶时间而牺牲应用的质量,你可以成为程序员,但不会是伟大的程序员。
乐趣不是找来的:
你开始写代码前看了看表,13:02,然后你再看的时候变成 13:09 了。有的人再看表的时候已经是 15:37 了。真的,除非你是因为有趣才干这个时间才不会流逝(注:不得不说,这又绕到了做你所爱还是爱你所做这个问题。)
究竟什么样的人当不好程序员,你觉得呢?
什么样的人不适合当程序员,在正常智力情况下,也可以说是什么样的人不愿意当程序员,不是某些人当不了,而是某些人适应不了程序员的生活,一定程度上说这是一个“屁股决定脑袋”的事情,我是说屁股坐不住,基本上你做不了程序员,再聪明也没有用,没有大量的时间去陪伴代码,你根本无法了解海量的知识。没有痔疮的程序员不好程序员,虽然很无耐,但事实就真是这样。