聊聊职业发展路径
为什么每个人都需要关心职业路径
我们每一个人都在不同的职业,如果要想有所发展,就需要了解自己的这个职业的发展路径,这个路径就是我们的向导,我们首先需要知道我们现在是在哪一级,其次我们需要知道下一级的能力是什么?然后我们才能知道做些什么才能到达下一级。
了解职业路径非常重要,因为我们每一年都希望自己能够涨薪,希望自己收入有所提升,但是简单的只是希望是没有用的,个人的收入是和个人的能力以及为公司带来的收益正相关的。但是,很多人没有意识到这一点,把涨薪和工作时间的长短看的比例过大,甚至HR在招聘的时候也容易过于看重工作年限,但这有以下两个问题:
- 一个人可能工作很多年,但是一直都在重复头一两年学到的那点东西,也就是对外输出的价值是没有变化,其次随着年龄的增加导致体力的下降,对外输出的价值反而降低不少。
- 经验有两面性,有一些经验当我们过于熟练后,容易陷于能力陷阱,就相当于一个锤子,看到一切都是钉子,反而这种经验会对我们造成一定的羁绊。
我自己也看过不少简历,很多人工作很多年了,简历里还列着大学里拿过的奖项,这个其实是没有意义的,就像大学里大家都在讨论微积分了,你还在说你小学里得过年级数学第一名,让人觉得很Low. 单位里也有一些人,想升职加薪的时候,总是提自己几年前的贡献,殊不知几年前的贡献已经在几年前用过了。 一个毕业工作三年以后的人,大学以前的荣誉是没有多大参考价值的,过于强调之前的功劳,越是显得自己现在是个废柴,这就是为什么我们说“好汉不提当年勇”。
这里面主要的问题就是不清楚自己现在的位置,以及我们为下一个职位需要做哪些准备。
根据我自己10多年的管理经验来看,不要轻易把一个人放到一个更高的位置上去,而是要先考察这个的能力,以及这个人用这个能力做了相对应的一些贡献,我们很多的时候的错误,当然我自己也犯过这样的错误,就是先把人放到这个位置,然后相信他能干好,我们都喜欢听临危受命的故事,但是临危受命的对象必须提前做了必要的准备了,我们先把一个人往上提,最终这个人肯定会被提到他不能胜任的位置,那么时间一长,公司大部分人都是在不能胜任的位置上。
要想避免上面的问题,我们就需要让自己处于不断上升的阶段,让我们自己的能力的增长跟的上自己的年龄的增长。
我们就需要让上面这个曲线越陡峭越好。
人员级别该如何定义
作为个人,需要有职业路径,但是一份好的职业路径很重要,很多公司都有相应的职位,但是并没有清晰的职业路径,以及不同职位的要求,拿我所在的软件行业里,软件行业里经常有初级程序员,中级程序员,高级程序员,比较奇怪的是很多公司里高级程序员里还能分出1到n级。我自己特别不喜欢初中高这三种分类,因为很多程序员连一些基本知识都不掌握,也叫自己是高级程序员,更遗憾的是,很多公司竟然简单粗暴的用工作年限来区分。
我自己做为一个分公司负责人,为了考核,原来也定义了一个不同级别对应客户的报价和工资,但是当时犯了一个很大的错误,这个错误影响至今,就是为了稳定当时现有人员,不影响现有人员的工资,就根据当时已有人员对客户的报价,反推出高级开发人员需要具备的能力,然后一级级下去。这里面最大的问题,不是说一个高级程序员应该具备什么样的能力,而是是否有人拿到了高级程序员的报价,这两个是没有那么强的相关性的,好在后面有及时纠正过来。
中间有几年,我定义的考核和成长路径确实起到了作用,但是随着技术的快速发展,人员的变动,原来的不同级别的要求已经不适应了,由于我自己是做技术的,所以每一个级别的要求里,写的特别具体,比如.NET语言里需要掌握什么特性等等,但是随着自己的工作经验和解决实际问题经验多了以后,发现纯粹用掌握一门语言来区分初中高级别的工程师,我就是对大学生提出的是中学生的要求。我已经发现了这些问题,所以我不想再太多参与项目的具体编码的工作,越是在公司强调独立自主工作的时候,作为Leader,需要做的coach工作反而越多,授人以鱼不如授人以渔永远是公司管理人员该做的东西,我们强调Independent的工作能力并不代表Leader的工作会减少,只能是更难,更大,因为我们需要帮大家“破镜”,从一个境界破到另一个境界,我们不能替代他,但是还要帮他破镜,这个真的很难,要做的工作也很多。
示例
好的职业路径是很重要的,因为我自己是做技术的,所以我这里面贴出两个我认为不错的开发人员和技术工程师的范例,一个是Basecamp公司的,另一个是吴军老师给出的。
Basecamp
下面是Basecamp给developer的title, 我选择basecamp作为参考,是因为他们的定义是奔着工作质量,团队合作以及解决问题去的,并不是一个特别具体的技术知识点:
- 一个人做工作是否需要被别人review, 是经常,偶尔,还是不需要被review (工作独立能力)
- 是否掌握需要的高级特性和用法 (深度)
- 是否熟练应用一些优秀的模式和方法 (行业优秀方案的应用, 能否站在巨人的肩上)
- 是不是一个Sole的程序员,我们之前说全栈,很多人理解的全栈只是前后台代码,代码写完了,写的是不是符合要求,是不是成功deliver到end user手上,如果我可以改的话,我希望把sole改成solo,我觉得Solo特别好,Solo就是你一个人搞定,这里面包含很多东西,一个Solo的程序员是以后可以单飞的程序员的。(是否是solo程序员)
- 了解其它技术,深耕一个技术领域,并同时掌握其它技术领域,做一个T Shape的人才,能否推动整个组织向前,是能否达到高境界的重要条件。(一专多能,推动组织变革和进步)
Junior Programmer
- Work is thoroughly reviewed with substantial back and forth frequently needed before merging.
- Basic language features are mastered, but some advanced structures may still be unfamiliar.
- Occasional issues following patterns and approaches within existing code bases.
- Works primarily on tightly scoped, routine problems.
- Usually less than 2 years of experience being a professional programmer in the specific domain.
Programmer
- Work is reviewed with the occasional need for material direction or implementation changes.
- Follows established patterns and approaches within existing code bases with ease.
- Works mostly on clearly defined and scoped individual features or problems.
- Usually at least 2-5 years of experience being a professional programmer in the specific domain.
Senior Programmer
- Work doesn’t necessarily need to be reviewed, but general approach may be.
- Fully capable of taking substantial features from concept to shipping as the sole programmer (alongside a designer).
- Can provide material feedback on the work of junior programmers and programmers.
- Deep expertise within at least one programming environment.
- Basic proficiency in at least one additional programming environment.
- Usually at least 5-8 years of experience being a professional programmer in the specific domain.
Lead Programmer
- Work happens completely autonomously with no regular need for review.
- Fully capable of owning and running entire subsystems of work (Queenbee expert, Action Cable implementation).
- Helps set and maintain professional standards for the entire organization.
- Deep, substantial expertise in multiple programming environments.
- Capable of running and directing small teams for substantial projects.
- Capable of executing projects across multiple domains (say, native app that needs API backend).
- Usually at least 8-12 years of experience being a professional programmer in the specific domain.
Principal Programmer
- Can set and direct an entire department, like SIP, Core Product, or Research & Fidelity.
- Fully capable of designing, owning, and running entirely new, novel systems (design billing systems, Trix, Active Record from scratch)
- Capable of running and directing larger teams for large, long-running projects.
- Recognized widely in the industry for material contributions to the state of the art.
- Invents new concepts, pushes the whole organization forward regularly.
- Usually at least 12-15+ years of experience being a professional programmer in the specific domain.
五级工程师
吴军提出的五级工程师的标准,我觉得要求更高,我们很多人能到第二级已经很不多了,但是可以看看,如果我们终身达不到,那么也可以用来指导下一代嘛,同时也可以对比一下我们自己,然后我们对自己有个清醒的认识,避免得瑟。
第五级工程师
以计算机行业为例,一个人毕业后,经过一段时间的锻炼,能够熟练应用工程的知识和技能解决问题,独立完成所分配的工作,而不需要他人指导,就算是一个合格的五级工程师了。再具体一点,比如这个人在京东公司任职,老板让他做一个工具,找出那些不断帮助女(男)朋友买书的读者。他自己知道在公司内找谁去要数据,如何确认两个人可能是男女朋友,而且经常买书。也知道自己在京东公司的环境里,应该使用什么样的开发工具。以及为了方便客户使用,这个工具应该有什么样的基本功能。如果还做不到这件事情,就算不上是一个合格的工程师。在过去,工程师和科学家是可以并列的头衔,今天在法国和德国依然如此——那里的工程师会有一个特殊的资格证书,就如同医生和律师有特殊的资格证书一样。但是在中国,很多人从工科大学一毕业,公司就在他的名片上印上工程师,然后就似乎已经成为工程师了,很多人有这个头衔,但并不具有工程师所应该有的基本的技能。在IT行业很多人被称为码农,虽然名字不太好听,但是仔细想想,似乎也是对天天简单重复低层次IT工作的人的一个形象的写照。我想,上述对一个五级工程师的要求,任何一个从工科大学毕业的学生,只要自己有心,往这个方向努力,不难达到。如果达不到这个层次,不能算合格的工程师。
第四级工程师
对于第四级的工程师,就需要有领导能力和在工程上把大问题化解为小问题的能力了。用我之前写的“愿景-目标-道路”的逻辑,他们能够寻找出实现比较大的目标的道路。工程师和科学家不同,后者考虑的是对和错,前者只是在现有条件下考虑好和坏的解决方案。比如在建造一座海湾大桥时,工程师会在现有资金的条件下,根据交通的需求设计一个200年使用寿命的大桥,但是为了让军队迅速通过一条河,他们追求的目标就变成了在最短时间内建造足够让军队安全渡河的浮桥。目标不同,工程师的解决方案就不同,这件事对于土木工程师和桥梁工程师来讲,常常不是问题。但是很多搞IT的人,常常会把海湾大桥修成浮桥,也会把浮桥按照海湾大桥来慢慢修。因此,能否成为四级的工程师,要看能否最好地解决一个这样有规模的实际问题。这个能力远不是熟练写程序就够了的。很多人抱怨自己的机会不够,其实从管理者的角度看,中国IT公司里非常缺乏这样有头脑的工程师。至于为什么有的人能够得到机会,他们和上下级之间较强的沟通能力帮助了他们。
第三级工程师
对于第三级的工程师,就应该能够独立带领人做出一个为公司挣得利润的产品了。这里面除了上述能力外,还涉及到对市场的判断和营销能力了。很多人讲,我就是做工程的,这个东西是否有用,我不清楚,有什么事情你叫我做就好了。这样显然达不到第三级的要求。第三级的工程师,本身必须是非常好的产品经理。一个有良好工程素养的人,如果心胸开阔,愿意接受各种意见和建议,经过努力,可以做到这一步。你可能奇怪,我为什么专门强调心胸开阔,因为人有多大的心,就能做多大的事情。有人抱怨自己作为工程师,收入和社会地位太低,我想如果你做到第三级,就不低了。当然再往上,就不是很多人能够做到的了。
第二级工程师
第二级是能够做出先前没有的东西的人,世界因为他们多少有点不同。举几个例子,比如北极光风投的创始人邓锋,在他(和谢青、柯岩)之前,世界上没有真正意义上的网络防火墙设备,他们做出了这个设备,并且成功创立了当时世界上最大的防火墙公司(Netscreen),这个公司在被收购前市值大约为20亿美元。他可以算得上是二级工程师,另外,Google云计算的发明人迪恩(Jeff Dean)也可以算。你如果能成为二级工程师非常好,但是如果不能也没有关系,不必对自己太苛刻。
第一级工程师
开创一个产业的人,包括爱迪生、福特、贝尔等人
小结
如果我们是一个个人,我的建议,我的建议是找一些行业里你认为比较不错的公司里,对不同级别的人要求,拿IT行业里来说,国内的腾讯,阿里,今日头条,国外的Google, Facebook, Microsoft等等,或者一些高速增长的小的明星企业,独角兽企业,那里面对人员的要求来看看自己需要哪些提高。同时,我们需要提升我们的眼界,我们每个人只有发现过自己是多么的愚蠢后,才能开始有所进步,这就是看见,因为看见,所以不同!
对一个企业来说,我们需要定义一个不断向上的职业路径,让每一个清晰的知道每一个职位需要什么样的人,每个人自己在哪一个级别,以及下一个级别是什么?同时,要提供环境和机会,让每个人有机会从当前的位置成长到下一个位置,每一个管理人员,都要把自己转变为一个园丁,提供好的土壤,该浇水浇水,该施肥施肥,不要总想把花园变成自己期望的样子,让花草自己生长,一定会给我们惊喜。
版权:本文版权归作者所有,转载需经作者同意。
1.把自己当做产品
2.2020年终总结
3.用软件系统思维来看管理
4.新时代的节俭
5.成为通才
6.通才和专才:不要过早开始专才之路
7.通才还是专才?
8.高考满分作文《生活在树上》