程序员 35 岁危机,如何破局 ?( 二 )


文章插图
IT 行业的技术更新换代非常快,对个人综合能力要求非常高,如果你不持续学习,等到年龄危机到来时还想躺赢,下一批裁员的可能就是你了 。
持续学习是一切的前提,但我们不能盲目去学习,需要提前做好职业规划 。
 
2.2 提前做好职业规划 
我们看看程序员常规的晋升和转型路线:
 

  1. 技术型:初级工程师->中级工程师->高级工程师->架构师(技术专家)->技术总监->CTO;
  2. 管理型:工程师->项目组长->项目经理->项目总监->技术总监->CTO;
  3. 交叉型:初级工程师->中级工程师->项目经理->技术总监->CTO(此路线技术和管理交叉进行,每个阶段做的事情不固定);
  4. 转行型:初级工程师->转行产品、设计、销售、运营等 。
 
下面是更加详细的职业规划,尽量延长自己的生命线,甚至可以摆脱年龄的限制(能摆脱年龄限制,都是大神级别):
 
  1. 在某种开发技能上建立个人品牌,比如微服务、Hadoop、高并发、C++ 等,而且你的品牌要被业内认可,这样的开发者实际上是以 “技术专家” 的身份存在 。
  2. 在组织内开发技能过硬、精通业务,成为复合型选手,占据难以替代的位置 。这样的开发者,可以称之为高级开发工程师或者资深开发者,这样的角色,在一个合适的平台上可以受到重视,可以跟着平台发展,不用在意年龄 。退一步讲,即便所在的平台倒掉了,也会有很多公司愿意要 。
  3. 成为善于架构某类软件服务的架构师 。这是从高级开发工程师演进过来的更高级的角色,当你真正做过一些大型系统的架构工作,会有很多公司需要你,不必担心你的年龄,你工作自由了 。
  4. 走向管理岗位,成为职业经理人 。很多公司都有项目经理、技术经理、研发经理等管理角色,你需要能够真正做好管理工作 。
3. 需要具备的核心技能3.1 技术方面 
技术才是每一个程序员的安身立命之本,无论你处于哪个阶段,都不要把技术完全落下,区别只是在各个阶段对技术要求的侧重不同:
 
  1. 初中高级程序员:一个技术强化的过程;
  2. 专家:选择一个技术方向深耕,成为对应技术领域的专家;
  3. 架构师:更偏向对项目整体架构的设计和把控能力;
  4. 团队负责人到 CTO:管理职能更大于技术职能,更多的是对技术的宏观方向把控 。
 
技术方面主要有以下几点建议:
 
  1. 先广后深,打造自己的核心竞争力 。你可以是微服务领域的专家,也可以是 ES 大佬,或者精通 Flink 。
  2. 拒绝啃老本 。不要在一个公司混了 3 年,出来找工作投简历,发现简历都投不出去,Spring Cloud 都不知道是什么,微服务、分布式完全没接触,还是只会基于 SSH 的 CURD 。2/3 线城市还好说,在一线城市工作的,技术迭代更新比较快,一定要跟紧主流技术 。
  3. 要形成自己的技术体系 。什么是技术体系,举个例子,你说自己会 MySQL 数据库,但是除了日常写 SQL 进行 CURD 的业务开发外,你还知道 MySQL 的运行架构,主流存储引擎的区别,主从同步原理、组复制、锁机制、分表分库、事务控制这些吗?围绕着技术名称的中心点,能像蜘蛛网那样扩散出去,形成有条理的网状结构,就形成了自己的技术体系 。
  4. 尽可能做多做一些总结输出 。我目前的做法是将日常的一些学习笔记、人生感悟、bug 解决过程等先简单记录在有道笔记上面,后面再逐渐整理输出,既可以回顾总结反思,也能作为一些博客的内容输出 。
  5. 不要死磕技术(这点大家勿喷) 。作为程序员,需要有一定的技术信仰,但也不能太过迷信技术 。在职场中,你要比别人走的更高更远的话,只会敲代码实现一些业务功能是远远不够的 。其实在很多开发公司,开发人员的地位都比较一般,来去匆匆,始终是底层的搬砖工 。所以,不要傻傻地一头扎入了技术的海洋,每个人的精力都是有限的 。除了技术实力外,你还需要有意识地培养自己的沟通表达能力、文档输出能力,比如项目说明文档、项目架构图、汇报 PPT、团队管理、项目管理、项目规范、抽象化思维、产品化思维等综合实力 。


    推荐阅读