一、程序员两大类迷茫
1、方向迷茫,要不要继续做技术?2、执行上迷茫:做什么技术,如何持续精进?
判断方法:先确定自己是喜欢做事还是喜欢与人打交道。从个人成就感来源,工作时对时间感受,对开发工作的感受来判定是否适合做开发。
二、在技术上精进
分析现状,确定目标,执行计划。运用对标管理法确定目标。从牛人、一般性规律、技术知识层次、项目指标几个方面寻找标杆。
我们身边一定有人在某方面做得比自己好,比如:
张三设计文档写得结构合理、条理清晰
李四 UML 图表画得准确
王五对 ES6 标准掌握得好
赵六对代码管理门清
钱七架构设计能力超群对产品的架构如数家珍
毛八每天上班前都会列出要完成的三件事下班时都会总结
胡九学习新技术特别快总是在项目组中担任技术预研角色
……
别人做得好的方面,都可能是我们努力的方向。我们要用善于发现的眼睛,找到身边人的突出之处。
在向优秀者对标时,下面的问题清单可以帮助我们有序地、系统的分析标杆:
他在什么事情上做得突出?是怎么做到的?
他有哪些知识、技能是我不具备的?
他有哪些提升效率的工具?
他有哪些好的工作习惯?
对开发者来讲,一年左右经验,多数人处在第一个阶段——专项能力提升的阶段,熟悉某种编程语言,可以完成别人安排的一个小模块的开发。
三年及以上的经验,就应该进入到第二个阶段了。当你在某个技术方向上构建了技能体系,就可以完成相对复杂的工作,可以独立的做一些事情,甚至可以辅导初级开发者来完成工作。这个时候,你往往已经是团队里富有生产力的成员了。
五年往上的开发经验,应该进入到融合创新阶段,能够独当一面,可以独立的完成特定项目的评估、设计、技术方案选择等事情。此时你往往是团队里的技术领袖或者技术管理者,具有比较大的影响力。
假如一个开发者干上八年十年,还到不了第 3 个阶段,可能就需要考虑通过其他方式来提升自己的竞争力,保住自己在团队中的位置。
这个模型更适合应用开发人员,对于做基础研究的开发者,比如音频算法、图像处理算法等,第三个阶段,可能是在他所在的领域内钻得更深,成为专家。
我们了解了技术成长的三个阶段,就可以结合自己的工作情况,判断自己当下处于哪个阶段,该做什么事情。
一般来讲,学习一门技术时,有三个阶段:
基础开发,了解 API,基 于API 开发应用
熟悉内核及原理,主要是了解框架的设计原理,阅读源码,洞悉内在机理
优化框架,主要是针对框架的已有功能的不足进行完善、优化,或者使用框架提供的机制扩展框架功能,或者对框架进行定制,让它适合特定情境
多数技术框架,通过分析,都可以划分出类似上面的知识层次和学习阶段。
以这个作为对标的标杆,就可以弄明白每个阶段应该达到什么程度,还可以定位自己处在哪个阶段,当前阶段的任务有没有完成,接下来该该学什么。
开发者的工作往往是由一个又一个的项目串起来的,每个项目都会有预期结果,都会界定怎么样才算是完成,然后会有一系列的指标用于衡量项目做得怎么样,比 如 Bug 率、延期时间、并发用户数、持续运行时间、单元测试覆盖率、安全性等。
我们在做项目时,就可以用这些指标来要求自己,这样你每个项目都有目标,都可以制定一些策略,帮助自己来实现这些目标。
如果我们以项目指标来要求自己,把项目指标分解到开发工作中,并且在开发过程中贯彻执行,我们的收获一定比被动完成任务多得多。
我们在运用个人对标管理法时,一定要理性,结合自己的长远目标,否则就会今天想学这个明天想学那个,久而久之什么也没学透。
当你能从目标分解出能够立刻开始的下一步行动序列(最少3个),就可以做起来。做完一个,分解一个新的下一步行动,加入到行动序列中,然后开始新的下一步行动。这样跑起来,你的目标就会稳步实现。
制定SMART目标,并从中分解出至少三个立刻就能开始做的下一步行动序列,行动更新
三、精进的四个习惯
对标管理
每日三个问题:我完成了什么,遇到了什么问题,明天做什么
刻意练习:设定目标,行动,反馈,修正。
复盘:预期是什么,现状,执行过程分析,如何更好。
使用对标管理法为自己找到提升目标
通过刻意练习来提升
三个问题让你每天有目标,实现日有寸进
运用复盘来成长
四、推荐书单
《代码大全》
《重构》
《人月神话》
《程序开发心理学》
《程序员修炼之道,从小工道专家》
《高效程序员的45个习惯,敏捷开发修炼之道》
《高效能程序员的修炼》
《你好哇,程序员》
《软技能,代码之外的生存之道》
《做事的常识》
《干法》
《程序员的职业素养》
《程序员的思维修炼》
《复盘》
网友评论