diff --git a/养成计划.md b/养成计划.md index da42a8e..e60ce22 100644 --- a/养成计划.md +++ b/养成计划.md @@ -1,216 +1,240 @@ -### **0到1级:初步了解** +#### **0到1级:初步了解** + +**参考工时** + +- 3K代码的模块,5人天。 **学习&训练**: 1. **基础知识学习**: - - - 阅读模块的文档和技术手册,重点关注“快速入门”和“核心概念”部分。 - - - 学习模块的架构图,理解其主要组件和数据流。 - -2. **代码层面了解**: - - - 选择一个核心功能(如模块的初始化流程),阅读相关代码(约200-300行)。 - - - 通过代码注释和文档,理解关键函数和数据结构的作用。 - -3. **简单操作练习**: - - - 下载模块代码,编译并运行单元测试(UT),记录测试结果。 - - - 修改一个简单的UT用例(如修改输入参数),观察输出变化。 - -**证明方法**: +- 阅读模块的文档和技术手册,重点关注“快速入门”和“核心概念”部分。 + +- 学习模块的架构图,理解其主要组件和数据流。 + + +2. **代码层面了解**: + +- 选择一个核心功能(如模块的初始化流程),阅读相关代码(约200-300行)。 + +- 通过代码注释和文档,理解关键函数和数据结构的作用。 + + +3. **简单操作练习**: + +- 下载模块代码,编译并运行单元测试(UT),记录测试结果。 + +- 修改一个简单的UT用例(如修改输入参数),观察输出变化。 + + +**自证明方法**: 1. **代码阅读报告**: + +- 提交一份报告,描述核心代码的功能和调用关系。 - - 提交一份1-2页的报告,描述核心代码的功能和调用关系。 - - - 报告中需包含对代码逻辑的理解和至少一个疑问。 - +- 报告中需包含对代码逻辑的理解和至少一个疑问。 + + 2. **操作报告**: + +- 提交一份操作报告,描述UT的编译、运行步骤和结果。 - - 提交一份操作报告,描述UT的编译、运行步骤和结果。 - - - 报告中需包含遇到的问题及解决方法。 - +- 报告中需包含遇到的问题及解决方法。 + + 3. **展示讲解**: + +- 在团队会议中,用5分钟展示模块的基本功能和代码结构。 + +- 回答团队关于模块基础知识和代码逻辑的提问。 - - 在团队会议中,用5分钟展示模块的基本功能和代码结构。 - - - 回答团队关于模块基础知识和代码逻辑的提问。 - --- -### **1到2级:熟悉** +#### **1到2级:熟悉** + +**参考工时** + +- 3K代码的模块,9人天。 **训练&实践**: 1. **任务实践**: + +- 从Bug跟踪系统中挑选一个低优先级Bug(如UI显示错误),独立修复并提交代码。 - - 从Bug跟踪系统中挑选一个低优先级Bug(如UI显示错误),独立修复并提交代码。 - - - 参与一次代码合并,解决合并冲突并确保代码通过CI(持续集成)测试。 - +- 参与一次代码合并,解决合并冲突并确保代码通过CI(持续集成)测试。 + + 2. **问题定位训练**: + +- 选择一个已知问题(如模块启动失败),分析日志文件,定位根因。 - - 选择一个已知问题(如模块启动失败),分析日志文件,定位根因。 - - - 使用调试工具(如GDB、IDE调试器)逐步排查问题,记录排查步骤。 - +- 使用调试工具逐步排查问题,记录排查步骤。 + + 3. **回溯分析**: + +- 从Git提交记录中挑选一个历史Bug修复,分析修复思路和方法。 - - 从Git提交记录中挑选一个历史Bug修复,分析修复思路和方法。 - - - 撰写一份总结文档,描述问题的根本原因和修复方案。 - +- 撰写一份总结文档,描述问题的根因和修复方案。 + + 4. **理解依赖和限制**: + +- 阅读模块的依赖文档,列出模块的上层调用方和下层依赖库。 + +- 分析模块的性能测试报告,记录其性能瓶颈和资源消耗。 - - 阅读模块的依赖文档,列出模块的上层调用方和下层依赖库。 - - - 分析模块的性能测试报告,记录其性能瓶颈和资源消耗。 - **自证明方法**: 1. **任务成果**: + +- 提交修复Bug的代码,并通过代码审查。 - - 提交修复Bug的代码,并通过代码审查。 - - - 撰写任务总结报告,描述Bug的修复思路和步骤。 - +- 撰写任务总结报告,描述Bug的修复思路和步骤。 + + 2. **问题排查报告**: + +- 提交一份问题排查报告,详细描述问题的定位和解决过程。 - - 提交一份问题排查报告,详细描述问题的定位和解决过程。 - - - 报告中需包含日志分析、调试步骤和最终解决方案。 - +- 报告中需包含日志分析、调试步骤和最终解决方案。 + + 3. **展示讲解**: + +- 在团队会议中,用10分钟讲解一个历史Bug的修复过程。 - - 在团队会议中,用10分钟讲解一个历史Bug的修复过程。 - - - 分享自己在任务实践中的经验和教训。 - +- 分享自己在任务实践中的经验和教训。 + + 4. **依赖和限制分析**: + +- 提交一份文档,列出模块的上下层依赖关系和技术限制。 + +- 在团队讨论中展示对依赖和限制的理解。 - - 提交一份文档,列出模块的上下层依赖关系和技术限制。 - - - 在团队讨论中展示对依赖和限制的理解。 - --- -### **2到3级:高级** +#### **2到3级:高级** + +**参考工时** + +- 3K代码的模块,13人日。 **实践&分析**: 1. **复杂任务处理**: + +- 参与模块的核心功能开发(如实现一个新特性),并记录开发过程。 - - 参与模块的核心功能开发(如实现一个新特性),并记录开发过程。 - - - 解决一个复杂问题(如内存泄漏),撰写解决方案文档。 - +- 解决一个复杂问题(如内存泄漏),撰写解决方案文档。 + + 2. **架构理解**: + +- 绘制模块的架构图,标注主要组件和数据流。 - - 绘制模块的架构图,标注主要组件和数据流。 - - - 参与模块的设计讨论,提出至少一个改进建议。 - +- 参与模块的设计讨论,提出至少一个改进建议。 + + 3. **回溯分析**: + +- 分析模块中过去的高难度问题(如性能波动),总结解决模式。 - - 分析模块中过去的高难度问题(如性能瓶颈),总结解决模式。 - - - 撰写一份技术文档,描述问题的根本原因和优化方案。 - +- 撰写一份技术文档,描述问题的根本原因和优化方案。 + + 4. **设计折衷与妥协**: + +- 在设计和开发过程中,列出两种可行的技术方案,比较其优缺点。 + +- 根据项目需求,选择最合适的方案,并撰写选择理由。 - - 在设计和开发过程中,列出两种可行的技术方案,比较其优缺点。 - - - 根据项目需求,选择最合适的方案,并撰写选择理由。 - **自证明方法**: 1. **复杂任务成果**: + +- 提交一个复杂任务的代码,并通过代码审查。 - - 提交一个复杂任务的代码,并通过代码审查。 - - - 在团队中展示复杂任务的解决方案,并回答技术细节问题。 - +- 在团队中展示复杂任务的解决方案,并回答技术细节问题。 + + 2. **架构图与设计文档**: + +- 提交模块的架构图,并解释各组件的作用和交互。 - - 提交模块的架构图,并解释各组件的作用和交互。 - - - 撰写设计文档,描述对架构的深入理解和改进建议。 - +- 撰写设计文档,描述对架构的深入理解和改进建议。 + + 3. **展示讲解**: + +- 在团队会议中,用15分钟讲解一个复杂问题的解决过程。 - - 在团队会议中,用15分钟讲解一个复杂问题的解决过程。 - - - 组织一次技术分享,讲解模块的架构设计和优化思路。 - +- 组织一次技术分享,讲解模块的架构设计和优化思路。 + + 4. **设计决策文档**: + +- 提交一份文档,描述设计决策的折衷与妥协,并通过团队评审。 + +- 在技术讨论中展示对设计折衷的理解和应用。 - - 提交一份文档,描述设计决策的折衷与妥协,并通过团队评审。 - - - 在技术讨论中展示对设计折衷的理解和应用。 - --- -### **3到4级:专家** +#### **3到4级:专家** + +**参考工时** + +- 非纯学习可达,需要实际历练,时间长度决定于实际需求和工作量。 **实践&分析**: 1. **技术创新**: + +- 主导或参与模块的技术创新项目(如引入新技术),并记录项目过程。 - - 主导或参与模块的技术创新项目(如引入新技术),并记录项目过程。 - - - 提出并实现模块的改进方案(如性能优化),撰写技术方案文档。 - -2. **领导能力培养**: +- 提出并实现模块的改进方案(如性能优化),撰写技术方案文档。 - - 带领团队完成模块的开发或优化任务,记录项目管理过程。 - - - 指导其他工程师,参与技术决策和架构设计,并撰写指导文档。 - -3. **回溯分析**: + +2. **回溯分析**: + +- 分析模块的历史技术决策,评估其成功或失败的原因。 - - 分析模块的历史技术决策,评估其成功或失败的原因。 - - - 撰写一份技术白皮书,总结模块的技术演进过程。 - -4. **全面掌握依赖和限制**: +- 总结模块的技术演进过程。 + + +3. **全面掌握依赖和限制**: + +- 从全局视角分析系统的依赖关系和限制条件,提出优化方案。 + +- 在技术决策中,平衡短期需求和长期目标。 - - 从全局视角分析系统的依赖关系和限制条件,提出优化方案。 - - - 在技术决策中,平衡短期需求和长期目标。 - **自证明方法**: 1. **项目成果**: + +- 提交技术创新项目的成果,并通过团队和上级评审。 - - 提交技术创新项目的成果,并通过团队和上级评审。 - - - 展示项目对模块的实际影响(如性能提升、成本降低)。 - -2. **领导能力证明**: +- 展示项目对模块的实际影响(如性能提升、成本降低)。 - - 提交项目管理记录,展示任务分配、进度跟踪和风险管理能力。 - - - 通过团队反馈证明领导能力(如沟通能力、决策能力)。 - -3. **展示讲解**: + +2. **展示讲解**: + +- 向团队讲解模块的技术演进和创新成果。 - - 向团队或公司高层讲解模块的技术演进和创新成果。 - - - 组织一次大型技术分享,展示模块的技术深度和未来方向。 - -4. **全局设计文档**: +- 组织一次技术分享,展示模块的技术深度和未来方向。 - - 提交一份技术白皮书,描述系统的依赖关系、限制条件和设计决策。 - - - 在技术评审中展示对全局设计的理解和应用。 \ No newline at end of file + +3. **全局设计文档**: + +- 提交一份技术白皮书,描述系统的依赖关系、限制条件和设计决策。 + +- 在技术评审中展示对全局设计的理解和应用。 \ No newline at end of file