dpt3/养成计划.md

5.7 KiB
Raw Blame History

0到1级初步了解

参考工时

  • 3K代码的模块5人天。

学习&训练

  1. 基础知识学习
  • 阅读模块的文档和技术手册,重点关注“快速入门”和“核心概念”部分。

  • 学习模块的架构图,理解其主要组件和数据流。

  1. 代码层面了解
  • 选择一个核心功能如模块的初始化流程阅读相关代码约200-300行

  • 通过代码注释和文档,理解关键函数和数据结构的作用。

  1. 简单操作练习
  • 下载模块代码编译并运行单元测试UT记录测试结果。

  • 修改一个简单的UT用例如修改输入参数观察输出变化。

自证明方法

  1. 代码阅读报告
  • 提交一份报告,描述核心代码的功能和调用关系。

  • 报告中需包含对代码逻辑的理解和至少一个疑问。

  1. 操作报告
  • 提交一份操作报告描述UT的编译、运行步骤和结果。

  • 报告中需包含遇到的问题及解决方法。

  1. 展示讲解
  • 在团队会议中用5分钟展示模块的基本功能和代码结构。

  • 回答团队关于模块基础知识和代码逻辑的提问。


1到2级熟悉

参考工时

  • 3K代码的模块9人天。

训练&实践

  1. 任务实践
  • 从Bug跟踪系统中挑选一个低优先级Bug如UI显示错误独立修复并提交代码。

  • 参与一次代码合并解决合并冲突并确保代码通过CI持续集成测试。

  1. 问题定位训练
  • 选择一个已知问题(如模块启动失败),分析日志文件,定位根因。

  • 使用调试工具逐步排查问题,记录排查步骤。

  1. 回溯分析
  • 从Git提交记录中挑选一个历史Bug修复分析修复思路和方法。

  • 撰写一份总结文档,描述问题的根因和修复方案。

  1. 理解依赖和限制
  • 阅读模块的依赖文档,列出模块的上层调用方和下层依赖库。

  • 分析模块的性能测试报告,记录其性能瓶颈和资源消耗。

自证明方法

  1. 任务成果
  • 提交修复Bug的代码并通过代码审查。

  • 撰写任务总结报告描述Bug的修复思路和步骤。

  1. 问题排查报告
  • 提交一份问题排查报告,详细描述问题的定位和解决过程。

  • 报告中需包含日志分析、调试步骤和最终解决方案。

  1. 展示讲解
  • 在团队会议中用10分钟讲解一个历史Bug的修复过程。

  • 分享自己在任务实践中的经验和教训。

  1. 依赖和限制分析
  • 提交一份文档,列出模块的上下层依赖关系和技术限制。

  • 在团队讨论中展示对依赖和限制的理解。


2到3级高级

参考工时

  • 3K代码的模块13人日。

实践&分析

  1. 复杂任务处理
  • 参与模块的核心功能开发(如实现一个新特性),并记录开发过程。

  • 解决一个复杂问题(如内存泄漏),撰写解决方案文档。

  1. 架构理解
  • 绘制模块的架构图,标注主要组件和数据流。

  • 参与模块的设计讨论,提出至少一个改进建议。

  1. 回溯分析
  • 分析模块中过去的高难度问题(如性能波动),总结解决模式。

  • 撰写一份技术文档,描述问题的根本原因和优化方案。

  1. 设计折衷与妥协
  • 在设计和开发过程中,列出两种可行的技术方案,比较其优缺点。

  • 根据项目需求,选择最合适的方案,并撰写选择理由。

自证明方法

  1. 复杂任务成果
  • 提交一个复杂任务的代码,并通过代码审查。

  • 在团队中展示复杂任务的解决方案,并回答技术细节问题。

  1. 架构图与设计文档
  • 提交模块的架构图,并解释各组件的作用和交互。

  • 撰写设计文档,描述对架构的深入理解和改进建议。

  1. 展示讲解
  • 在团队会议中用15分钟讲解一个复杂问题的解决过程。

  • 组织一次技术分享,讲解模块的架构设计和优化思路。

  1. 设计决策文档
  • 提交一份文档,描述设计决策的折衷与妥协,并通过团队评审。

  • 在技术讨论中展示对设计折衷的理解和应用。


3到4级专家

参考工时

  • 非纯学习可达,需要实际历练,时间长度决定于实际需求和工作量。

实践&分析

  1. 技术创新
  • 主导或参与模块的技术创新项目(如引入新技术),并记录项目过程。

  • 提出并实现模块的改进方案(如性能优化),撰写技术方案文档。

  1. 回溯分析
  • 分析模块的历史技术决策,评估其成功或失败的原因。

  • 总结模块的技术演进过程。

  1. 全面掌握依赖和限制
  • 从全局视角分析系统的依赖关系和限制条件,提出优化方案。

  • 在技术决策中,平衡短期需求和长期目标。

自证明方法

  1. 项目成果
  • 提交技术创新项目的成果,并通过团队和上级评审。

  • 展示项目对模块的实际影响(如性能提升、成本降低)。

  1. 展示讲解
  • 向团队讲解模块的技术演进和创新成果。

  • 组织一次技术分享,展示模块的技术深度和未来方向。

  1. 全局设计文档
  • 提交一份技术白皮书,描述系统的依赖关系、限制条件和设计决策。

  • 在技术评审中展示对全局设计的理解和应用。