# 工程师段位记

工程师已经逐渐脱离了只需要埋头干好技术活就OK的职业要求了，在职业竞争发展的当下，对工程师这个岗位更深的定位和思考，能帮助自己更精进的成长。

## Good 与 Great

在工作中，如何定义好什么是做好，什么是做得出色呢？

### Good

做完 + 代码质量 + 迭代成本 + 独立思考 + 主动协调 + 独当一面

### Great

Good + 深入专业领域 + 有能力指导其他人 + 前瞻性 + 解决不止自身领域的问题 + 潜移默化影响他人积极向上

高段位要求我们不仅仅把事情做好，更要把事情做得出色。

## 段位、瓶颈与突破

### 初级工程师

* **要求**：初级工程师的能力 >= 独立承担，独立执行
* **核心关注点**：打牢技术基础，坐拥技术广度，挖掘技术深度
* **瓶颈**：被动执行，做完就好
* **提升方面自省**：
  1. **人效**：上班效率行不行？什么是无效加班？时间被浪费在哪里？如何解决？
  2. **业务接口人**：如何跟进需求？如何排期？如何分工？
  3. **质量**：编码质量能更好吗？提测为什么出问题？线上稳定性如何？
  4. **业务理解**：用户是谁？目标是啥？要做什么？业务数据如何解读？
  5. **技术方案**：基于现有业务，如何设计解决方案？技术文档怎么写？可维护性可扩展性高吗？
  6. **沟通&反馈**：80%的问题都是沟通问题，关键是，你知道问题出在哪里吗？
* **思维突破**：

  不管是项目中小修小补的螺丝角色，还是工程里重复劳动的机器人角色，要学会想办法突破资源的限制，想办法把小修小补变得自动化，智能化，从中开拓自己解决问题的角度，从而真切上手实践更多的技术项，提高自己的技术水平；

  自己理解的“业务”还处于一个不成熟的阶段，不要因为解决了一些产品需求就沾沾自喜，时刻戒骄戒躁。

  由点到线，解决问题，把手头的事情做到极致。摒弃浮躁，看长远。

### 高级工程师

* **要求**：高级工程师的能力 >= 初级工程师 + 能思考并实践如何做的更好
* **核心关注点**：积累项目经验，注重架构协同
* **瓶颈**：做自己的事，潜意识设界。
* **提升方面自省**：
  1. **技术能力**：我可以把技术做的更精进吗？我有更多去了解其他领域的技术演变吗？
  2. **对外开放**：我有把我所学所悟跟别人分享吗？我可以做哪些分享给别人？
  3. **主动性**：我遇到问题都是自己解决好的吗？为什么我不可以在问题之前预判问题？
  4. **业务理解**：未来发展会如何？产品这个方案还可以更好吗？
* **思维突破**：

  要想更上一层楼，首先要认识到，在资深以前，主要做的是“汲取”，那么在资深以后，就要学会“反哺”。

  在资深以前，是“叫你去做”，那么在资深以后，是“你要去做”。

  由线到面，提升专项能力。聚焦技术，提升核心竞争力。提前准备，抓住机会。

### 资深工程师

* **要求**：资深工程师的能力 >=高级工程师 + 通过影响和带动他人，帮助业务和团队拿到更多结果
* **核心关注点**：方案体系化建设，Leadership培养
* **瓶颈**：一个人解决问题，解决眼前问题。
* **提升方面自省**：
  1. **开发规范**：我是否很好解决了编码规范、安全规范等层面的问题和缺陷？
  2. **研发流程**：协作模式可以更好吗？我们为什么要强依赖？如何做到解耦分层？
  3. **基础资产**：好像调试工具还不太好用，我能创造一个更好的吗？物料系统要不要搞一个？Web工具就现有的真的够吗？
  4. **性能体验**：加载效率和渲染效率还能不能再提升？人机交互体验可以更好吗？用户感知和引导还能做什么？
  5. **统计监控**：流程控制是否完善？应用报错是否监测到位？异常数据采集分析还能做些什么？
  6. **安全防控**：代码是否合规？包安全性已经达标了吗？
  7. **质量保障**：UI测试可以自动化吗？单元测试覆盖率是否达标？
* **思维突破**：

  关注面更广：提效、用户体验、稳定性、数据能力、前端安全……

  业务支撑力：业务理解、方案评估、时间管理、风险控制、代码质量、复盘沉淀……

  技术创新力：规范标准、方案选项、物料库、平台支撑、工程套件……

  组织成长力：技术分享、分层培训、组织建设、梯队培养、文化建设、管理工具……

  内外影响力：对内赋能、横向影响、对外输出……

## 总结

从初高级工程师到资深工程师，除了要脚踏实地努力之外，最重要的还是要多去了解下在更高层级的人，具备的能力、对自己的要求以及思考方式的角度都是怎么样的。

做事能力和思维方式的螺旋式提升是个人成长的基准线。


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://mm.ricky.moe/blog/engineer-level.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
