程序员成长职级

之前与老同事叙旧,一同事讲起现在公司在压缩人员,另一同事马上讲谁让你们把系统搞得那么好,几年都出不了个二级Bug,想想真是悲壮

有时想程序员这群可爱的人,自命清高,但不过是群工具人而已;技术人特别像古时的武将,君主开疆拓土时,那真是座上宾,可一旦休战,杯酒释兵权都是佳话

习武之人有三重境界,见自己,见天地,见众生;这三重境界很适合技术人

对于程序员,很多人都梦想成长一名架构师,程序员怎么成长,在成长的途径中,要打哪些怪,经验值怎么分布,知道这些后,就能有的放矢

最近听了阿里P9关于架构师成长之路,我特地记录一下,对照一下自己的成长

职级

整体打怪升级路径:工程师 - 高级工程师 - 技术专家 - 初级架构师 - 中级架构师 - 高级架构师

工程师P5(1~3年)

特点:求指导

重点:基础(环境、工具、流程)

技巧与误区:

  1. 碎片化时间,系统化学习
  2. 经典书籍系统学习:运行环境、编程语言、网络基础
  3. 三大坑:编译原理,XXX内核代码、XX算法代码

要想打好基础能力,首先要明确什么才是真正的“基础能力”。我的观点是“基础能力是指工作任务相关的基础能力,不是整个计算机技术的基础能力”,核心就是“工作相关”,千万不要单纯照搬别人口中的基础能力

高级工程师P6(2~5年)

特点:独挡一面(从需求设计到设计,编码完成整个流程)

重点:积累经验(业务、套路【缓存,分库分表】、原理【redis,netty,看源码主要是了解怎么实现】)

技巧与误区:

  1. 掌握基础原理:JVM,开源软件等
  2. 学习套路:分库分表、缓存、SOLID、设计模式、MVP等
  3. 贪大求全,看了很多,但都是蜻蜓点水

技术专家P7(4~8年)

特点:领域专家

重点:技术深度+宽度(深度【不仅知道reactor,还得知道怎么实现,redis与netty的reactor有什么区别】、全面、业界)

技巧与误区:

  1. 熟悉核心源码:成熟的开源软件,Memcache、Redis、Nginx、Netty等
  2. 业界交流:参加技术大会,关注大厂技术
  3. 生搬硬套,直接拷贝大厂技术,以防水土不服

初级架构师P8(5~10年)

特点:构建普通系统【指导20人内开发的系统】

重点:方法论(复杂度驱动,风险驱动,领域驱动)

技巧与误区:

  1. 架构对比:Redis vs Memcache,Nginx vs Apache,Vue vs React等
  2. 架构重构:尝试去重构已有的系统
  3. 过分依赖以往成功经验

中级架构师P9(8+年)

特点:构建复杂系统【100人开发的系统】

重点:技术本质

  1. 理论:CAP
  2. 算法:如Flink算法原理
  3. 原理:cpu cache line

技巧与误区:

  1. 技术理论:CAP、BASE\分布式快照算法等
  2. 技术原理:磁盘(kaffa)、CPU和内存(Disruptor)等
  3. 好大喜功,过度设计,炫技式设计

高级架构师P10(10+年)

特点:可以创建架构模式,如google大数据三大论文

重点:创造

  1. 业务
  2. 技术
  3. 文化

从这个职级年限看,我这天赋太一般,职场规划也不行,现在大厂已经壮大,量级巨大,获取知识途径也更方便更多,所以对于当今程序员需要了解的知识面也更广更深,如果说以前北大青岛之类拉低了java程序员的门槛,那现在一些知识平台拉大程序员间的差距,不学则退

晋升

了解程序员进阶title之后,后面就是了解怎么能晋升,最好能快速晋升

三大原则

一、主动原则:主动做事

主动规划工作任务,不能一味服从命令听指挥,领导指哪打哪,成为职场工具人

主动跟别人了解更信息,不只是做好自己本职工作,还了解业务上下游,业务价值、上线后效果、没有达到预期的原因、机房部署

二、成长原则:不断挖掘成长点

误区:以为事情做得多,自然就能晋升;以为事情做得好,自然就晋升,把任务做完,保证效率和质量,拿到好绩效,但不一定晋升,因为不同级别的能力要求是有本质的区别的,而不仅仅是熟练度的区别,把事情做好,只能说明你已经熟练掌握当前级别所要求的能力,但并不一定意味着你的能力就自动达到下一职级的要求

不管事情做好了还是没有做好,都应该多做复盘总结,找到可以提升优化的点

三、价值原则:学习为公司产出价值的技能

公司设计职级体系的初衷,是为了衡量不同员工的能力级别,然后根据级别来制定相应的薪酬、福利、管理等制度,同时鼓励员工尽量提升自己的能力,为公司产出更大的价值

让能力为公司产出价值的人,比空有一身能力的人更容易晋升,优先学能为公司产出价值的技能

晋升逻辑

绩效关注的是业务结果,晋升关注的是能力提升;除了达到上述每个职级的技能要求,还有以下两条晋升逻辑

第一条逻辑:提前做下一级别的事

其实职级与本身能力是否匹配,有很多条件,就像你的薪资是否匹配当前能力一样,很难完美匹配,大多时候都是能力超过应有的福利;很多时候你的能力回报通常在下一份工作中兑现

职级也一样,当你做了下一次职级的事情,就更有机会晋升

第二条逻辑:做好当前级别的事

由第一条逻辑引出捷径:晋升通过之后,立刻跟主管要求安排下一级别的工作来快速晋升,但在能胜任下一级别工作前,必须先做好当前级别的事

任何级别都有三层水平:基础、熟练和精通

基础意味着会做,标志是能够独立完成;熟练意味着做好,标志是掌握最佳实践;精通意味着优化,标志是创造新的经验

晋升步骤

  1. 按照晋升原则的指导,在当前级别拿到好结果,为公司创造价值,同时把当前级别要求的能力提升到精通程度,成为晋升备选人
  2. 到了精通程度,对照下一级别要求提升自己能力,为可能的晋升做好准备
  3. 主动寻找工作机会,尝试做下一级别事情,继续拿到好的结果,向主管证明具备下一级的能力
  4. 拿到工作结果申请晋升,介绍做过的事情,展示相关能力和结果,证明自己具备了下一级别要求能力

现在都讲究终身学习,学习为了什么?不是为了学习而学习,更多的是为了成长,如果只是一味地完成职场岗位本职工作,只能永远是棵随时被替换的螺丝钉,我们最根本的目标是成长,通过职场工作提升自己,成长自己。也许你很不屑晋升,认为那有很多厚黑学,但它是成长的催化剂,更与自己身利益息息相关,以终为始,事半功倍

你可能感兴趣的:(程序员成长职级)