写了 35 年代码的老程序员的最大遗憾

大约不到20年前,我处在人生十字路口上。我的第二家公司当时已经花了5年时间为出版行业打造专业图表制作软件,不过在那互联网即将大热的年代,出版商们已经逐渐向互联网领域转移,我们的业务渐渐枯竭。那时候我已经是一个有 13 年编程工作经验,而且同时有 9 年公司运营经验的综合性人才了。

我不想再同时又干技术又干管理了。我的第一家公司(1985-1987年)的主要业务是打造一款电子表格程序,并有自动发布的功能。当时我一人主导了整个公司的多项事务,与媒体打交道的是我,面见投资人的是我,处理日常商务杂事的还是我,与此同时我还是公司的3个程序员之一并且兼任 UI 设计师。1987 年,当我们公司的产品成功发布后,我也终于积劳成疾住进了医院。这件事情让我明白,既要做软件公司管理人又要做程序员,这不是一个正常人能承受的。

所以在1994年,当我再一次面临“管理者还是程序员”的选择的时候,我选择了程序员。因为我觉得程序员的工作比较单纯。现如今20年过去了,尽管在此期间我参与开发了很多不错的项目,不过我也终于认清了当年我的选择是多么的错误。尽管在当年,“CTO/CIO/副总裁级工程师”这样的技术管理路线还是很新的概念,但是在今天看来,这条道路才是正确之选。

1995年,我在湾区工作了大约一年。其中下半年我为苹果公司工作(伯乐在线补充:那会乔布斯还在 NeXT)。苹果那时候看上去就快要撑不住了,所以我就离开了苹果回到了德克萨斯。因为我不想眼看着我工作的公司垮掉。现在想来这真是个天大的错误。

后来,乔布斯回归,苹果重回正轨,不仅如此,.COM时代也浩荡沓来。作为一个经验丰富,训练有素的技术领袖,我对产品需求的理解是无与伦比的(我们当时发布了 9 款主要产品,都是直接针对主盘,并且不需要热补,总之在当时这是很难做到的),我只能说我可以想象我在那个时代原本是多么的炙手可热。一旦有人具备了这样的素质,在职业道路上不断攀升根本不是问题。

我妹妹在30年前也是以一个程序员,不过她很快在一年之内跳到了管理层并且在大约15年之后成为了一家大公司的副总裁。还有一家我工作过几年的旅游公司的母公司,他们的CEO大约在15年前也做过程序员。当然这些管理层的工作也并不能算得上轻松愉快,但是其工作报酬却(比程序员来说)要好太多了。我妹妹的薪酬大约是我的10倍。

这么多年来,我认识到作为一个程序员在能力上的局限性有多大。不管他们在专业方面多么出色,但是对于创新改变,或者把坏事变好这些方面的能力却很有限。我当年就是没有意识到做一个程序员所面对的这种局限性(甚至说架构师也是如此);在程序员这个层面上,你没有权利去改变现有的事物,因为你只是一个执行者。同样,你也不会参与到财务、IPO活动,以及其他一些重要事务,作为一个程序员,你就乐于去打造酷酷的东西就好了。

有大约5年的时间,我作为员工或者顾问为某些公司工作,这是我职业生涯最糟糕的阶段,我所做的事情都得参照一些糟糕的,愚蠢的,彻底白痴的技术管理的指示。在这篇文章里根本就列举不完这些愚蠢的事情。

比如作为一家银行的技术部门副总裁,他可以根本不懂技术,但还是有资格做技术方面的决定。同样在银行做CIO的人宁可相信供应商也不会相信他手下员工。当然,我们知道CIO拿了供应商的回扣,所以我们才必须买那些没用的东西,然后他还会不停地写文章证明那些没用的东西对我们是如何的好。尽管我们根本就用不上。有一次我离开公司以后CIO也被炒了鱿鱼,然后他离开了公司并立即在另外一家公司找到了一个类似的CIO的职位。

我做过的最糟糕的一个工作,其实一开始我是很看好的。一家后创业公司在其所在的领域有一个很好的契机。这家公司和其主要竞争对手(但是契机点不同)都想扩大市场,而且市场也确实在逐渐繁荣。我是作为公司的第二个程序员加盟的。先于我加入的程序员以及经理当时的任务是打造一个全新网上商店系统,因为旧系统太慢也太不灵活,完全无法适应更大的市场需求。这个公司当时没有技术领头人,CEO和其他两个创始人也没有任何的技术经验和知识。另一个程序员不停地说后端的代码如何如何好,然后经理也很信任他。我构建了一个前端模块,做了几个demo,并每天往代码库里更新。正当我觉得我写的前端代码已经可以和后端代码整合的时候,我突然发现,另一个程序员的代码库10个月以来就没有一次check
in——一次都没有。我把这件事情告诉了经理,可经理却说:”他(另一个程序员)只有在一切都完美了以后才会check in代码。“并且除了我以外,没人觉得这种做法很愚蠢。此后,我花了两个月的时间,试图动员公司的创始人招募一些真正能做事情的人(其实我还是认识几个这样的人的),但是他们虽然承认之前在招人方面有失误,但是却害怕做出人事变动。最后我放弃了,离开了公司。

一年多以后,原先的两个人(另一个程序员和经理)什么都没做出来,双双被解雇。然后公司创始人又从咨询公司找了些人来,但还是什么都没有做出来。这个时候,所有的商机都被耽误了。竞争对手那边呢?他们已经成为了十亿美元级别的大公司,我经常会在电视商业广告上看到这家公司的名字。我每次看到这些广告的时候就想拿我的鞋子砸电视。我们其实就差一个在线商店和一个现实中的技术领袖。如果我当时的身份不是一个程序员而是一个技术负责人的话,那么现在大红大紫的没准就是我们了。很遗憾我只是个程序员。

类似的例子我可以一直列举下去,但是关键问题是:如果想要对技术人员的工作有话语权,你就必须同时有能力,有权利,还要有机会才行。一旦你做到了这些,并且你还找到了合理的成长模式,那么只有天空才是你的极限了。

1987年,我在电视节目《Computer Chronicles》中为我们的产品Trapeze做推广的时候,另一个参与节目的家伙叫 Mike Slade,他是Excel的产品经理。当时还很幼稚的我想,这家伙不过是不知道哪里跑来的一个搞市场的小角色而已(幼稚的时候人还真是很蠢呢)。后来呢,这家伙创立了一系列的公司,包括ESPN,他在苹果公司担任了各种领导角色,是乔布斯的至交好友,并且成立了自己的风投公司。

今天,我还是一个程序员。所以说现在谁是小角色呢?我怀疑我是不是有一天真的能退休。幸好我还是比较擅长做程序员的(我现在的工作是我以前的一个经理给我的,他有一个需求而且知道我能做这件事情),但是到目前为止,我所能做的也就只能是一个程序员。

我做程序员有大约35年了,其实完成工作的感觉还是很有意思的,而且这么多年我也确实做了不少出色的东西。但是我也感觉到我对当年没有去接受成为一个管理者的挑战产生了悔意。在某种程度上,程序员确实是一个单纯的选择。考虑到我经历了整个互联网(Dotcom)时代,也经经历了乔布斯回归苹果的事件,如果我还能有成为技术领袖的经验,那么我几乎可以无所不能。

所以说,是的,我对我没有把握住(成为管理者)的机会感到后悔,谁知道如果我当时把握住了现在会变成什么样。不过有失也有得,我因此得以享受书写代码的乐趣,以及那些为了解决为题而纠结烧脑的乐趣。

曾几何时,我站在人生的双岔口,然后选择了简单的那条道路。也许现在,我明白我为什么做出了那样的选择。

时间: 2024-10-11 02:43:52

写了 35 年代码的老程序员的最大遗憾的相关文章

转载 写了 35 年代码的老程序员的最大遗憾

转载:写了 35 年代码的老程序员的最大遗憾 大约不到20年前,我处在人生十字路口上.我的第二家公司当时已经花了5年时间为出版行业打造专业图表制作软件,不过在那互联网即将大热的年代,出版商们已经逐渐向互联网领域转移,我们的业务渐渐枯竭.那时候我已经是一个有 13 年编程工作经验,而且同时有 9 年公司运营经验的综合性人才了. 我不想再同时又干技术又干管理了.我的第一家公司(1985-1987年)的主要业务是打造一款电子表格程序,并有自动发布的功能.当时我一人主导了整个公司的多项事务,与媒体打交道

老程序员应该记住的 5 件事

如果你甘于现状,并且已经在计划着怎么用退休金了,那么你不是这个帖子的主角.当然还是要恭喜你,已经快熬出头了.但是,如果你同我一样,尽管发现自己在变老,但却依然无法抵挡编码和构建东西的欲望,那么请继续往下看.我曾是一个系统软件工程师,但在我快40岁的时候,我被创业撞了一下腰.我认为创建自己的公司是一件很酷的事情.我建立了风险投资,在一些非常小的饥饿创业公司得到了一些花哨的头衔.我很自信我会成为一个好的CEO,一个不算坏的管理者,而且即便我不再编码,我也可以聘请一些优秀的程序员和管理人员——以求高品

老程序员的下场(转)

长期从事编程活动的程序员都期望在50多岁时能爬到一个足够高的职位,或者能顺利的退休. 但我在这里讨论的可能是一个你还没有想过的问题:如果到那时你失业了呢? 50多岁时你的职业仕途会成为一个问题.如果你有很好的技术,有人雇你,你会有一个很高的职衔,或你是一个专家,或有很好的人际关系,你都有可能找到一个新的职务. 否则,你会从衣食无忧沦落为无家可归.这是真的.我55岁,我的简历会让你感觉非常优秀,10年前我能挣到多达100万美元.现在我是一个流浪汉.我身体不是很好,没有医险,没有牙医.能找到的工作只

老程序员应该记住的5件事

英文原文:Five Things Old Programmers Should Remember 如果你甘于现状,并且已经在计划着怎么用退休金了,那么你不是这个帖子的主角.当然还是要恭喜你,已经快熬出头了.但是,如果你同我一样,尽管发现自己在变老,但却依然无法抵挡编码和构建东西的欲望,那么请继续往下看. 我曾是一个系统软件工程师,但在我快 40 岁的时候,我被创业撞了一下腰.我认为创建自己的公司是一件很酷的事情.我建立了风险投资,在一些非常小的饥饿创业公司得到了一些花哨的头衔.我很自信我会成为一

一个老程序员的回忆录--近几年中国软件的发展【转】

有一次出差途中,幸遇一位程序员.初观其貌,约30有余,姑且称其为“老”程序员.这位老兄初看不善言辞,但同他侃起他软件开发的经历时,其人滔滔不绝.我虽非干这个行当的,但据我的社会经验他绝不是在夸夸其谈,借机吹嘘自己.所以照其原话一字不差,摘录下来,供有兴趣的人们读一读解闷:     “从1989年进入大学开始,到而今攻读博士学位已经有12年有余.虽然我的专业一直都是软件,但并非一进入这个专业便可以算作从事了这个专业.假如认为大学期间幼稚有余,从硕士真正算是进入了软件开发领域,至今也有9年之多.然而

20年的老程序员对新入行的朋友的一些建议

从事编程这一行也已经20年了,到今天为止,有关编程方面的知识我也写了六七门课程了,教授课程的时间也已超过了1000小时,下面我所说的全部是我多年来的实践的经验之谈. 编程真的不是一件容易的事. 不管你多喜欢或是多会编程,在学习和解决问题上总会碰到障碍.工作的时间越久就越能明白这个道理.不过这倒是一个让人进步的机会,因为你要一直不断的学习才能很好的解决你面前的难题.如果你已不有了进取心,那么当遇到难道无法解决时你就会想要放弃. 编程也是最让人沮丧的事情 正常的编程过程都是这样的:尝试.失败.学习.

老程序员的忠告,觉得很真实,就转了

走过的路,回忆起来是那么曲折,把自己的一些心得体会分享给程序员兄弟姐妹们,虽然时代在变化,但是很可能你也会走我已经做过的10年的路程,有些心得体会你可以借鉴一下,觉得说得有道理的你就接纳,觉得说得没道理的,你就抛弃,以下是我发自内心的,给大家的忠告,特别是针对那些小弟弟妹妹们. 01. 自己的户口档案.养老保险.医疗保险.住房公积金一定要保管好.   由于程序员行业每年跳槽一次,我不隐瞒大家,我至少换过5个以上的单位,这期间跳来跳去,甚至是城市都换过3个.还好户口没丢掉,其他都已经是乱了,好几个

80. 投奔怒海——一个Domino老程序员眼里的Java开发

这是一个以键盘鼠标为谋生工具已十多年的人初次进行专门的Java开发的体验和感受,对于Java程序员,这些也许早就习以为常,那就把这当成从一个来自不同世界的新人眼里看看他们自己的工作:对于我的Domino同行,这些体验或许将来有更多共鸣的可能. 在加入到这个Java产品开发团队之前,我的Java开发经验如下:十几年前跟着一本Java入门书做练习写的几个Applet,Domino项目开发中写的几个读写数据库和外部邮件的代理,XPages开发中的少量Java Beans和一个流程库.除此之外就只剩下对

老程序员:带校招生一天被问几十回,基本语法都不会,可怕!

记得学生时代的时候,老师经常跟我们说:"同学们,不懂的就要问,别一个人鼓弄!"那时候我们都积极的向老师提问.而到了入职上班后,自己带新人时候才明白这有多烦,特别是那种自己不肯动脑筋先过一道再来问的新人,那简直就能够被烦死! 最近就有一名程序员网友在网上吐槽自己手下的一个新人,代码功底一点都没有,数据库又一点都不会,让去学一下还不愿意,一个基本的语法都不会,让自己百度还不乐意,硬要问,本来自己事也多,还要处理他的问题,简直要累晕! 该程序员的一番话简直说道了很多老程序员的心坎里,很多老员