从毕业到现在,写了五年代码了。

这五年里,我从一个什么都不懂的新手,变成了一个能独立完成项目的老程序员。技术上进步了不少,工资也涨了一些。但说实话,前几年我一直很迷茫,不知道自己的职业方向在哪里,不知道未来该往哪里走。

直到最近这一年,我才慢慢想明白了自己的职业规划。这篇文章是一篇记录,我想把这五年的思考和最终的选择写下来,既是给自己一个总结,也希望能给同样迷茫的程序员朋友一些参考。

如果你也是一个程序员,正在为职业发展而迷茫,希望这篇文章能给你一些启发。

前三年的迷茫

先说说前三年的迷茫吧。

刚毕业的时候,我对职业发展没有什么概念。那时候想的就是,找一份工作,好好写代码,多学技术,多涨工资。至于未来做什么、做到什么程度,从来没有认真想过。

第一年,我在一家小公司做前端开发。公司人不多,什么都要做,前端、后端、甚至运维,都要碰一点。那时候学了很多东西,但都不精。每天就是完成需求,改bug,上线,日子过得很快,但总觉得没什么成长。

第二年,我跳槽到了一家大一点的公司,做后端开发。这家公司技术栈比较成熟,有完善的开发流程和代码规范。在这里,我学到了很多规范的开发方法,技术也比以前扎实了不少。

但大公司有大公司的问题。分工很细,每个人只负责一小块,做的事情比较重复。我做了一年,感觉自己就是一个螺丝钉,每天做的事情都差不多,成长很慢。而且大公司人多,晋升竞争激烈,不知道什么时候才能出头。

第三年,我又跳槽了,去了一家创业公司。创业公司节奏快,事情多,能接触到产品的方方面面。在这里,我不仅写代码,还参与产品设计、技术选型、团队管理等。成长确实很快,但也很累,经常加班,而且创业公司不稳定,不知道什么时候就倒闭了。

那三年,我换了三份工作,每份工作都有收获,但也都有不满。我一直在寻找一份"完美"的工作,但找来找去,发现没有完美的工作,每份工作都有它的问题。

那时候我很迷茫,不知道自己到底想要什么,不知道未来该往哪里走。是继续写代码,还是转管理?是去大公司,还是去创业公司?是深耕技术,还是多方面发展?这些问题,我想了很久,都没有答案。

第四年的思考

到了第四年,我开始认真思考自己的职业规划。

促使我思考的原因有几个。一是年龄,毕业四年,快三十了,不能再像刚毕业那样随便跳槽了,要考虑长期的发展。二是身体,前几年加班太多,身体出了一些问题,颈椎不好,肠胃不好,不能再像以前那样拼命了。三是家庭,谈了女朋友,开始考虑结婚买房的事情,需要稳定的收入和发展。

这些原因,让我不得不认真思考自己的未来。我花了几个月的时间,想清楚了几个问题。

第一个问题是:我喜欢做什么?

我认真想了想,发现自己还是喜欢写代码的。写代码的时候,我能进入一种心流状态,忘记时间,忘记烦恼。解决一个技术难题,写出一段优雅的代码,做出一个好用的产品,都会让我很有成就感。

虽然有时候也会觉得写代码累,觉得烦,但总的来说,我还是喜欢这份工作的。既然喜欢,那就继续做下去,不要轻易放弃。

第二个问题是:我擅长做什么?

我认真评估了一下自己的能力。技术上,我不算顶尖,但还算扎实,能独立完成中等复杂度的项目,也能带几个新人。沟通上,我还不错,能和产品、测试、设计等角色有效沟通,也能给新人讲清楚技术问题。学习能力上,我还可以,新技术学起来不算慢,也愿意学。

综合来看,我比较适合做技术,但也有一定的管理和沟通潜力。可以走技术路线,也可以走管理路线,或者走技术加管理的路线。

第三个问题是:我想要什么样的生活?

这个问题很重要,但很多人在做职业规划的时候会忽略。我认真想了想,我想要的生活是:工作和生活平衡,有时间陪伴家人,有时间做自己喜欢的事情,收入稳定且能稳步增长,不需要大富大贵,但也不能太差。

基于这个目标,我排除了一些选项。比如,去高强度的创业公司,虽然成长快、收入可能高,但太累,没有生活,不适合我。比如,完全转管理,虽然不用写代码了,但管理的压力也很大,而且我还是喜欢写代码,不想完全放弃。

想清楚了这三个问题,我对自己的职业方向就有了一个大概的认识:继续做技术,走技术专家或者技术加管理的路线,找一份工作生活平衡的工作,稳步发展。

第五年的选择

第五年,我基于之前的思考,做了几个选择。

第一个选择是确定了技术方向。

以前我什么都学,前端、后端、运维、数据库都懂一点,但都不精。第五年我决定深耕后端开发,把主要精力放在后端技术上,包括系统设计、性能优化、分布式系统、云原生等。

我给自己制定了一个学习计划,每天花一个小时学习新技术,每周写一篇技术博客,每月做一个小项目。坚持了一年,技术确实比以前扎实了不少,也形成了自己的技术体系。

第二个选择是找了一份工作生活平衡的工作。

第五年年初我换了一份工作,去了一家中等规模的公司。这家公司不是大厂,但也不小,业务稳定,技术栈成熟,加班不多,基本上能保证朝九晚六,周末双休。

工资比我之前的工作涨了一些,虽然不是最高的,但我很满意。因为在这里我有时间学习,有时间陪伴家人,有时间做自己喜欢的事情。工作和生活平衡了,整个人的状态都好了很多。

第三个选择是开始发展副业。

工作稳定之后,我开始利用业余时间发展副业。我做了一个技术博客,分享自己的学习心得和项目经验。接了一些外包项目,赚一些外快。还尝试做了一些技术课程,虽然收入不多,但也是一个尝试。

副业的收入不稳定,有时候多有时候少,但它给了我一种安全感。即使主业出了问题,我还有副业可以依靠。而且做副业也能提升自己的能力,拓展自己的视野。

第四个选择是开始注重健康。

第五年我开始认真对待自己的健康。每天尽量早睡,不再熬夜。饮食尽量规律,少吃外卖。每周运动三次,有时候是跑步,有时候是健身。每年做一次体检,及时发现问题。

坚持了一年,身体比以前好了很多,颈椎不怎么疼了,肠胃也好多了,精力也比以前充沛了。健康是革命的本钱,这句话真的没错。

程序员职业发展的几个方向

在思考职业规划的过程中,我也研究了程序员职业发展的几个方向,在这里分享一下。

第一个方向是技术专家路线。

就是一直深耕技术,成为某个领域的专家。比如后端专家、前端专家、算法专家、安全专家等。这条路的好处是不需要太多的沟通和管理,专注技术就行,适合喜欢写代码、不喜欢管人的人。

但这条路也有挑战。技术更新很快,要不断学习才能保持竞争力。而且技术专家的岗位相对较少,越往上走竞争越激烈。到了一定年龄如果技术不够顶尖,可能会面临瓶颈。

第二个方向是管理路线。

就是从技术转管理,从工程师到技术主管、技术经理、技术总监、CTO。这条路的好处是职业天花板更高,收入上限也更高,适合有沟通能力和领导能力的人。

但这条路也有挑战。转管理之后写代码的时间会越来越少,技术可能会慢慢生疏。而且管理的压力很大,要对团队的业绩负责,要处理各种人际关系,不一定每个人都适合。

第三个方向是技术加管理路线。

就是既做技术又做管理,比如架构师、技术负责人等。这条路是前两条路的中间路线,既不需要完全放弃写代码,也不需要完全投入管理。适合既喜欢技术又有一定管理能力的人。

这条路的好处是比较灵活,进可以转管理,退可以做技术。但挑战是两边都要兼顾,容易两边都做不好。需要有很强的时间管理能力和多任务处理能力。

第四个方向是产品路线。

就是从技术转产品,做产品经理。程序员转产品有优势,因为懂技术,能和开发团队有效沟通,也能判断产品需求的技术可行性。适合对产品感兴趣、有用户思维的人。

但这条路也有挑战。产品经理需要的能力和程序员不一样,需要市场分析、用户研究、需求管理、项目管理等能力。转过去之后需要重新学习很多东西。

第五个方向是创业或者自由职业。

就是不打工,自己创业或者做自由职业。这条路的好处是自由,不受别人管,收入上限也高。但风险也大,不稳定,需要有很强的能力和资源,还要能承受压力。

这条路适合有想法、有能力、有资源、能承受风险的人。不适合追求稳定的人。

这几个方向没有绝对的好坏,只有适不适合。每个人要根据自己的情况,选择适合自己的方向。

我最终的选择

最后说说我最终的选择吧。

经过五年的思考和尝试,我最终选择了技术加管理的路线。

具体来说就是在目前的公司继续深耕后端技术,同时带一个小团队做一些管理工作。技术上我希望能成为公司的后端技术专家,负责系统设计和技术选型。管理上我希望能带好一个小团队,培养新人,提升团队的整体能力。

我觉得这条路比较适合我。一方面我喜欢写代码,不想完全放弃。另一方面我也有一定的沟通和管理能力,带一个小团队不成问题。而且技术加管理的路线职业发展比较灵活,进可以转管理,退可以做技术。

当然这只是我目前的选择,未来可能还会变。职业规划不是一成不变的,要根据自己的情况和外部环境的变化随时调整。但至少现在我有了一个清晰的方向,不再像以前那样迷茫了。

除了职业方向,我还想清楚了几个事情。

第一,工作不是生活的全部。以前我把工作看得太重,觉得工作就是一切,为了工作可以牺牲健康、牺牲陪伴家人的时间。现在我明白了,工作只是生活的一部分,健康、家庭、爱好,同样重要。工作要努力,但也要注意平衡。

第二,持续学习很重要。技术更新很快,不学习就会被淘汰。不管走哪条路线,都要保持学习的习惯,不断提升自己的能力。学习不只是学技术,还要学管理、学沟通、学产品、学商业,多方面发展。

第三,要有副业思维。不要把所有的希望都寄托在一份工作上。要利用业余时间,发展自己的副业,比如写博客、做课程、接外包、做开源项目等。副业不仅能增加收入,还能提升能力,拓展人脉,给自己多一条路。

第四,健康是最重要的。没有健康,其他一切都是空谈。要注意休息,注意饮食,注意运动,定期体检。不要年轻的时候拿健康换钱,老了拿钱换健康,那不划算。

写在最后

写了五年代码,我终于想明白了自己的职业规划。

这个过程,花了五年的时间,走了不少弯路,也换了几份工作。但现在回头看,这些经历都是值得的。正是因为有了这些经历,我才更了解自己,更清楚自己想要什么,才能做出适合自己的选择。

职业规划是一个持续的过程,不是一次想清楚就一劳永逸了。随着年龄的增长、经历的增加、环境的变化,职业规划也会不断调整。但只要大方向是对的,就不会走偏。

如果你也是一个程序员,正在为职业发展而迷茫,我的建议是:不要着急,给自己一点时间,多尝试,多思考。想清楚自己喜欢什么、擅长什么、想要什么样的生活,然后做出选择,坚持走下去。

不要盲目跟风,别人走管理路线,你也跟着走管理;别人创业,你也跟着创业。每个人的情况不一样,适合别人的不一定适合你。要根据自己的情况,做出适合自己的选择。

最后,想说的是,程序员是一个很好的职业。它给了我们相对不错的收入,相对灵活的工作方式,以及持续学习和成长的机会。只要我们认真规划,努力付出,一定能在这个行业里找到属于自己的位置。

愿每一个程序员,都能找到适合自己的职业方向,都能在工作中获得成就感,都能在生活中获得幸福感。

写了五年代码,路还很长,继续加油。