论程序员成长:如何像游戏一样打怪?

更新日期: 2020-07-02阅读: 994标签: 程序员

去年年底,在回顾那几年的 Tech Lead 生涯,以及对新 Tech Lead 的培训时写了那篇 《Tech Lead 的养成》。在新的团队稳定了下来之后,我开始寻找下一个合适的成长路径,或者说是模型。因此,从某种意义上来说,这是一篇写给自己的文章

最近,我在探索中发现公司内的各种 Growth Paths(成长路径)已经成熟了,比如我试着重新对比一下其中各类的模型,Technical Anchor。那么,我的下一个阶段是不是应该与 PRINCIPAL ENGINEER 相挂钩?


职级并非与能力挂钩

PS:我只在 ThoughtWorks 待过,所以我对其它公司的职级体系也不是非常了解。所以,其中的部分内容来源于:我在和客户一起工作时所总结的,还有网上所看到的资料。

职级是 在某一组织内部 ,将工作内容、难易程度、责任大小、所需资格皆很相似的职位划分同一职级。

对于大部分公司来说,职级体系必然与薪资体系相挂钩的。你的职级越高,你要做的事情 level 更高,那么你的 应得 收入就越多。即从理论上来说,你创造的价值越大,那么你所获得的收入就越多。比如说,程序员 A 写了某个业务系统的关键代码,这个业务系统非常成功,那么你创造的价值就远比另外一个程序员 B。(PS:但是实际上并非如此,有可能不会伴随你产生的价值)。

与此同时,A 之所以拿的工资比 B 高,并非因为 A 的编码能力比 B 强很大,又或者是因为 A 的其它能力比 B 强。而是因为 A 刚好出现在一个合适的地点上,所以 A 有了更多的职级和更高的收入。

当然了,那些在 BAT 996 的程序员,能力都是比我强的。


职级与能力:外在与内在职业生涯

PS:在写文章的过程中,我看到了一个更专业的词汇:外在职业生涯与内在职业生涯

  • 外职业生涯(对外在职场而言),是指从事职业时的工作单位、工作时间、工作地点、工作内容、工作职务与职称、工作环境、工资待遇等因素的组合及其变化过程。
  • 内职业生涯(对个人自身而言),是指从事一种职业时的知识、观念、经验、能力、心理素质、内心感受等因素的组合及其变化过程。

多数人在他/她们的职业生涯间,都要面对着各种各样的角色变换。或是从开发人员变为产品经理,或是从测试人员变为项目经理,又或者是从程序员变成滴滴司机。在过去的几年里,我也面临着一些细微的变化,如从开发人员变为技术负责人,从交付项目来到咨询项目……。唯一不变的是,写代码还是我日常的主要活动,但是我需要提升其它能力。

简单来说,内在就是你想做事情,外在的就是你做的事情。这两点的平衡是一件非常有意思的事 —— 尽管我一直平衡不好。


角色成长路径

每个成熟的公司都有对应的职级路径,至于划分的好坏就是另外一回事了。晋升就是与职级路径相匹配的活动,它会伴随在我们的外在职业生活中。而这部分的内容不是这篇文章的主题。

回到标题上来,看看 Technical Anchor 角色的定义:

具有丰富的技术和行业知识的领导者,沟通者和工程师。 能够提供技术合作的信心和方向。 他们拥有解决方案和技术堆栈的设计和架构,从头到尾对其进行指导。他们专注于确保团队内部战略的成功实施

这是一个角色,并非与真实的职级挂钩。这个角色定义的能力有诸如于:

  • Technical visioning and roadmapping
  • Evolutionary Architecture
  • Integration
  • ……

但是呢,Technical Anchor 的定义上和我去年定义的 Tech Lead 最大的区别在于:这个角色要花 70% 的时间在代码库上,而 Tech Lead 要花费的只有 30%。Tech Lead、Tech Anchor 以及 System Architect 相当于是这个第二级角色。

PS:一级角色就是具备完成工作能力的成员。简单来说,对比如下:

  • 新手 vs 普通程序员
  • 骑士 vs Tech Lead 等
  • 圣骑士 vs Principal Engineer 等

这个过程,非常有意思,我们要围绕的是能力成长。换句话来说,我们需要练习打更强的怪,才能获得职业成长。如我司定义的 Principal Engineer

A Principal Engineer is a highly experienced technologist who drives the success of a complex engagement through the depth and breadth of their engineering skills.……

它要做的事情是 推动复杂交付的引擎室 ,对应有一些关键能力:

  • Legacy Mitigation
  • Application Architecture
  • Cloud Native Architecture
  • Back End Development
  • Distributed System Architecture
  • ……

如果每一级都定义好了,那么我们只需要有针对性地提升能力,并进行实践即可。


其它

整个过程中,唯一麻烦的点在于,如果在一个组织内部,只有职级,而没有成长路径。那么,就需要从社区上来获得对应的能力模型,才能想着配套上对应的练习。

原文 http://www.phodal.com/blog/growth-path/

链接: https://www.fly63.com/article/detial/10039

1024节日的由来,程序员的你最想对自己说的是什么?【1024程序员节日】

吃饭睡觉写代码,基本都程序猿的大部分生活了,作为从事最累的职业之一的我们终于有了自己的节日,那就是1024。1024向程序员致敬,向自己致敬,向未来致敬。

一个程序员的运气有多重要

互联网注定是一个不能安宁的行业,有一些人在努力引领变化,有一些人在努力适应变化,有一些人在被时代的浪潮淘汰。这个世界唯一变的就是变化,人生唯一不能停的就是学习,说到底,要想不被淘汰,只有不断的学习。

如何成为10倍速的程序员

国外有个词叫做10x Programmer,直译是以一当十的程序员。我并不认为一个技术大牛能完成10个普通程序员的工作,技术大牛会花1/10的时间把工作做完,然后用剩下9/10的时间平衡生活、爱好和未来,所以我仅把10x Programmer叫做10倍速的程序员。

优秀的程序员是不看源码的,这是真的么?

仍是要永远 ctrl+v,永远拿来主义。仍是要时时刻刻对美好满怀期待,对未来充满渴望,对经典心怀敬畏。要记住啊,能原创而不原创,有源码而远源码,才是最无知的成熟。

优秀程序员的十个习惯

优秀程序员有哪些好的习惯:1. 想清楚,再动手写代码,2. 不交流,就会头破血流,3. 文档没人看,但还是要写,4. 一定要写注释,5. 别指望需求会稳定

程序员和用户

我曾经说过,程序员不是一般的人,是具有某种超能里的人。但问题是,程序员往往意识不到自己的这种特异功能,在他们的眼里,会认为自己很普通,跟常人一样,所以,程序员能做到的事情

一个程序员送给大学生弟弟的那些话

分析自己的处境; 做适合自己的选择; 以成长为目的,担负起更多责任,打破对做事的认知; 把握机遇,去锤炼自己; 抛弃一些懒惰,多一些积极;向牛逼的人靠近,向给你提供条件帮助你学习的老师靠近。以上结合了我自己的经历,希望文章能更形象。

程序猿跳槽季,为什么你的薪水总升不上去?【转载】

现在身处跳槽高峰季,作为即将跳槽的我,在这里分享几点建议给大家。众所周知,找工作的前提是面试,面试的前提是过了简历,过了简历的前提是你怎么投。

程序员养生攻略_程序员防猝死指南

程序员在其职业生涯中,健康问题尤为突出。但是大部分程序员只顾码字,却往往忽略了自身的健康问题。这或许是因为写代码太入神,也或许是因为来自老板的压力太大。

程序员笔名、别名_适合程序员的英文名字

一个厉害的程序员,都会有一个牛逼哄哄、有辨识度有个性的英文别名。在公司同事中很更好的称呼,这篇文章翻译整理了一下适合程序员的英文名字

点击更多...

内容以共享、参考、研究为目的,不存在任何商业目的。其版权属原作者所有,如有侵权或违规,请与小编联系!情况属实本人将予以删除!