感觉网上很少有关程序员技术路线的职业规划,然后最近看了一篇,大概翻译了一下 原文https://career-ladders.dev/engineering/
职业规划
我为我所在的的团队使用的职业规划的一个样例,对任何人开源。
一级工程师#
- 完成明确定义的任务,并在有阻塞的情况下进行沟通
- 努力学习相关技术和系统,积极维护和扩展系统
- 虚心地与内部和外部沟通
- 通过完成新功能、重构现有代码或更新系统来贴现自己的价值,从而使其他开发人员能够取得成功
- 帮助调试技术问题。提交问题,以便我们能够记录和改进我们的服务
- 工作经验:无工作经验。
二级工程师#
- 致力于推动更大特性的工程创新,同时注意不要在过程中产生任务延期
- 先发制人的扫描会导致积压。行动包括但不限于:熟悉系统中的疼痛点,应用相关标签和分类,通过拉请求或其他方式关闭它们
- 体谅团队中的其他成员,在工作中尽量支持他人
- 能够熟练地评价同行的工作。这包括要有礼貌,周到,周到,灵活,而不是迂腐
- 倾听他人的优先事项和关切,承认不同的观点。预测他人的反应
- 经验:通常需要至少 2 年的专业经验。
高级工程师
在这一点上,一个人正在体现他作为个人贡献者的效率。
- 定义并执行针对特定功能或内部系统维护 / 升级的执行计划
- 积极参与工程工作,帮助简化我们产品的经验
- 通过结对编程、回顾和提供指导来帮助支持同事的工作
- 根据需要调整优先顺序
- 努力减少任务延期,同时与队友就任何更大的重构进行沟通
- 努力理解团队正在开发的特性的目的,并帮助向团队成员传达这一目的。在期望不明确的时候提出澄清问题
- 当任务很大时,将工作范围缩小到更小的、可操作的部分
- 展示对他人想法的开放性。适应他们的沟通风格,以最有效的沟通。有效和准确地分享想法和合作努力的成果
- 以预期工作范围所需的规模和维护类型的方式编写代码。在创建和审查拉取请求时考虑易读性
- 经验:通常需要至少 5 年的专业经验。
staff工程师#
在这一点上,一个人的大部分时间都花在提升自己的技能以帮助他人上。
- 积极参与会议,并在必要时创建跨团队协作以实现业务目标
- 创建和维护内部文档,以了解他们正在工作的系统的目的和结构。仔细记录不清楚的过程
- 教导同龄人如何建立系统和驱动特性和系统改进的执行计划
- 协调整个团队的工作,而不是在单打独斗。确保人们在不同的项目中感到价值感,并且他们的声音被听到
- 通过工程上的努力使团队快速前进
- 积极主动地沟通问题并做必要的取舍。拥有问题的主导权.
- 管理较大的重构和 / 或系统升级,可以帮助其他人进行相同的工作或参与。能够估计工作范围,当这些估计不准确时,与诸如产品管理之类的利益相关者协调,以解决风险,并获得主导权
- 经验:通常需要至少 8 年的专业经验。
首席工程师#
在这一点上,一个是帮助别人做到最好,放弃自我成就大我?
- 开发经过验证的系统。在整个团队中推广这些系统和方法,以便其他人可以从中学习和改进
- 深厚的行业知识和对技术领域的认识。将这一分析适当地纳入战略
- 不仅仅只是领导,要有提供指导和前瞻性地愿景
- 指导和积极推动技术技能的直接或扩展团队考虑到他们的职业阶段和个人轨迹
- 通过围绕共同的需求或客户利益与他人合作来消除障碍.创建跨组织边界的策略,以实现业务目标或扩大影响力
- 可以预见问题和其影响,他们的想法将对其他人产生影响,并追求互利的战略
- 除了参加会议,深思熟虑地创建和组织有效的会议
- 为一系列工作设定清晰而富有挑战性的目标,并以热情和激情追求它们。理解业务目标,并将其整合到这个工作体系中。严格审查多个计划,并根据需要进行调整
- 通过扩展 / 指导团队来推动可衡量的增长,积极影响工程路线图,管理关键指标,创建研究和 / 或项目
- 与其他团队合作,提高我们内部工具的有效性
- 预测他们周围人的需求。表现出关心他的队友,让其感觉可以在工作时间与他们取得联系。有主动性地写过程文档
- 经验:通常需要至少 10 年的专业经验。
杰出工程师#
- 通过工程任务、开放源码工作或者为产品特性提供支持,确定整个行业范围内缺失的功能,实现那些可以大规模释放客户增长的潜力的功能 .
- 了解他们的活动对公司 OKRs 的影响,并且主动地 根据战略精确地选择需要做什么.
- 在内部和外部积极给予帮助,确保他们的工作被看到。扩展他们的社会资本来帮助其他人
- 在合作时,尤其是在棘手的情况下,要仔细考虑沟通的方式
- 致力于系统架构,思考问题,预测未来的使用情况。构建可扩展到适当数量的系统
- 当出现问题时,有效沟通,理解任何提议的变更的风险和影响。当别人在其他优先事项之外做出权衡时,要善于倾听
- 经验:通常需要至少 12 年的专业经验。
技术主管(还没达到,个人感觉)#
技术主管负责领导一个特定的项目,并对其技术成果的质量负责。
任何人都可以在他们职业生涯的任何阶段成为技术主管。
- 包括大量的项目管理 —— 保证项目准时运行,保证人们工作畅通无阻,当人们陷入困境时向管理层提出建议
- 有时可能涉及到指导员工和结对编程
- 仍然涉及项目的编码 / 参与和 IC 工作。这也可能意味着要填补项目的空白
- 帮助组织和促进与利益相关者的富有成效的正向沟通的会议
- 创建与总体项目目标以及执行方式的一致性。以富有成效的方式引发冲突。此外,一旦设定了产品愿景,就要全力实现它.
- 技术领导温和地执行标准 —— 包括文化和态度。如果团队不协调,技术领导会花时间和工程经理一起引导他们提高生产力