一名 40 岁“老”程序员对职业生涯的思考

我是一名程序员,几个月前刚过完四十岁生日。某个星期六的早晨,我参加了一个 React Native 技术交流会,演讲者正在竭力说服我们为什么它会成为移动开发领域真正的下一个大事件。但对我来说,它有点像十五年前的 jsp ,将所有的逻辑都放在演示代码里面。但我“老”了,我认为这是因为自己还没有完全理解它。


演讲者展示完 ppt 后,现场进行编码,还展示了大约半打我没听说过的配套工具,这些都让我感到有点沮丧。


当然,我并不是真的惊讶。在过去20年里,我也掌握了一些比较流行的技术,并享受驾驭它们的乐趣。新的东西总能给编程带来一丝激动的体验,并且能让事情变得更容易、更快和更清楚。但是在这个特别的早晨,在40岁的这个门槛上,我不得不承认我感觉有些落伍。我知道如果想跟上节奏,我得继续付出,抛弃一些已经充分吸收的知识,吸收一些新的知识,为下一次旅程做准备。


我在想,我的编程生涯不像其他的专业人士,医生到了40岁不用担心他对血管系统的知识会蒸发,同样的,律师、水管工、会计、英语老师,也是如此。他们积累的知识是相对稳定的,并随着年龄会给予他们相应的尊重和补偿。但是在编程领域,20年的经验,似乎并没有赋予同样的优势。




两个概念


当然,我们的行业也不是那么糟糕 —— 程序员需要爱上很多东西 —— 有趣的是,无休止的跟进,好像是我们这个领域或多或少独一无二的特点。编程生涯是真的如此不同吗?如果是,为什么?对我们的事业轨迹来说又意味着什么?我想从以下两个观点来尝试回答这些问题。

第一个是知识衰退。我们所知道的一切,不仅仅是编程,都有一个有效期,过了这个期限将不再有用。我16岁学会了开车,到现在依然用的很好,这种技能可以认为有一个相对较长的半衰期 。医生的知识会越来越渊博,是因为他学习的每一件事情都是基于他以前的知识。而在编程领域,无论好还是坏,我认为:


程序员所积累的编程知识在十年后将有一半没用。


这可能有些偏激……但起码对我来说,似乎是正确的。如果我在这个期限中不学任何其他的东西,我敢打赌,只有大约一半的知识我可以在2026年继续使用(比如长期活着的 SQL ),另一半可能都是没用的(React Native,也许?) 。当然,我会不断获得新的知识来取代要死掉的那些东西,但这足够吗? 2026年我会比现在知道更多(有用的)知识吗?


这也就是带来了第二个概念,知识积累速度。在所有领域,必须满足一定的知识门槛才能获得“认证”(或至少可聘用),职业生涯的早期通常都是在努力获取知识。然而,在编程领域,由于知识的快速衰减,似乎我们从来没有真正度过“学生时期”,我们必须永远一直学习。


三个阶段


如果去记录程序员的知识衰退和积累速度,我认为可能会是这样:


?wx_fmt=png


在职业生涯的开始,可以称之为热切的学徒阶段,积累知识比较容易。一切都是新的,每个经验都是获得更多知识的工具。而且,由于年轻,我们不会有太多的义务,所以可能不介意花几个晚上和周末拿起新的语言和框架。重要的是,雇主对我们的期望值也比较低,我们可以在工作期间抠出一点时间来填补知识。这是一个有趣的阶段,连自己都没意识到自己有多坚持。


然后,我们不再是新手,成为了自给自足的开发者。我们在学习中的投资已经得到回报,所知道的一切全部有用。在这个充满知识的阶段,我们开始赢得客户、同行和管理者的尊重,获得头衔、薪水和机会。虽然我们当时不一定看得出来,但这也是一个重要的转折点。


两件事情发生了。首先,“高级”的晋升不仅仅是金钱,而是更多的期待。雇主需要他们的“明星程序员”成为领导者 - 帮助初级开发人员,审查代码,执行访谈,参加更多会议,帮助他们维护、构建复杂的旧版软件。这一切都很合理,但它巧妙地牺牲了我们的知识积累速度,我们不再有时间去读一些科技博客、文章。第二,这时候,我们首次体会到(或至少认识到)一点点知识的朽烂,早期学到的一些东西开始过时了。


随后,我们进入第三个,也是最后一个阶段,衰落和流失。是的,我们是知识渊博和富有成就的,但我们也明白,事实上知道的已经比最初阶段更少(有用的)东西。我们可能没有时间积累足够的新知识来填补,这是令人沮丧的。我认为这就是为什么,在这时候,许多人开始转向 - 管理、销售、测试或农业(我的梦想)。我们意识到需要再次努力来保持我们的水平和熟练度 - 不然的话,我们的工作会在5年后比现在更糟。

两个方向


我正处于第三阶段。我还是很喜欢学习,但我明白,不努力的话,我可能会一直保持在“专家”的平衡状态边缘。


首先,我尝试采取长远的观点。不要过度榨取自己,要尽可能的取得获得新经验的机会。我看到不少同事虽然获得了丰厚的薪酬,但职业很少有机会接触新兴事物。再过五年,他们会意识到他们的宝贵知识已经蒸发,薪酬与实际价值相去甚远。在某些情况下,我认为短期内赚更少的钱(有更好的雇主)会在长期的职业生涯中产生更多的钱(和稳定)。


第二,考虑到时间有限,我试图去学习那些耐用的知识。也就是说,把精力投入在那些有更长的衰减期的知识上,比如,算法逻辑、应用安全、性能优化和架构。


最后,很乐意听到大家的想法!

公众号内回复“1”带你进粉丝群!

0?wx_fmt=gif

一个40程序员的经历

01-06

有好几年没有上CSDN了,最近密码泄露事件,才让人想起久违的csdn,还好,通过注册邮箱顺利的找回了密码。rn十年前的时候,常在csdn潜水的老人们,现在还有人再来csdn吗?估计大部分都已经转行,当管理者或者当老板了吧,仍然做软件的可能只是极少数了。曾经以为自己已经脱离了IT,可以不用再去写代码了,不经意间却又无可奈何的继续干着老本行。今年,终于进入到40岁这个队伍里了。rn几年前曾计划过,买上几套房子,炒炒股票,工资要求不高,够用就行,小日子就会过得很不错了。但计划没有实现,市场环境又大幅变化,面临着孩子的教育问题,还有老人的赡养,使得生活压力陡然上升。rn我这个人,可以说是一个没有理想,没有目标,得过且过的人,不适合当管理者,如果脱离IT,也不知道自己能做什么,到现在这个年龄,也真的不想再去怎么努力改变什么,就是总有一个想法,如何平平淡淡的过日子。但是孩子马上就要上小学了,LP是一个很要强的 人,对孩子的培养极为重视,不惜花费重金进行培养。想过舒服的日子,那是没门了,继续努力吧。rn还是说说我的经历吧,也让各位小弟小妹来批判批判我这个失败的程序员。rn本人是非IT专业毕业的,90年代中期在一家新疆石油公司工作,但是非常喜欢软件开发,不听老上级的劝告,非要转行去搞软件,现在想来,是有点太冲动了,应该先在行业专业上好好干一段时间了,有了足够的行业背景再去做软件,不过放到当时,也没办法预测以后会如何发展,自己喜欢什么,就不管不顾的去做了。我到认为自己有一点优点,就是不浪费时间,在国企做软件的3年里,天天努力学习软件编程技术,熬夜是经常的事,也就是在这个时候遇到了LP。当时工作劲头真是很大,每天经常工作到夜里3点后,才离开办公室 ,早上还坚持跑步,10点左右就到办公室继续干活,差不多每天睡眠时间也就4-5个小时,对比现在,年轻真的是精力充沛,现在每天没有个8小时的睡眠,一天都精神不振。就是这样,为日后打下了很好的技术基础。rn99年吧,全国经济都很不景气的时候,石油行业也一样没有逃掉,油价跌倒了10美元/桶,全国只有大庆油田一家盈利,其他所有油田全部在亏损,而且是巨亏。那时很多人都不懂计算机,windos95的安全性也很差,我和几个同事,有时就以进入机关的一些电脑查看内部资料为乐,一次偷看了一个内部文件,说马富才当年来油田视察时,油田领导曾抱怨说,现在开采成本大,亏损太厉害,马就说了,那就把井关了,不生产不就行了,这都是文件上记录的原话,想想,如果所有井都关了,那油田12万职工都喝西北风啊,那年也真的是很惨,有一个钻井单位,一半以上的钻机没活干,员工都去修马路,挖沟,工资只发一部分,我们单位,有些新来的毕业生,每月只有400多元,在那年也开始了轰轰烈烈的减员增效活动,鼓励员工买断工龄。还是石油职工太傻,一辈子都是稳稳当当的,每月千把块钱的工资,小日子都过得很不错,也许是因为日过得太安稳,风险意识很差,第一次遇到石油经济不景气,短期之内收入少了点,大家的怨气就来了,再加上上级管理层的悲观论调,让很多人觉得石油企业要完蛋了,石油管理局当时给买断的补偿很诱惑人,根据工龄给补偿,有些人可以拿到10万或更多,这可是一笔巨款啊,在外部环境恶化,和巨款的诱惑之下,很多人直接去主动买断了,对于买断后的干什么的问题,很多人的想法也很简单,有些人去开店,有些人去另外找公司,还有些人,就是想在家玩,因为钱多啊,很多人都是没什么计划性的,没有什么技术,也没啥经商能力,想想在油田那个地方,市场就那么小,突然冒出成千上万的做生意的人,能会好到那里去。这群人数相当多,事过两年之后,石油行业又迅速的恢复元气,工资节节攀高之后,很多人可能感到受骗了,导致各地石油公司不断出现大量的静坐,示威活动,直到几年前依然没有平息rn当时我们单位的未来也有很多说法,有说要被整体甩向市场的,有说要被划到副业的,年轻稍大的都要提前退休,留下的岗位少,有些人要被淘汰掉,搞得人心惶惶的,那些日子,单位经常出去聚餐,就是为了讨论出路问题,感觉就是在吃散伙饭。还是年轻有优势,想想自己有了3年软件开发的功底,还用怕什么,一心就想离开企业去外地发展,最后直接辞职走人,去了一家事先联系好的在北京的软件公司,随后两年,单位陆陆续续走了几个人,不过大部分人都选择了留下。十多年后的今天来看,走的人,有些不错,有些却依然在不断的努力打拼,留下的人,随着油价的不断攀升,日子也在发生着翻天覆地的变化。rn待续....

㊣㊣话说程序员职业生涯㊣㊣

03-09

作者:IBM 软件集团大中华区总架构师 寇卫东rnrn有一些年轻的程序员向我咨询,将来的路应该怎么走?俗话说,条条大路通罗马。不同的路都能走向成功。到底选哪条路,取决于自己的兴趣。可能有程序员会问:如果还没找到自己的兴趣怎么办?我的建议是多尝试,努力做,这是职业生涯的必经之路。当你积累了一定的技术和经验之后,就会面临多种选择。选择哪条路,因人而异。rnrn如果对某一种或几种技术非常感兴趣,并且能够持续钻研,经过一定时期的积累,你可以逐渐成长为专家级程序员。专家级程序员对于所掌握的专业技术的熟练程度非一般程序员能及,各类常见编程问题在他们手中都能迎刃而解,可以说这类专家“越老越值钱”但是这类专家也有一定的风险性:随着经验的增加和年龄的增长,这些人的工资会越来越高,当公司改变技术路线而不再需要专家级程序员所掌握的专业技术时,或者想降低做事的成本,他们就可能面临失业或者另找工作的局面。rnrn资深培训专家也是个不错的发展方向。成为培训专家,不仅需要深厚的技术功底,同时还要具备优秀的沟通和表达能力,因为他们的主要工作不再是研发某种技术,而是传播技术知识。这条路很宽,有一些优秀的技术培训师除了担任本职工作,还会兼职到大学里讲课。虽然培训专家的技术可能达不到专家程序员的水平,但是工作内容相对更为丰富,接触的人也更多。rnrn成为公司的技术总监是很多程序员的梦想。这条路线是从初级程序员成长为高级程序员之后,以做项目为工作重点,进而发展成项目经理、开发经理,最终成为技术总监甚至公司副总裁。这些程序员走的是技术管理路线,从做项目开始,逐渐积累管理经验,然后成长为优秀的技术管理者。技术总监在公司甚至技术界的影响力非同一般,对于那些有志于成为公司领导层的程序员,是个很大的诱惑。但是权力大、管的人多,就意味着更大的压力,技术总监不仅要保持对新技术的敏感,还要抽出精力做管理。比起成为纯技术专家,这条路也许更为艰难。rnrn还有一些程序员职业发展的终点是总架构师、总设计师。这类程序员的兴趣,不是某种特定的技术,而是偏重对软件产品或者软件应用项目的设计。如果将软件项目开发团队比作一个乐队,那么程序员就相当于一名乐手(比如小提琴手、长笛手等),他们负责将自己的乐器演奏好;项目经理是乐队指挥,负责指挥和协调这个乐队的配合;架构师则相当于作曲家。从入门的架构师开始,逐渐成为资深架构师乃至总架构师。如同历史上伟大的作曲家,杰出的架构师能够在各种软件中谱写出旋律优美的“曲子”。rnrn另外一些程序员心怀创业的理想,等到自己有了一定的技术积累,再掌握一些市场需求以及管理方法,他们会开始创业之路。一旦成功,这类人的影响力会非常大,像Google和雅虎的创始人,都是技术创业的成功典范。但是这条路也是最艰辛的,有句话叫做“不当家不知柴米贵”不亲自创业的人也很难体会它的艰辛。创业涉及方方面面,稍有差池就会功亏一篑,投身创业的程序员并不少,但是真正能成功的少之又少。踏上这条路不仅需要过人的勇气和魄力,更需要坚韧不拔的毅力,以及深度的商业智慧,再加上市场机会,才能够赢到最后。rnrn很多程序员会走上技术支持路线,进而发展成为精通业务的技术和行业咨询专家。这类程序员会在成为高级程序员之后加入销售团队,直接面对客户,负责技术层面的问题。如果对某一行业(比如银行、电信)非常熟悉,久而久之,就成为精通这个行业技术的专家;如果对于某一类解决方案(比如ERP、CRM、SCM)非常擅长,就可以发展成为跨行业的技术专家。rnrn还有一部分程序员会成为IT专栏作家和自由职业者。这些人通常对写作比较感兴趣,文字表达能力也不错,他们会将自己从事技术工作的内容或心得写出来,然后发表文章赚取稿费。只要对技术足够精通,这类人是很受杂志欢迎的。在北美还有一种自由职业者叫做合同工,就是不定期的承接项目,在项目开始前签订协议,项目完成后结束合作。虽然这种职业目前在中国还不太多,但是其自由性对于很多程序员来讲,也非常有吸引力。rnrn上文提及的若干条路,程序员可以根据自己的兴趣进行选择,但是一般来说,无论走哪条路,都有一个前提条件:从初级程序员进阶为高级程序员。因为在这之前,你甚至没有选择的机会。从初级进阶到高级,通常需要2~5年的时间,因个人素质而异。大家都说,程序员要耐得住寂寞和枯燥,年轻的程序员更要克服浮躁的心态。在职业生涯的起步阶段,很多人总会摸不着头脑,这时一定要静下心来,多向资深程序员求教,慢慢熟悉技术、熟悉开发流程和行业。有时你会感觉掉进了一个知识海洋,身边全是陌生的事物,很难抓住。所以就更要四处探路,逐渐寻找到方向,在寻找中进步。rnrn成功进阶为高级程序员,也并不意味着前途一片光明。如果说从初级到高级需要的是学习,那么从高级到专家,需要的是不断地尝试和坚持。比起前一个阶段,这个过程更为漫长,通常需要5~8年。在这期间,因为有了之前的积累,并且已经取得一定的成就,人会更加自信,同时也会更加彷徨,有一个问题会时常盘旋在脑中:将来的路到底要怎么走?这时就可以利用自己所积累的资源,多做一些尝试,尝试不同角色、不同的项目,与不同的客户打交道,时间长了,自然会找到最适合自己的发展方向。rnrn总结起来,初级程序员和高级程序员时期,都属于职业生涯发展的第一阶段,我们可以称之为黄金时期。这阶段程序员的年龄在20~35岁之间,因为年轻,所以更善于学习,而且体力充沛,很多走过这个阶段的程序员有过通宵工作的经历。在这个时期,你有大把的时间学习提高,为将来的事业打下坚实的基础。而一旦超过了30岁,无论从体力还是精神上,都会有所改变,从30~40岁是转型时期。这时的程序员(很多人已经不再编程)已经明确了自己的发展方向,并且向着目标努力,让自己有所建树。40~60岁是专家时期,至此,一名优秀的程序员会彻底实现“破茧成蝶”的愿望,成长为专家。rnrn程序员的职业很精彩,同时也很艰苦。享受高工资,掌握最新的技术,有可能成为创业成功的富豪,甚至有机会改变人类的生活方式(例如互联网浏览器的开发、电子商务的应用、手机短信等)这就是别人眼中程序员的生活,也许正因此,每年都会有很多新人加入这个庞大的队伍,体验向往已久的精彩生活。但是大多数人却忽略了光鲜背后的艰辛,高工资的代价是工作强度高,学习新技术的代价是工作压力大,成为富豪的代价是心力交瘁,而若想改变人类的生活方式,那就要耐得住日复一日的枯燥和寂寞。酸甜苦辣都要自己品尝,程序员的发展道路有很多条,就看你怎么选。rn

程序员职业生涯到底有多长

04-26

周末的时候,闲来无事,看了些关于程序员吃得是青春饭,超过三四十岁就得转行等等话题,rn写了点东西发发,希望对大家有所帮助,其实说这些话的人只是凭口说说而已,我个人认为JAVArn程序员还是很有前途的!其实大部分职业都一样,有能力的自然会往高处走,没能力的自然就被淘rn汰.优胜劣汰的原则大家都知道,干别的行业三四十岁无所建树不也玩完吗?我做软件开发已经快rn七年,目前是开发团队的负责人,现在的职责是与客户采集需求,做需求分析,系统构架设计建模,做rn详细设计,编写核心代码(核心代码不多),解决团队中所有人员不能解决的技术问题(一个项目开发rn设计到软硬件编程,网络编程,数据库编程,算法分析等,项目还得分c/s和b/s两重模式,做为项目负rn责人得样样精通,每项都得比团队负责该项的人强),项目实施,验收.rn 我对致力与做程序员学生的给出一个忠告,非计算机特别是文科类因为没有学过操作系统,编译rn原理,数据结构,数据库,离散数学,软件设计等专业课程,逻辑思维也和理工科的不一样,开发语言rn理论积累从头做起显然很难,开始写代码可以,但是随着技术的积累必然会遇到瓶颈的,除非你很rn聪明否则最好不要入这行.!计算机相关专业数学等理工科毕竟经过四年的理论基础逻辑思维的熏rn陶,经过几个月的培训,基本上就可以上手开发了,rn 作为程序员,学习能力也是很重要的,如果在学第一门编程语言的时候不能在半个月内,不能写rn出象样的小程序,你不能入这行.rn 作为程序员,如果你不能承受巨大压力的情况下,你不能入这行,因为在程序开发的过程中很可rn能遇到你完全陌生的技术,甚至听都没听过,而你必须再短时间内了解它,并写出完美的商业代码.rn这个过程不能超过一两周,这期间会有很大的压力.rn 有的学生认为女生不适合做JAVA,适合做测试,那是大错特错,女生一样会比男生强,关键看rn自已是不是有兴趣去学!如果真的想在测试方面有发展,也要至少做一到两年程序员再转向测试rn会更有发展,试想一下连代码都没编过的人去做测试能有什么前途呢!rn 可能有的学生对JAVA培训学校不甚了解,不知道哪个培训学校比较好,本人经合自已在公司rn面试过参加过培训的学生,对比了几个比较出名的学校,也听了这几个学校的视频教程,也在网上rn看了一些评论,综合了一下,认为北京JAVA私塾是一个比较不错的学校,这个学校是对学生比较负rn责的,老师的实力也排在培训学校之首,其实老师的好坏从视频课程上就能听出来,这个学校要rn求所有入学的学生必须是大专以上学历,而且必须经过编程基础和逻辑思维的考试,能写一些小rn的程序才能允许报名,我也打听过,这个学校的考试是比较严格的,而且每期的学生在三十人左右!rn其次是尚学堂还算可以!尚学堂的马士兵的课程我也听过,还算可以,这个学校没有考试,但是要求rn学生必须是专科以上学历,每个班的人数在四十人左右!老师的实力可能相对于JAVA私塾要差一些!rn北京比较不错的,老师的实力比较好的应该是这两上学校了,松迪科技可以做为这两个学校之后的rn参考!其它的像什么达内,赛尔凯达,传知,青鸟,蓝点啥的,这几个学校普遍忽略了对学生编程rn思想的培养!基本上属于老师带着学生去做可以,但是学生自已去做,就会有很多问题,当然这其rn中有几个学校也是有考试,但是都是走个形式而已,学生毕业后很难达到独立去写模块,独立学习rn的能力,进入公司还是要适应一段时间!当然学生也能学到东西,但是不深,理解的深度还是不行,rn只是偏重于毕业找个两三千的工作,而不是注重学生在这个行业的长远发展!而从JAVA私塾的教学rn体系和考试的情况来看,注重的是学生知识与实践的结合,看学生是不是能在这行有好的发展,尚rn学堂注重的是项目的积累,讲得深度还是稍威欠缺一些!这只是本人的个人观点,最后建议各位学rn生到网上自已搜搜这几个学校,对比一下,看哪个适合自已!挑选学校的时候要看你能学到什么,rn能达到什么样的深度,能否胜任公司分给你的任务,而不是去看保不保证就业!保证就业的前提是rn你学到技术,拿出真正的实力才行!现在的公司招人是根据实力给薪水的!

没有更多推荐了,返回首页

私密
私密原因:
请选择设置私密原因
  • 广告
  • 抄袭
  • 版权
  • 政治
  • 色情
  • 无意义
  • 其他
其他原因:
120
出错啦
系统繁忙,请稍后再试