没热情就不够格做程序员么?

2019-10-12 16:05:55 浏览数 (1)

预计阅读时间:6分钟

英文:Philippe Bourgau,编译:Inside - Mia www.inside.com.tw/2016/08/05/is-there-any-room-for-the-not-passionate-developer

导读:作者根据自身软件开发的经验,加上整理比尔·盖茨,Peter Thiel等各大名家曾经提过的理论及其中矛盾,试图找出软件开发生涯中的付出的努力、热情以及私人生活的平衡。

在《Rework | 重来:更为简单有效的商业思维 》这本书里,Basecamp 的 David Heinemeier Hansson 和 Jason Fried 说要“开除工作狂”,但《从 0 到 1》的作者 Peter Thiel 却说绝佳的工作条件,(比如像Google)是需要超过十倍的技术力来支撑的,没有其他捷径。

比尔·盖茨在 1983 年说过:

你必须觉得这个行业很好玩。你得晚上回到家还找电脑杂志来看,否则你的波长会跟不上(在微软的)这些人。

所以我们应该相信谁呢?你的人生一定要活在程序设计中才能当个好的程序员吗?

每周 40 小时工作时间

许多研究都指每周 40 小时是最有生产力的工时,不过 Malcolm Gladwell 在《异类:不一样的成功启示录》中也提到,要迈向成功需要一万小时的练习。而我的合气道教授则说,练习愈多你就会变得愈强。

约翰·索内兹在《软技能:代码之外的生存指南》一书中,一样强调努力的重要性。尽管他认同“聪明工作”就够了,但也承认他比寻常付出了更多努力,才在在职中创造了惊人的改变。

在一场对谈中,Ruby on Rails 作者,知名程序员 DHH 也曾和连续创业者 Jason Calacanis 一同探讨工作和生活的平衡。Calacanis 认为创业必须全心投入,而最后他们俩都同意“热情”才是最重要的。

以我个人的经验来说,当我做自己热爱的事时,我会:

  • 更有生产力
  • 觉得充满活力而非被工作淹没

我周围的优秀程序员都充满热情,而且每周工作超过 40 小时。我也观察到,热情和努力是发展未来技能的关键指标。

但是一个充满热情的人要怎样在每周工作超过 40 小时的状态下,依然维持生产力?

加入一点创新点子来维持活力

在《程序员思维修炼》一书中,Andy Hunt 提到了我们平常在背景执行的 R-mode 工作之外,还要找一些空闲来做一些“跳出常规思维”的创意方案。

极限编程鼓励大家维持可持续的开发步调,《代码整洁之道:程序员的职业素养》作者 Robert C. Martin 又叫我们每周工作 80 小时才能保持“专业“。

对我来说,持续在一个项目上做结对编程(Pair Programming)6 到 8 小时就是极限,超过的话,造成的瑕疵就会大于做出的贡献,让我变成「净负生产力程序员」(Net Negative Produced Programmer)。但如同我们同时做一点业余项目(Side Project),那我一天可以坚持写程序的时间就会变多。

我猜有热情的人大概就是这么做,他们会在主要的工作之外安排一些不同的主题来点缀。

  • 他们看关于程序设计的书。
  • 他们有自己的业余项目
  • 他们会读程序设计的文章。
  • 他们可能还会写程序相关的博客,他们可能会参加、举办或是主讲一些聚会。

大部分的时候,做这些都不是为了完成更多工作,而是为了学到更多。我发现身边的杰出程序员都充满热情,而且尽力去增进自己的技术,同时也注意到纯粹过劳的工作狂通常生产力都不高。

为人父母的挑战

我认为比尔·盖茨 1983 年的那段话还没有错。如果你没有热情,那程序员很难做得久。

保持热情的好处在于,我们可以拥有一个活力四射的工作环境,充满变化和新奇,但反面来说,要跟上这样的节奏可不容易。

当程序员愈来愈有经验,就会开始对麻烦的工作失去耐心,然后想要拥有:

  • 强大的编程语言和技术
  • 有效率的工作环境
  • 聪明的同事

不幸的是,当你为人父母,你可能只想有份稳定的薪水来养家,还有一些自己的时间来陪孩子。

这个时候就开始有点棘手了。你既不能跳槽到很酷却高风险的新创公司去做一番事业,你也没办法熬夜挤时间出来增进你的技能。雪上加霜的是,尽管你拥有 10 年的工作经验,懂得各种语言和技术,你的简历上要是没有亮眼的关键字,很多公司连看都不看一眼,这简直就是程序员版本的创新者窘境(创新者的困境),你就像那些老牌公司一样要保证自己不会被新技术挤出市场。

缺乏热情和养小孩,这两点应该能解释人们停止当个程序员的部分原因,而且我马上就想到这种现象带来的两种后遗症:

  • 我们常常要重新发明像轮子一样基本的要素(就是你,那边那个在写 JS 框架的)
  • 随着老手的离去,我们可能会在没有意识到的状态下,忽视了一些可以让我们更有效率的人际互动流程。

0 人点赞