要想成为优秀的工程师 如果成为一名优秀的工程师

工程师学习技能和职业技能的培养

  • 严谨度
      • 日报
      • 任务
      • 编码规范
      • 开发流程
  • 信息获取力
  • 总结归纳力
      • 每日总结
      • 阶段总结
  • 推动力
  • 需求理解力
      • 需求理解
  • 定位问题的洞察力

要想成为优秀的工程师 如果成为一名优秀的工程师

文章插图
严谨度
  • 目标: 做事严谨,无偏差,完成度高,干净利索
  • 相关技能: 目标明确度
  • 练习方式:日报任务编码规范开发流程
日报
  • 规范的日报编写方式,按照周报的要求
  • 从写日报这件小事上就开始规范要求自己
【要想成为优秀的工程师 如果成为一名优秀的工程师】xxx项目:1. xxx模块:功能开发. 开发完成xxx功能2. xxx模块:修改优化. 修改xxx问题,对xxx进行优化3. xxx对接: 接口对接. 对接xxx接口,并对xxx进行测试完善
任务
  • 任务本身就是一个项目的小模块
  • 对任务的要求应该和正常的项目的要求一致
编码规范
  • 编码规范:
    • 格式,命名等细节: 降低维护成本,语义化更强,形成有自己风格的编码规则做好封装,保证高内聚,低耦合
    • 最佳实践: 什么场景用什么解决方案认真对待代码中的warning, 精益求精
  • 面向未来编程:在听到需求的时候,可以根据自己的业务能力,判断出这些需求中,哪些是有可能变化的,哪些是不太可能变化的针对变化的内容,在编写的过程中,不会写死.而反复确认不可能会变化的需求,会写得简单一些,防止过度设计引起的复杂度
开发流程
  • 严格遵守规范的开发流程去完成开发工作
  • 将不靠谱的需求放在最后做,防止中途需求变更
  • 了解项目的性能指标,学会项目的性能调优
信息获取力
  • 目标: 快速准确地获取相关信息,识别和判断有用的信息
  • 相关技能:任务复盘项目真实项目
  • 将开源项目运行起来,理解项目代码
  • 信息获取能力是程序员的重要能力之一,因为技术更新变革的特别快,遇到错误,或者是遇到新的技术框架,需要快速上手使用,或者理解原理
  • 信息获取力是一个程序员需要不断优化的技能,前期多是搜索,查看官方文档,越往后,越注重对底层知识的积累,推演和源码的阅读. 越往后,你遇到的问题也越有可能只有很少的的能够遇得到,也提供不出解决方案. 所以这是一个长久持续练习的过程

要想成为优秀的工程师 如果成为一名优秀的工程师

文章插图
总结归纳力
  • 目标: 消化整理知识点,将散乱无章的知识点归拢成结构,有体系的知识树,明确概念,理清关系,扩充自己的知识库
  • 相关技能: 归纳能力
  • 每天在学习的过程中,习惯性归纳总结成自己的知识点,用以保证自己知识深海处构建的知识体系的稳固,不混乱
  • 这样能够增强自己的理解能力,会不断地强化和固化基本的法则,模式,形成快速解决问题的能力,让自己越来越有经验
每日总结
  • 回顾今天完成的事情:
    • 完成了哪些模块
    • 遇到的问题和收获
  • 遇到的问题本身就是详细地记录自己的困惑,卡壳或者错误的地方
  • 程序员总是在错误中成长,每天熟悉的不是异常就是Bug,所以每天遇到问题的多少,就是学会了多少的见证
阶段总结
  • 不同的阶段有不同的目标,也有不同的要求
  • 除了总结自己过去的得失之外,还要明确下阶段自己期望完成的事情
  • 总结归纳能力不仅包括技术上,还包括自己的整体学习和成长度上,任何一个工程师的成长,都不仅是技术的成长
推动力
  • 目标: 主动推进事情的进展,去解决问题
  • 相关技能: 沟通技巧
  • 在工作岗位上,推进的发展是优秀工程师的前提,更是提高自身工作效率的必备能力
  • 这是一个需要一件一件事情来反馈,有意识地引导,直到最后变得干净利索的过程
需求理解力
  • 目标: 清楚无误的理解需求,并能够迅速地推演出实现方案
  • 相关技能: 专注度,理解力,过往经验,技术功底
  • 练习方式:任务需求理解
  • 程序员在写代码前要保持一个原则 : 不理解的需求不要做理解需求是什么?设计方案是什么?有没有风险?有没有确定不了的技术方案?有没有新的调研功能或者是第三方接口?
  • 这些都是工程师需要反复练习才能具备的能力,不但能知道当前的需求应该怎么设计,还能提前预估出未来有什么变化,现有的设计方案支持到什么程度
需求理解
  • 需求理解分为两个阶段:
    • 明白做什么和为什么
    • 要把所有的异常情况都考虑清楚
  • 一个复盘项目可以摸清所有的流程,一个真实的项目足以固化并且收获经验
定位问题的洞察力
  • 目标: 问题出现后,快速定位问题,给出解决方案,多种方式去判断可能的错误代码,并能够第一时间修复
  • 相关技能: 项目的熟悉度,基础知识的牢固性.逻辑推演能力和判断能力
  • 练习方式:复盘项目
  • 程序员的成长就是解决问题的过程:
    • 大多数程序员不但要学习正确的路怎么走
    • 还要明白错误的路不要走,以及走错了,怎么纠正过来

要想成为优秀的工程师 如果成为一名优秀的工程师

文章插图