【译】我是一个垃圾程序员

在过去的4个月里,我深刻地反思了我自己。就在7个月前,我还在从事一份虽不是十分讨厌,但却也感觉不到任何快乐的工作。我还不能确切地描述为什么我会有这样的感觉,直到我的一个朋友再次找到我,说有一份工作虽然干的活一样,但有机会参与开源软件项目开发,然后我就跳槽了。这一切让我知道了:

我是一个垃圾程序员。

3个月后我选择离开了这家公司。当时我签的是临时合同,在还没有完全投入工作前,却先感受到了公司内部的派系斗争之风。这份工作,我没感觉到任何快乐,但也没有特别的不开心。只是我还没找到一些特别具有挑战性的,并能引起我兴趣的事情。所以我决定先休息一段时间,总结下人生。

为了不至于影响家庭的收入,我仔细地安排了休假计划。在偿还完银行账单后,剩余的钱可足够保证我4到5个月不上班都没问题。做了张现金开销和预算表之后,我决定先休假2个月,然后用1个月的时间进行面试,最后第4个月作为缓冲期,以防万一面试的时间超出了我的预期。

现在我真的在缓冲期里了。到目前为止,我已经面试了近10家公司,却没有一家公司考虑录用我。甚至在多数公司中,我都没有通过技术面试。我是一个程序员,并且一直以来我都自我感觉良好,觉得我是一个还不错的程序员。但是在这样一个通过海选进行招聘的行业里,我发现很难再认为自己是一个优秀的程序员了。

我的一些好友和同事,我认为他们中的大多数都比我更有经验并且IQ比我高。当我向他们描述我的忧虑状况时,得到的反馈可总结为“理想很丰满,现实很骨感”。在上一份工作中,同事们熟悉我的做事方式,与我一起工作都很愉快。并且觉得我的工作背景、敬业程度和技术能力都非常不错。所以不能说我是一个没能力的程序员,只是我还不善于在面试中表现自己。

但如果说只有少数几个公司拒绝了我,我还能信他们。可是截止到目前我是颗粒无收,并且仅有两次我成功地通过了第一轮的技术面试。如果我已经手握一到两个OFFER,我还能承认我的能力,但你能说所有公司都犯了同样的错,一致地忽略了我这个虽然面试表现不好但却很优秀的程序员?换句话说,难道有那种可能,像我这样的垃圾程序员总是能从胜任工作的人的手中抢到职位?

从以往的历史来看,我应该不是那种光说不练的人。基本每天开始工作前,我都会练习写一些代码。同时仅是基于乐趣,我会使用一些奇特的编程语言来解决一些经典的场景。时常我也会向开源社区做些贡献。有时我甚至会去尝试与他人攀谈,学习如何在交谈中尽量的展现我自己。到后来我发现,像与人交往这种曾对我最具挑战的事也不是那么困难了。这段故事告诉了我,除非你去尝试,否则你不知道自己到底能不能做到。

问题是还没等我做成什么,我就已经崩溃了。这个月我还能付得起房租和信用卡,但是我还没拿到任何OFFER,下个月估计就得欠债度日了。我甚至不得不考虑从现在的公寓搬家到那种老旧的筒子楼里。但更重要的是,看起来我好像已经没有能力继续在这个行业工作了,并且恐怕我也不知道除了写程序我还能干什么。

那么,到底一个垃圾程序员是什么样?

我书架上塞满了各种经典图书:《SICP:计算机程序的构造和解析》、《Lisp编程》、《TAOCP:计算机程序设计艺术》、《C专家编程》、《Effective C++》和一些算法、分布式计算、安全、图形、数学等各种教科书,并且大部分我都已经读过了(TAOCP这本我还在不断的研磨)。我也经常读一些ACM、IEEE上的文章和博士论文。如果仅从我的阅读列表来判断,你可能认为我是科班出身,但实际上,我只是喜欢编程,并且想尽我所能来掌握更多的知识。

我为很多开源软件项目做过贡献,编程语言涵盖C++、Perl、Python等,甚至还用过一些类Lisp语言。这些项目中,有些我曾使用过但缺少一些功能,有些是新的项目需要解决BUG或增加功能,有些则是我发现是我需要的类库或程序。

我一直在用心地不断提高我的能力。前面我提到了以前我会写一些练习代码。在我工作过的部门里我会推崇自动化测试。我读过大量的书籍、论文和技术文章,同时我也会写一些文章来尝试着帮助他人。

我非常的喜欢数学。在读完信息论,弄清香农熵后,我又开始深入研究序理论。我真的很喜欢Joint-Semi-Lattices、集合论、关系代数、Sentential-Database。一些内容现在我已经记不清了,比如我知道对于每种递归的形式都有一个迭代的方法,如果我需要详细了解我可以迅速的查阅杂志或教科书。

尽管如此,我还是在编写一个要求判断是否序列A是序列B的子集并返布尔值的函数时出现了失误。当被问及我刚编写的函数的的复杂度时我还是记不起来了(擦,显然列表排列的复杂度为N方,但当时就像对我能否回想起这些细节的审问一样,头脑一片空白)。我的每一丝信心都已经被这些错误、失误和拒绝一点一点地打败了。

到最后,我发现我越来越沮丧、绝望,并十分害怕自己会让家人失望。以后我的女儿会问我我是做什么的,我可能不直接地回答她,或者告诉她我是给电脑写程序的,然后赶紧回避开女儿进一步的追问。等她长大了我也尽量避免告诉她,为了混上饭吃我可能什么都做。我从来没有成功过,甚至也没有做过什么让自己值得骄傲的事儿。我只是尽我所能,即使整个世界都觉得我不够好。

我是一个垃圾程序员,这就是我的人生。

原文地址:https://www.cnblogs.com/itmyhome/p/3068516.html