严谨度
- 目标: 做事严谨,无偏差,完成度高,干净利索
- 相关技能: 目标明确度
- 练习方式:
日报
- 规范的日报编写方式,按照周报的要求
- 从写日报这件小事上就开始规范要求自己
xxx项目:
1. xxx模块:功能开发. 开发完成xxx功能
2. xxx模块:修改优化. 修改xxx问题,对xxx进行优化
3. xxx对接: 接口对接. 对接xxx接口,并对xxx进行测试完善
任务
- 任务本身就是一个项目的小模块
- 对任务的要求应该和正常的项目的要求一致
编码规范
- 编码规范:
- 格式,命名等细节: 降低维护成本,语义化更强,形成有自己风格的编码规则
- 最佳实践: 什么场景用什么解决方案
- 面向未来编程:
- 在听到需求的时候,可以根据自己的业务能力,判断出这些需求中,哪些是有可能变化的,哪些是不太可能变化的
- 针对变化的内容,在编写的过程中,不会写死.而反复确认不可能会变化的需求,会写得简单一些,防止过度设计引起的复杂度
开发流程
- 严格遵守规范的开发流程去完成开发工作
- 将不靠谱的需求放在最后做,防止中途需求变更
- 了解项目的性能指标,学会项目的性能调优
信息获取力
- 目标: 快速准确地获取相关信息,识别和判断有用的信息
- 相关技能:
- 将开源项目运行起来,理解项目代码
- 信息获取力是程序员的重要能力之一,因为技术更新变革的特别快,遇到错误,或者是遇到新的技术框架,需要快速上手使用,或者理解原理
- 信息获取力是一个程序员需要不断优化的技能,前期多是搜索,查看官方文档,越往后,越注重对底层知识的积累,推演和源码的阅读. 越往后,你遇到的问题也越有可能只有很少的的能够遇得到,也提供不出解决方案. 所以这是一个长久持续练习的过程
总结归纳力
- 目标: 消化整理知识点,将散乱无章的知识点归拢成结构,有体系的知识树,明确概念,理清关系,扩充自己的知识库
- 相关技能: 归纳能力
- 每天在学习的过程中,习惯性归纳总结成自己的知识点,用以保证自己知识深海处构建的知识体系的稳固,不混乱
- 这样能够增强自己的理解能力,会不断地强化和固化基本的法则,模式,形成快速解决问题的能力,让自己越来越有经验
每日总结
- 回顾今天完成的事情:
- 遇到的问题本身就是详细的记录自己的困惑,卡壳或者错误的地方
- 程序员总是在错误中成长,每天熟悉的不是异常就是Bug,所以每天遇到问题的多少,就是学会了多少的见证
阶段总结
- 不同的阶段有不同的目标,也有不同的要求
- 除了总结自己过去的得失之外,还要明确下阶段自己期望完成的事情
- 总结归纳能力不仅包括技术上,还包括自己的整体学习和成长度上,任何一个工程师的成长,都不仅是技术的成长
推动力
- 目标: 主动推进事情的进展,去解决问题
- 相关技能: 沟通技巧
- 在工作岗位上,推进的发展是优秀工程师的前提,更是提高自身工作效率的必备能力
- 这是一个需要一件一件事情来反馈,有意识的引导,直到最后变得干净利索的过程
需求理解力
- 目标: 清楚无误的理解需求,并能够迅速的推演出实现方案
- 相关技能: 专注度,理解力,过往经验,技术功底
- 练习方式:
- 程序员在写代码前要保持一个原则 : 不理解的需求不要做
- 理解需求是什么?
- 设计方案是什么?
- 有没有风险?
- 有没有确定不了的技术方案?
- 有没有新的调研功能或者是第三方接口?
- 这些都是工程师需要反复练习才能具备的能力,不但能知道当前的需求应该怎么设计,还能提前预估出未来有什么变化,现有的设计方案支持到什么程度
需求理解
- 需求理解分为两个阶段:
- 一个复盘项目可以摸清所有的流程,一个真实的项目足以固化并且收获经验
定位问题的洞察力
- 目标: 问题出现后,快速定位问题,给出解决方案,多种方式去判断可能的错误代码,并能够第一时间修复
- 相关技能: 项目的熟悉度,基础知识的牢固性.逻辑推演能力和判断力
- 练习方式:
- 程序员的成长就是解决问题的过程:
- 大多数程序员不但要学习正确的路怎么走
- 还要明白错误的路不要走,以及走错了,怎么纠正过来