什么样的程序员是真正的程序员?愿意接受每周 80 多个小时的工作量?愿意将自己的人生投身于编程?本文作者认为自己无法成为真正的程序员,但会继续做自己的事情:尽力在这几个小时内产出更多代码。
英文原文:I don't want to be a Real Programmer
在我偶然发现的一篇博文中,博主提出了成为一名更出色程序员的方法。据他所述,使用最热门的技术和语言不会使你成为一名更棒的程序员,只会让你学习新工具。我对此深表认同,感触颇多。就拿满眼已经被开发出的东西来说,我并没有机会参与其中。
我们大致梳理一下:我非常喜欢使用橡皮鸭调试法(Rubber Duck Debugging),三年前,这个过程变成了过山车般刺激的编程之夜,还有第二天调试程序时的沮丧,以及项目结束时聚会的释然。在业余时间,我花费在编码上的几个小时是一个礼拜以来最愉快的时光。我喜欢尝试新鲜事物,乐于在白天多次提交代码,对编程马拉松(hackathon)不厌其烦。总之,我已经尽力尝试了“软件工程”中的许多美味,从嵌入式软件到 Web 和移动应用的开发。
冒充者
然而,像许多其他程序员同胞一样,我感到自己毫无价值。这并不是某一天冒充者综合症(imposter syndrome)让我感觉自己所做的一切都是运气使然。甚至在写上一段文字的时候,我都不禁思考自己可能是自我感觉良好。尽管我已经习惯了这种持续恐惧带来的糟糕感觉,但与之相伴的不悦之感却时常困扰着我。
因为我们都很差劲
你知道 TJ Holowaychuk 吗?他被个人崇拜的光环笼罩,很高产,自己一手搞定了 Node.js 中的很多类库。
如果你像我一样也想变成一位像 TJ Holowaychuk 那样出色的人,你要更舍得为掌握新的编程语言付出额外的努力,为一些额外的项目搭上无数的夜晚,并无处不在地讨论这些项目。拥有生活比起献身技艺已经微不足道。为了还未完成的项目坐卧不安。如果你有其中一点像我,那你才是想成为一名真正的程序员。
真正的程序员
一名真正的程序员,是那种热爱编程并乐意为此付出的人。真正的程序员对编程乐此不疲,不会停下额外的项目。真正的程序员会掌握所有形式的编程方法,并对自己所喜爱平台的 API 倒背如流。要想成为一名真正的程序员,你必须要沉下心去增长自己的知识和经验,并对此不计回报。
在过去三年中,我时常梦想成为一名真正的程序员。谁又不想呢?你的代码不仅可以带来名誉和荣耀,而且可以影响许多程序员同胞的生活。相当一段时间,我感觉自己就像一名真正的程序员。
然而,学的新东西越多,我就越觉得自己不行。当我与 JavaScript 语法错误奋战的时候,其他人则在重定义我们编写客户端所使用的方式。类似的问题,我无能为力。无论花多长时间去探求,我永远不会接近成为一名真正的程序员。
结语
我也许只是正在理顺这样一个严峻的事实:自己无法成为一名真正的程序员。当然,周围也有很多真正的程序员,他们愿意接受每周 80 多个小时的工作量,我感觉这些人愿意将他们的人生投身于编程,我对此钦佩有加。
我?我会继续做自己的事情:尽力在这几个小时内产出更多代码。
本文作者 Anas Ambri,就读于加拿大康考迪亚大学,是一位志向远大的软件开发者。