我是一个垃圾程序员

英文原文:I Am a Bad Software Developer, 编译:Dennis Gao

在过去的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方,但当时就像对我能否回想起这些细节的审问一样,头脑一片空白)。我的每一丝信心都已经被这些错误、失误和拒绝一点一点地打败了。

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

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

1 收藏 69 评论

相关文章

可能感兴趣的话题



直接登录
最新评论
  • jig   2013/05/10

    靠。 要不要这么的接近啊....

  • 卡布达   2013/05/10

    为什么我觉得从这个人看的书来看,这个人应该挺厉害才对啊,什么问题?我也有点慌了

  • 这个老男只是压力大了,其实挺有实力的。

  • tolowwer   2013/05/10

    感觉面试真是一个很头痛的问题,其实当你进入了你也会发现自己能够做好,只是欠缺那么一个机会....

    • farewellwho   2014/03/25

      这只是一篇翻译文章,“楼主楼主”的不知道你们在说什么。。
      还有一些小朋友很中肯地提出了自己的想法和建议,挺不错的。可是,喂!你说的是国内的情况啊!原文作者是老外啊!!

  • lijiankou   2013/05/10

    看这么多书,好像很厉害啊,不理解

  • 前段时间的状况很像作者啊。
    作者一点也不垃圾,时运不济吧,而且很可能是面试官一方太垃圾。

  • Kevin   2013/05/11

    原来我连个垃圾程序员都算不上

  • 慌了,我比他差远了...

  • 小白   2013/05/13

    我去我才入门啊!就这么残酷?

  • Carl78   2013/05/13

    面试很多时候是不靠谱,经常遇到面试人员说,其实面试的题目我来做根本进不了公司

  • bethena   2013/05/16

    面试和工作是两回事,你可能缺乏的是一些面试技巧吧。加油,不要放弃。

  • 靠,接近度很高啊!说出了很多程序员的心声啊

  • 码农迪迪   2013/05/17

    其实我们目前的程序员
    都是伪技术!

  • lucas   2013/05/21

    好慌啊,看完之后得跪……

  • 到底   2013/05/21

    心虚了我都

  • yj   2013/05/21

    LZ,我觉得你缺少的只是机遇.

  • 开一个个人项目,首先满足自己的需求,然后寻找用户,满足他们的某些需求,从用户的角度看问题。这样就不仅仅是程序员了。或者能从其他角度看到程序员这个职业工种了。

  • mo   2013/05/23

    其实不是作者太拉圾,感觉只是心态原因使然,调整下心态,试着先放低点要求,如果得到了就提高点要求再去面试,手握一个offer再去面试,感觉有底气,心态会很不同

    • 同意!前一个月找工作的时候,刚开始也是唯唯诺诺的。有了第一个小offer之后就有底气了。每次问到待遇的时候,就报一遍已经有一个offer给多少多少。。。虽然最后被我给拒了

  • 小路   2013/05/24

    您好,我是一个即将毕业的大学生,看过您的博客,我想说您就是我心目中的“大牛”了吧。如果您有耐心听一个大学生的话的话,我希望您可以听我的一些建议。我和我的同学们在大三大四阶段一直处于一种找工作、实习的氛围中,现在我对找工作也有了一些理解,希望可以共同交流。

    我觉得不管是毕业生还是职场的“老人”,公司在找一个员工时,首先考虑的是让你从事一门任务,这个任务可能要求的技术点很单一,所以您干过的那么多事情和公司的要求可能不对口,也就是无用了,或者可以说只能作为锦上添花的东西。这是第一点,即心态问题。

    第二点是简历问题,我个人觉得一定要搞懂自己的简历,自己半懂半不懂的东西千万不要写到简历上去,要保证写上了简历的东西一定是自己比较熟悉的东西,至少和面试官谈起来不会卡壳。

    第三点是公司的选择问题,我在找工作参加笔试的时候,有些小公司纯粹无聊,竟然考一些java、c语法问题,这种东西到了公司培训一下应该大家都会了吧,这些公司以外包公司为主,它们不考虑员工的自我提升和发展,所以就你的这么强悍的技术条件来说,这种公司还是不要去了;我推荐您去关注一些大公司的招聘,它们比较考虑员工的知识深度和广度,我觉得这会很适合你。

  • D-clock   2013/05/25

    自信一点啦

  • 有时如果你只是骑驴找马式的去找工作,你的心态或者就不是这样的了,同楼下那些朋友所说,心态使然吧!

  • Edin   2013/05/26

    这个广告做得不错,牛擦

  • Drjones   2013/05/26

    我觉得现在很多公司的面试都很有问题。笔试的时候过过分注重细节,而不是考察这个人的技术背景经历和能力。

    • Paris   2013/05/31

      我也觉得
      我脑袋那时候空白做不出逻辑题你也没给我时间就判断我的解决问题能力?

      面试和工作真是很不一样,对白痴百年不变面试题表示无奈

  • frank   2013/05/26

    我觉得楼主是不是总结得太少了啊。。。
    不过对自己要有信心,因为只有有信心才能做好一件事情!
    Good Luck!

  • CyL0NG   2013/05/26

    我更垃圾,代码都没写多少,常常发现好多技术不如自己的找工作都很快,而自己去找总是找不到满意的,做面试题的时候经常做不好。找到的工作都是技术要求很低的,无法通过工作来获得技术经验。

  • Winson   2013/05/26

    那就尝试去巨头公司,谷歌之类的,不是有种说法“所有面试官都觉得OK的面试员不能要,而只有少数面试官认为可以的才要”,有道理的

  • envy   2013/05/26

    本人大三了,刚去参加了个应聘,站了两个多小时,才面试了两家公司。个人感觉没有LZ这么有能力。面试回答的也不好。看完LZ的后,发觉,自己欠缺的东西实在太多。譬如LZ看过的书,我都几乎没看过。所以,LZ可能真是时运不济吧。度过了这个过渡期,LZ会好起来的。

  • Han Li   2013/05/26

    找到合适的才是最好的,挫败沉淀后会让好的留下来,客观障碍越是存在,才越要振奋精神,急不来,加油~

  • 爱白天睡觉   2013/05/26

    世上不存在垃圾,只存在没放对地方的资源。

    据我所知,绝大部分程序员(除了刚毕业的),工作经验的价值几乎都体现在对专业领域的熟悉和理解上。
    编程能力只是考核新人的的重要因素。。

    只靠编码能力出众,想从刚毕业的学院派高手或者刚工作几年但是专注特定领域的新秀手里抢职位,是很困难的。因为绝大多数项目对编码的要求是够用,便宜。新人们抢着干,所以要不上价钱。

    软件项目只要能卖出去,多烂的编码都能捞回本钱。。而老程序员的价值,就是靠经验带领团队,不要用错误的开发模型,开发工具,开发方案,开发人员,去做那些错误的失败项目。 这会给东家省大笔的钱。而不是拿1.5个人的薪水干两个人编码的活。

    lz面试里如果多表达专业领域的积累,加上编程能力锦上添花,一定可以的。

  • 我感肯定这个人美国人肯定读过王晓波,并甘当他的走狗

  • Rande_   2013/05/26

    同感,面试官曾经告诉过自己:对自己做过的产品不自豪 && 不善于在面试中表现自己~

  • 深刻奶奶   2013/05/26

    老板们招揽一个5年经验的人进公司必然不是让你做程序猿啊兄弟!
    他需要你带团队马上出价值,你要么是业务顾问类型的能挑售前售后,要么是带团队的实施经理。他们没有时间没有耐心给你5年经验的薪水干着毕业生凑合着也能干的活。
    不是你垃圾,而是在中国程序猿的生存空间扭曲了。
    建议尝试转管理或者顾问吧。

  • watertonylzc   2013/05/27

    现在也许需要的更多的是码农,也许是应聘方向不对

  • fan   2013/05/28

    文中提到没能答出时间复杂度的问题,这个不应该的啊

  • Case   2013/05/28

    "尽管如此,我还是在编写一个要求判断是否序列A是序列B的子集并返布尔值的函数时出现了失误。当被问及我刚编写的函数的的复杂度时我还是记不起来了"
    子集这个是nlogn吧,估计是面试没认真准备,面试不认真准备,技术面是挺容易挂的

  • 路人甲   2013/05/28

    要从对方的角度考虑问题啊~~对方是否招你,主要是由对方对你的判断决定的~~~

  • alex   2013/05/31

    根本就不是这样子的,楼主的遭遇只能说明市场不需要,有些公司招人说要你怎么怎么牛逼,等你进去了也就是个打杂的,还有些公司毛的根本就不要人,只是一直挂着那个招聘的看能不能碰到那种不要钱又能做事的。

  • 。。。看了这个文章感觉就是 。我就是个渣渣。太菜了

  • 傻逼   2013/06/01

    程序员就是苦逼

  • nullpointer   2013/06/03

    感觉没那么垃圾啊,也没看出来到底哪里垃圾,文章后来像没写完似的,作者也就发泄一下吧

  • jeros   2013/06/03

    好吧,垃圾都算不上

  • jude   2013/06/03

    感觉作者是在自黑,或者黑这一类 喜欢函数式编程的程序员

  • 我从来没有成功过,甚至也没有做过什么让自己值得骄傲的事儿。我只是尽我所能,即使整个世界都觉得我不够好。

  • qqq   2014/03/26

    "如果仅从我的阅读列表来判断,你可能认为我是科班出身,但实际上,我只是喜欢编程,并且想尽我所能来掌握更多的知识。",大家可能忽略了这一点,个人在工作中,遇到的非科班的水平确实不如科班的,我还看到一个非科班的写了十年C++的还不会用volatile。当然天才除外。

  • winho   2014/03/27

    那我就是更垃圾了,差不多20次面试,一个offer都没有,应届生……

    • 不疯魔不成活 程序员 2015/10/20

      我当年毕业也是,连续两周包括,平均一天两个到三天面试,最后过了一个,虽然中间有一个过了,但是给的待遇太离谱了,所以不算吧。

  • microaple   2014/05/29

    知识不扎实
    对自己评价比实际高 遇到失败容易沮丧失望 没有自信的恶性循环

  • iqlowest   2014/11/28

    我觉得作者有夸大之嫌。那个面试的题目说的就是判断子序列吧,kmp难道他不知道?就算不知道一个一个比较,两层循环也不是n方而是mn啊。这都是基础中的基础啊!我也面过不少人了,这样的人我肯定不会考虑的,基础太不扎实了。代码优化是很重要的方面,作者看了算法书还是这个档次,只能说明他看书都是囫囵吞枣而已。美国这边的公司一般每年都会报销一定的钱在买书上,我就为了不浪费每次都买几本书,虽然都没看过哈哈。我觉得作者是不是也是这样,即使看也没那么认真。而且我很少见到会先给自己放两个月假再找工作的,一般都是直接找工作然后找到了再晚一点入职这期间玩的,不知道作者怎么想呢,准备找工作刷题一个月太紧了吧。总而言之,现行面试制度确有不合理之处,比如过分强调算法,程式固化,但是作者的水平确实不行,如果是我也不可能通过他。

  • sunkay   2014/11/29

    评论很精彩,但大家忽略了一点:原文是英文

  • qqs   2014/11/30

    看了楼主的经历 我对我自己跳槽的计划得从新考虑下了

  • 看了这文章,我预感到我明年的跳槽计划要泡汤了。。。
    ORZ...

  • jackhus   2014/12/01

    your are very good,believe yourself,go for it

  • linsq   2014/12/01

    有人说:技术是这个世界上最没有技术的技术了。在生活工作中,情商比智商重要,但情商远比智商难以提高,所以交流很重要。

  • fred   2014/12/02

    做为程序员,都不做需求分析吗,lz是转的国外的帖子,你们一起又分析又提建议,这和lz有毛关系

  • Vincent++ 游戏开发 2015/10/20

    这。。。

  • 一篇心灵毒药

  • 看完我也思考一下我的人生。

跳到底部
返回顶部