30 焦虑:程序员怎样才能越干越给力?
你好,我是臧萌。这两天看了半佛老师的一篇文章,有感而发。文章叫做《为何有的职业后期不给力》。
你没看过的话可以去看看,当然,你要是懒得看半佛的原文的话,也不影响我这节课。简单来说,半佛老师从职业什么时候开始给力这个角度,把职业划分为了前期职业和后期职业。
前期职业刚开始很给力,后面越来越不给力,比如工作多年后,竞争不过新人,薪资待遇无法持续提升等。后期职业则正好相反。半佛老师的观点我还是比较赞同的,但是也让程序员这个职业看上去前途堪忧。所以我有感而发,想来和你一块谈谈程序员这个职业的前途。
焦虑着,也就习惯了
如果我在二十出头的时候看到这篇文章,肯定会焦虑得不行。那时候的我,非常像是半佛老师文中那种,可以被公司用完就扔掉的零件。所以我那时候就一个理念:提高自己的性价比。简单来说就是努力工作,好好学习。
“程序员是吃青春饭”的这个观点,其实当时已经有了。所以焦虑感肯定还是有的。而且当时看不清自己如何才能站住脚,稳扎稳打地向前发展。
最近几年,反倒是没有那么焦虑了。
一部分原因是焦虑惯了,这份焦虑感,让自己持续要学东西,跟上技术的发展。一段时间没学习没成长的话,就会感觉心里不安。
就像我经常提的那句话一样:软件行业在快速发展,一个技术如果适应行业的发展,那么势必一直保持升级换代;而保持不动的技术,基本都是不适应行业发展了,慢慢地都会被淘汰。因为程序员见过太多潮起潮落,一直这样焦虑着,渐渐就养成了持续学习新技术、持续扩建自己技术领地的职业习惯。
另一部分原因是,自己在误打误撞中,也算是走出了一条适合自己的成长之路。我觉得我在这条路上的有些感悟,对大部分愿意走技术路线的人还是有帮助的,在这里我想借半佛老师的文章为契机,在这篇文章里和你分享一下。
其实我在专栏里,原本有一节叫《对不起,程序员这个职业可能无法混到退休》。但是考虑到内容连贯性等原因,这一节中的很多观点和内容被拆散到别的章节去了。那这节课,我们再多聊聊程序员这个职业。
前期职业 V.S. 后期职业 ?
半佛老师在文中,用前期职业和后期职业来给职业分类。前期职业的典型可以说就是程序员,后期职业的典型就是教师和医生。
职业类型是后期发展更好的决定性因素吗?
这里其实是有一点幸存者偏差的。其实仔细看看教师和医生,有多大的比例是在职业后期,成为了名师或者名医呢?
教师和医生可以一直做下去,这点对比程序员确实是优势,但是如果没有混出点名气来,待遇也不会提升太多,这么一直混下去有啥意思呢?
所以说,无论是程序员,还是教师和医生,想提升自己的待遇,肯定要提升自己的能力。这个过程必然是艰辛的,绝不是说选对了行业,就可以闭着眼睛随便怎么混都可以混出名堂来了。我们都在说,选择比努力更重要,但无论选择是什么,努力都是让一个人脱颖而出,提升自己职业发展上限的必要因素。
软件行业的特殊之处
借半佛老师的一个观点,软件行业是新行业,在爆发式发展中,缺人不缺钱。其实真就能力和产出而言,很多人是不值这个钱的,但是缺人,没办法。尤其是对于职业初期的人来说,多出几千块,其实就感觉挺多了。
程序员很多时候也确实要加班,工作强度确实很大。所以对于能力略逊一筹的人,只要肯吃苦耐劳,很多公司也愿意给到行业标准水平的薪资。比如说我自己,我就觉得我刚毕业那会儿不值什么钱,因为什么都不会。
种种因素,造成了程序员的起薪比较高。但是这也可能给程序员一种错觉,感觉自己就是值这么多钱。所以想当然地觉得,随着自己工作经验的增加,收入应该相应增长。但其实人才只会越来越多,程序员的精力会慢慢下降。所谓的工作经验,如果得不到市场的认可,自然无法获得更高的薪资。
更残酷的一点是,正如半佛老师所说(我附议),程序员用到的技术一直在更新换代,老师和医生在立住脚之后,可以不用持续在自己的专业技能上投入太多,也能混得下去,但是程序员却不行。
程序员这个职业更深层次的不同
那如果程序员可以保持自己的技术,并且跟得上发展呢?比如说,一个程序员现在可以用主流技术,熟练的写着CRUD的业务代码,n年后依然跟得上主流技术,依然可以熟练地写CRUD的业务代码。不得不说,即使在这样的情况下,程序员可能依旧很难跟得上行业主流的薪资水平。
为什么呢?很多人会说能力没涨,但是年龄涨了,精力慢慢不行了,自然不值那么多钱。当然这是一个原因,但是我觉得这不是主要原因。更主要的原因在于,软件行业需要程序员有创新的精神、有斗志、不安于现状。
比尔·盖茨是微软公司的创始人,可以说他用Windows+Office软件改变了世界一点不为过。这里我借用比尔·盖茨的一句话:微软离倒闭永远只有18个月。
你仔细思考一下这句话。很多人会觉得这句话是危言耸听,但是你纵观微软的发展历程,看看它经历过的那些低谷,这句话绝对是真实的写照。当然,微软最终没有倒闭,而且还发展得很好。有一点我想你肯定认同,那就是微软里绝对不是一群喜欢岁月静好,安于现状的人。
所以,公司也绝对不想攒一堆发展后劲不足、安于现状的员工。这是在给公司的发展埋雷。从这个角度,你是不是对为啥年龄大的程序员容易被淘汰这件事,有了新的认识呢?
当然,我并没有做过调研,去分析这些人被公司“优化”是什么原因。但是任何一个明智的软件公司管理者,都会淘汰后劲不足的人。简单来说,我相信很多公司都有或明或暗的规定,一线软件研发岗位,如果在某个年纪前无法升职到某个岗位,那么就必须淘汰。这是为了让公司保持活力的措施。
程序员的路怎么走?
在专栏中,我也尝试谈过我对职业分类的理解。当然这里只是谈论职业本身,并没有论高下的意思。也欢迎你在留言里说说你的想法。
不同类型的职业
首先是有些后缀为“员”的职业,比如售货员、收银员、操作员等等。这些工作的特点是技能要求少,而且技能本身不怎么需要更新。这些职业的工作成果,可以有非常明确的评判标准,工作内容也可以详细地用规定来约束。员工不需要去想怎么把工作做好,因为都已经规定好了。当然,这不是什么严格的分类,比如宇航员需要的专业知识、技能和素质,绝对比大部分职业要求都高。
然后是后缀为“师”的职业,比如教师、医师、律师、厨师以及我们软件工程师等等。这些职业的一大不同就是,产出成果的过程很复杂,影响工作的因素很多,无法规定标准的工作流程,产出的成果没有统一的衡量标准,所以这类人才是无法批量培养的。从业者需要积累大量实践经验,才能形成一套自己的工作方式。
就拿教师来说,如何培养学生,没有固定的套路;怎样才叫好学生,也没有统一的标准。这种类型的工作,就需要从业者发挥主观能动性,根据自己工作的经验,思考如何才能将工作做得更好。
最后是后缀为“家”的职业,比如科学家、教育家等。这些职业更偏向研究方向。做开创性的工作,工作成果的不确定性更大,对从业者的专业技能要求是无上限的。如果对别的职业来说,创新是加分项,在各种“家”这里,创新是起点。
程序员要怎么办?
回到我们的主题,程序员的路应该怎么走呢?我有两个建议:第一,技术要不停地学。第二,脑子要不停地思考。
技术这点我不再赘述了,技术一直在发展,不学的话,老的技术就被淘汰了。脑子思考什么呢?回到我反复强调的一点,那就是思考业务。思考自己所在的行业是在解决什么问题,问题是如何得到解决的。这是一个软件架构师必须锻炼的能力。无论我们有没有软件架构师的头衔,这都是我们不断进步所需要的养分。
回过头来再echo一下半佛老师的一个观点,吃下的资源越多,要替代你的成本就越大。对于程序员来说,什么是资源呢?就是日常工作、做的项目,解决的问题等等。工作中亟待解决的问题是最宝贵的资源。能够理解这些问题,解决这些问题,那么收获的经验就是自己成长的后劲儿。
有人吃了很多资源,确实是成长到了更高的水平,但有人却成长不够快。那么公司肯定更愿意把资源供给这些成长的更快的员工,期待他们可以助力公司发展的更好。
软件行业确实残酷,可能没有哪个行业里公司的危机感如此强烈。如果微软距离倒闭永远只有18个月,那么别的公司呢?如果公司本身都需要保持奋进才能生存,又如何养着一群期待岁月静好的程序员呢?
程序员不是一个能混的行业,混只能坑了自己。无论待遇如何,无论职位如何,问问自己:我今天学了点啥新东西吗?我今天悟到了点啥新道理了吗?
总结
根据我的实际体验,在软件行业中,一线程序员的高级人才还远没到饱和的程度。至少就现在的情况看,对标阿里P8左右的高级软件开发工程师,在市场上还是一人难求。在面对人才这个事情上,绝大部分公司都不差钱。所以我们需要担心的不是自己以后有没有地方呆,而是更应该注意如何才能让自己成长为人才。
其实只要有合适的候选人,很多时候公司更愿意雇用高级人才,一方面是出于人力成本的考虑,对公司来说,能力强的人投入产出比更高。另一方面,这些人才已经用自己的实力证明了自己的能力和成长的动力,公司可以更放心地向他们投放资源。
软件行业,真的不能混到退休。很多职业,即使是对于医生和老师这些职业,保持水准也是标配。一直保持水准做下去,并且提高自己则是高配,可以成为名师或者名医。但是对于程序员来说,提高自己才只是标配,超速地提高自己才是高配。长期来看,程序员的职业生涯,没有保持水准这个选项。
时间不等人,技术在更新。你要学会锻炼自己的工作能力,做好技术与业务问题之间的桥梁,用好公司给你的资源,成就自己的成长。

思考题
在程序员的从业之路上,你有焦虑过吗?你是如何应对焦虑的呢?你是如何定义软件工程师这个职业的呢?你对职业分类的理解是什么?
欢迎在评论区和我交流。也欢迎把这篇文章分享给你的朋友或者同事,一起交流一下。
- pyhhou 👍(8) 💬(1)
说的好,不能停止学习和思考。 拿自己来说,感觉持续学习只要能坚持就问题不大,但是持续思考就比较难。不知道是不是习惯的问题,或者说对一些事物的认识不够深,工作中遇到问题只会依赖之前的经验,很少有那种往深了去看问题的习惯,还有就是缺少找到问题实质的能力,以至于掌握的能力没有办法快速迁移,不能触类旁通。这样一来,思想的宽度就被限制住了 不能深入地去思考某一个问题,什么技术都去学一点,但又不精通,学到的东西不懂怎么去解决实质的问题,这大概就是我焦虑的原因,还请老师指教������
2020-07-25 - Eden Ma 👍(3) 💬(2)
我觉得买老师课的同学,大家多少有些焦虑,对职业生涯的迷茫,职场上得不顺利不愉快。
2020-07-26 - 小祺 👍(3) 💬(1)
程序员似乎不需要到后期,比如蚂蚁上市,30岁出头就财务自由,享受人生去了
2020-07-24 - Sdylan 👍(2) 💬(1)
每天都在焦虑,每天都会自问一下时间花在哪里了。写到啥了,情绪是否控制。一直焦虑一直走,怕啥呢。
2020-07-24 - 大胖子呀、 👍(2) 💬(1)
你怎么还偷看我老婆呢(狗头)
2020-07-24 - 李文彬 👍(1) 💬(2)
做的事情一直很杂,工作多年却没有精通某一项技术,每天都很焦虑,又想不好深入的方向,感觉马上就要被淘汰了……
2021-10-13 - 行与修 👍(1) 💬(1)
焦虑不可避免,与自己和解。实在焦虑的不行,回头再听听老臧的禅音,让自己平静下来^O^
2020-07-24 - 每天晒白牙 👍(1) 💬(4)
焦虑,不知道自己还能干几年,挺普通的一个程序员,甚至有点菜,想过在北京再干几年,看自己的造化,如果混的还行,没被淘汰,就继续干。如果有被淘汰的趋势,回老家转行干点别的,至于干啥,没想好
2020-07-24 - Mr.Tree 👍(0) 💬(1)
就好比当你被卷入浪潮之中时,你就想要拼命的向上游,不拼命就淹死在这浪潮之中吧,互联网的浪潮只会越来越猛;居安思危,当你有了危机意识,就会不断的学习,让自己保持竞争力,虽然20多岁的年纪,越活越焦虑,思考着职业生涯,思考着如何能获得财富,不管在哪一方面都想要有竞争力,而不是靠年轻,精力好,加班去内卷,非常抗拒无效的加班
2022-07-05 - 1043 👍(0) 💬(1)
想和臧萌老师讨论一下,程序员这个职业堪忧是不是在我国的状态呢?听《硅谷来信》的吴军老师对比过中国和美国的软件工程师的职业,说在美国的软件工程师的职业寿命是比医生和律师都高的,年迈以后特别是外科医生,如果做手术手会抖,没人会请手术刀都拿不稳的医生给自己做手术。而软件工程师如果喜欢技术,热爱写代码,确实可以写一辈子。但是在中国过了一定的年龄不转管理其生命周期就已经见底了…… 除了中国不重视软件产权,甚至到处随意使用盗版软件,甚至政府部门和程序员本身这个职业,特别是那些没有出息、没有不长进的程序员也在用盗版……这些是否是导致个人小团体根本不能独立开发,即使独立开发这些针对个人用户的小软件就有很大一部分人去盗版的状态了。最后导致创新动力不足。整个生态又演化的程序员、特别厉害的程序员只能就职于“大厂”,因为在只有在那里才能把代码产品化,产品服务化,才能让软件有些价值。 根据吴军老师他以的他自己专业角度和投资能力的角度去观看,我们中国如果重视版权,像金山和和用友这样体量的公司去和美国一样的体量的公司对标,会至少比现在的市值高出十倍。 根据这些问题看,导致软件工程师只能拼年龄,还是因为有人用盗版软件几乎没有人进来维权造成的吧?或是即使维权了,国家对相关的法律法规以及道德评判标准是相当轻了/低了…… 总体看我国的软件不值钱,程序员值得钱就只能是靠拼命,再之后拼不动了就只能歇菜了。整体归因是行业和职业价值大规模缩水造成的结果。这个前因之一是版权。请问臧萌老师还有其他的更严重的相关问题吗?
2022-05-12 - 记事本 👍(0) 💬(1)
如果每一天没有进步 就会焦虑。
2022-04-26 - 6点无痛早起学习的和尚 👍(0) 💬(1)
二次回看: 其实谈一下,自己目前遇到的一个焦虑:方法论看的越多而不落地越焦虑。 最喜欢看方法论的东西,不管是这门课,还是其他极客相关方法论的课,也看了很多,然而很多时候并不能把这些方法论去落地,只是一昧的纸上谈兵,就会觉得自己懂了很多,给别人讲各种方法论头头是道,但是自己却并没有把这些方法论落地实践,并没有把关注点聚焦到事的本身,就会发现自己的方向越来越偏(当然现在的阶段还是毕业 1 年多 2 个月,个人认为应该更聚焦到事上,而不是全部的方法论上)。
2021-08-25 - 源以南 👍(0) 💬(1)
一样的,这篇文章换做运维,设计师等行业同样适用。
2020-11-11 - Tom哥 👍(0) 💬(1)
好到老学到老
2020-09-29 - 小辉辉 👍(0) 💬(1)
焦虑一直都有,前几年特别明显,现在可能跟老师说的一样,已经焦虑习惯了。但还是觉得一天不学习就会落后很多,所以还是每天保持有计划的学习,然后收到正反馈才是重点,焦虑什么的等睡着了跟周公谈一谈
2020-07-29