可以简单参考下Google的程序员等级说明. 具体很长,我高度简化(略带修饰)的总结下:

1 Software Engineer I

技术方面: 你需要培养一阵才能真正有用.这个级别一般不招人, 你以这个级别进来一般是有特殊原因或者渠道.

非技术方面: 能积极参加组里活动,别添乱就行.

2 Software Engineer II

技术方面:扔给你一个编程的要求,比如实现一个API,你自己能独立自主高质量的完成.

非技术方面:就是能帮组里做一些非技术性的打杂工作.

3 Software Engineer III

技术方面: 扔给你一个系统设计的方案, 你能按着设计把整个系统的一部分或者全部给做出来.

非技术方面: 全权负责某个杂事,比如小组的内部文档,内部工具等.

这个等级应该能对应到阿里 P6

4 Senior Software Engineer

技术方面: 你全权负责小组内某个分系统的所有事情. 扔给你一个你负责的系统的需求/问题,你能自己出方案,做计划把问题解决了.你主要负责想出办法解决问题,具体办法的实施可以交给Software Engineer I,II,III。

非技术方面: 组里各类活动的组织和实施者.

5 Staff Software Engineer

技术方面: 你负责你们组整个系统的所有事情. 扔给你们组一个不知道是不是问题的问题,你是那个能回答它是不是问题,能不能解决,值不值得做的人.如果能做且值得做,你能制定好大方向.每个小方向上可以交给Senior Software Engineer去具体解决.

非技术方面: 只负责最重要的小组或跨组活动,比如招聘,跨组关系等.普通小组活动的组织可以交给Senior Software Engineer去完成. 同时也参与部门级的活动计划.

6 Senior Staff Software Engineer

技术方面: 你是公司某个专项领域的专家, 在某个领域的所有拿不定主意的技术问题或者方向问题都需要你做决定.你负责的项目一般都是需要多小组协同的项目,每个小组份内的事可以扔给他们的Staff Software Engineer去解决.

非技术方面:负责部门级的活动,比如社区服务, 高校活动等.也负责软工的招聘评定,业务考核,升职评定等.

7 Principal Software Engineer

技术方面: 你是公司的某个产品或者某套基础架构存在的原因. 你是该产品的技术方向的规划者. 你是该产品宏观层面上发现问题(机会)的人.你负责提出问题(需求)给Senior Staff Software Engineer去解决. 同时你是公司宏观战略的参谋和实施者. 你制定和提出某些准则/纲领(比如coding style, design pattern)得到公司级别的认可和推行.

非技术方面: 你负责公司或者大领域范围的组织活动. 你是公司文化的推行者. 你会作为公司某个领域的技术专家代表公司出席一些业内重要会议等.

8 Distinguished Software Engineer

技术方面: 你是某个领域的世界级专家,一般名声已经在外.有个wiki page是标配. 你是公司某方面的技术标准和方向的制定者或决策者.

非技术方面: 公司级别的活动,比如挖业内其他顶级专家, 代表公司利益参与业内标准撕逼等.

9 Fellow

技术方面: 你是公司那些名声在外的产品(大部分会上网的老百姓都知道的)或者技术(全世界码农都在学的)的创造者. 你的产品/技术是这个公司的标志. 公司因你的产品/技术而(更加)闻名于世.

非技术方面: 你是公司技术的代言人.你的一举一动都影响公司形象.你若出了性丑闻整个公司股票都要跌一跌.

10 Senior Fellow

技术方面: 你是公司创立此职位的原因. 你打穿了整个公司的所有等级却还不足以反映你的牛X.

非技术方面: 你是公司的技术之神,全公司(乃至公司外部)技术人员的精神领袖.如果你和CEO必须开一个, 大概率CEO会被开掉.

参考资料

  1. 知乎:你理解的程序员的境界应该是怎么样的?