互联网技术变化那么快,程序员如何才能做到不被市场淘汰?

小鱼仔小鱼仔 · 2022-09-21 15:19
身处互联网公司,程序员这个职业一直都是人们眼中高薪工作,但也是由于工作性质而产生的压力逐渐变大。特别是现在的社会发展趋势的速率非常快,加上目前互联网技术的升级换代非常快,因此程序员这一职位的人员流动也特别快。 我们应该如何做,才能避免中年职业危机的到来呢?
11 个回答

首先,因为个人经历的局限,我的答案仅适用于北美,不一定适用于国内。请国内的朋友们批判看待,但也许仍然有启发。


在回答“我们应该如何做”之前,我想先说一下“我们不应该如何做”。我的观点是,因为技术升级快而试图逃避,盲目转管理岗是一个比较大的忌讳。转管理岗本身不是坏事,但需要有一个好理由。“我对如何鼓励人,成就别人的成功感兴趣”是一个好理由,“我非常享受当领导的权威,甚至光这一点就可以激发我遇到挫折仍然努力工作”也是个不错的理由。但“我害怕自己没办法跟上技术换代,所以想抛弃以前的技术积累,未来也不再更新知识结构,专心做比较稳定的人的管理(people managing)”是一个很烂的理由。因为第一,没有技术基础的经理人车载斗量,MBA一毕业的新手甚至都可以比我们“码而忧则仕”的新经理做得好很多,所以对于保住职位来说,这条路比继续写代码还要艰辛。而且我们走上写码道路的,一般也是因为当初选专业的时候偏理工科思维,写码比管人更有热情/擅长。因此比较建议要仔细问自己,搞清楚自己会不会享受不能搞技术,专心搞人事的生活。总之,转管理岗不是错误,但没有理由盲目转管理岗就是一个忌讳了。


然后我还想澄清一个误区。程序员技术换代快,只能吃青春饭,这个也是圈外比较广泛的误解。技术换代确实快,但里面的核心——软件工程的基本思想其实非常稳定。现代软件项目早就过了单打独斗的阶段了,稍微一个靠谱点的项目都要至少5个人的团队做个半年一年才能做出来,而如何让这些人合理配合,让软件在三五年的时间跨度上仍然可维护可扩展,是一门专门的学问,叫软件工程。学一门新语言,掌握一门新框架可能一个星期,一个月就可以。但要在软件工程方面熟练,做到合理设计开发流程和政策,不返工浪费时间,不犯错误累及客户,组员沟通没有障碍,合作没有摩擦,这是非常深奥的学问,没有五年十年难有成就。但一旦掌握了这一招,一方面在公司往往可以舒舒服服做一个中层IC(Individual Contributor,不做经理的程序员),一方面和技术的发展也可以相对独立开,除非出现一个突破性的技术(比如深度学习),一般知识更新的节奏非常慢。但是,中年危机仍然是存在的,只是不是因为技术更新,而是因为体力和带娃等因素,卷不过年轻人。那么,我们要做什么才能卷过年轻人呢?


答案是,卷他们不擅长的东西,也就是上面说的软件工程。年轻人996加班搞出来一个东西,客户提了个新需求,整个框架又要大返工,全部重做。我们按时下班,但因为以前踩过这个坑,知道客户可能会提这个需求,所以在设计架构的时候就直接考虑到了这一点。到时候客户提这个需求,我们直接写两天代码搞定上线,帮公司省时间还赢得口碑。年轻人写码往往不注重文档,不注重测试,离职以后没人看得懂代码,也没人敢动,最后公司只好重写一份,美其名曰重构。我们写的代码,注重测试的完备性,就算是外组来的人也可以看懂并且自己改,帮整个公司优化了效率。一个人的时间毕竟是有限的,996也只是一周工作72个小时而已。但这些软件工程技能带来的正确决策,可以轻松帮公司省下几百几千个小时的时间。这一点年轻人是卷不过我们的。所以,核心在尽早培养自己对软件工程的深入掌握,有了这个积累,基本上就不会有中年危机了。

7
反对
评论
收藏
2022-09-22 07:06
查看全部 11 个回答