我是一个垃圾程序员

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

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

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

时间: 2024-12-02 04:47:36

我是一个垃圾程序员的相关文章

我是一个混蛋程序员

我最近收到了这封来自Artsicle公司创始人的邮件,我大一时整个夏天都在这家创业公司里实习. 来自:Scott Carleton 主题:刚刚重构了你一年前写的 find_art.js 脚本 从某些方面上看,我心里想:你是个相当混蛋的程序员. 但从另一方面上讲,真扯蛋,这个脚本在过去的20个月里完美的运行,根本不需要我去碰它.:) 本文的作者: Dan Shipper Scott说的一点没错:我是个混蛋程序员.我不认真的注释我的代码.有时,我会违反DRY编程原则.我不喜欢使用奇妙的三重操作符表达

我的程序员之路:一个女程序员的奋斗经历

因为有人在酷壳里评论里说我给一个女程序员的建议不靠谱,我不服,因为我的工作经历中的一些女程序员都很不错,比那些男程序员都强,所以,我在新浪微博和twitter上征集女程序员的故事和想法,这两天来,我收到了好几封邮件,让我很感动.其中,有一个故事让我回味很久,在脑海里挥之不去,可能是因为她的经历和我很相似,她的想法和我很有共鸣. 本来,我想通过收到的这些故事然后编辑成一篇关于女程序员的文章,但是我觉得这个故事已经足够好了,任何的编辑都是对这个故事的不尊重,所以,我原封不动,一字不改地把这个故事转到

再谈“我是怎么招聘程序员的”(上)

原文链接:http://coolshell.cn/articles/4506.html 我以前写过一篇"我是怎么招聘程序员的"的文章(在CSDN那里有很多人进行了回复).今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因: 近半年来我在进行了大量的招聘工作,对面试有一些新的体会. 酷壳最近发布了几篇趣味面试题(面试题一,面试题二,面试题三),从回复中让我有一些思考. 我有一个同事最近面试了一家公司,他和我分享了一个博士专家对他的面试,也让我思考了一些. 在豆瓣上看到&quo

【转帖】我是怎么招聘程序员的

 我是怎么招聘程序员的 收藏 此文于2009-12-18被推荐到CSDN首页此文于2009-12-21被推荐到CSDN首页如何被推荐? 原文:http://coolshell.cn/?p=1870(酷壳) 很早以前就想写一篇和面试相关的文章了,今天在网络上看到一篇关于如何去面试程序员的英文文章,发现其中有很多和我共鸣的东西,所以仿照其标题通过自己的经历写下了这篇文章. 工作这么多年来,即被面试过,也面试过他人,对于程序员的面试,经历过很不错的面试,很专业的面试,也经历过一些BT和令人不爽的面试,

一个平庸程序员的自白

Jacob Kaplan-Moss 是著名 Python 框架Django 的 Co-Creater 和核心开发者,在 Heroku 担任安全部门的 Director, 他常年参加 Python 社区的年度聚会 PyCon,并经常上台演讲.在这次 PyCon 2015 上,他声称自己顶多只是一个平庸的程序员,幻灯片上也写着: "Hi, I'm Jacob, and I'm a mediocre programmer." 这次演讲非常精彩,视频可以在 Youtube 上看到(如果不想看视

再谈“我是怎么招聘程序员的”(下)

原文链接:http://coolshell.cn/articles/4490.html <<<再谈"我是怎么招聘程序员的"(上) 在上篇中,我们说到了一些认识人的方法(操作,知识,经验,能力),还有一些面试的方法(算法题,实际生产活动中的挑战),下面我们来说说,面试的风格,还有一些点评. 把应聘者当成你的同事 有些公司的面试官,在面试过程中问你一个算法题,然后等着你解答了,如果你给出一个答案,然后就会问你有没有更好的答案,如果你给出了正确的答案,他们就会问你一个更难的

一个女程序员的故事

        从哪里说起呢,我的程序员之路.有些话只是自己心里想的很明白,还从没说过.希望你有耐心看完,因为我的故事不精彩,也算不上奋斗史.我的文笔和叙事能力也很差.        高中报志愿的时候坚定的报了计算机技术及应用,当时对计算机的认识只是机房里的苹果机,和老师教的用basic 输出一个正方形之类的. 我当时觉得我对计算机一无所知,我想了解他,就选择了这个专业,当然当时程序员的收入也是可观的. :)        大学四年下来,我的成绩不好,基础也不好,没拿过奖学金.大学的课程很多不喜

程序员之路——一个老程序员对刚上大学的学弟学妹的忠告

始终认为,对一个初学者来说,IT界的技术风潮是不可追赶. 我时常看见自己的DDMM们把课本扔了,去买些价格不菲的诸如C#, VB.Net 这样的大部头,这让我感到非常痛心. 而许多搞不清指针是咋回事的BBS站友眉飞色舞的讨论C#里面可以不用指针等等则让我觉得好笑. C#就象当年的ASP 一样,"忽如一夜春风来,千树万树梨花开",结果许多学校的信息学院成了"Web 学院". 96, 97级的不少大学生都去做Web了.当然我没有任何歧视某一行业的意识. 我只是觉得如果他

有了自己多年开发的企业管理通用平台功能很强大.一个穷程序员怎么才能推广,大家说说看?

问题描述 平台是绝大部分的代码自己完成,是多层架构的.具备FORM和WEB两种模式.可以适应绝大部分的企业业务生产流程. 解决方案 解决方案二:穷程序员是什么概念呢?自己有产品的只有两种方式:一个是自己卖:一个是找代理卖.目的只有一个,把产品卖出去.自己要是能销售的话,可以考虑自己跑客户推产品.没有资金且没有销售能力的话,可以考虑拉赞助,或者找合作伙伴!解决方案三:你一个穷程序员不依托公司怎么开发出来的?如果是在公司完成的,那你对其没有知识产权.解决方案四:我想说,不是任何人都可以开发crm软件