引言
笔者从事软件开发工作已有 10 多年了,可以算得上软件开发领域的一名老兵。在软件开发领域,前辈们积累了非常多的有价值的开发经验,那么在一个老兵眼中,最有价值的 12 条开发经验是什么?
你永远不可能什么都知道
- 立足于擅长的东西,打造个人标签
- 因需而学,问题驱动
- 保持清醒,维持学习的动力
好的团队可以让你的能力呈指数增长
- 独立工作会把你局限在自己的能力范围内
- 交谈和讨论可以影响你的思维过程
- 工作比个人完成的更快,过程也更快乐
好的代码应该易于理解易于修改
- 先实现功能,根据性能测试报告再针对性的做代码优化
- 不要过早优化,更不要过度优化,必要时添加注释
- 深刻理解“破窗理论”和“童子军军规”,并持续实践
好的架构师是优秀的程序员
- 从“问题”出发,寻求最合适的技术去低成本解决“问题”,避免从“技术“出发使”问题“变得复杂,防止”技术热情“的蔓延
- “过渡繁忙”不是一个好的状态,需要“忙里偷闲”,定期刷新架构知识和技能,否则老本很快会被吃光
- 好的架构不是预先设计出来的,而重构是达成它的唯一方式,不同的人因为背景和经验的差异而导致演进的节奏不同,但最终目标是相同的,收益最大化
- 每天坚持 coding,保持对代码的 feeling,并不是舍不得丢弃这种技能,而是为了设计更接地气的架构,与程序员产生共鸣与共振,从而降低系统的维护成本
耐心是你最好的朋友
- 不管是开发特性,还是 fix bug,或者学东西,感觉时间会超出预期
- 非紧急重要的任务可以推迟到明天或后天完成,不要熬夜,恰恰要按时作息,保证充足睡眠
- 管理者不要对开发人员的期望过高,不要设定太过激进或不切实际的最后期限,软件交付并非越快越好
- 保持耐心,不要把自己长期置于压力之下,否则会对你造成伤害
- 保持冷静,整理思路,形成想法,工作会越来越出色,经验会越来越丰富
持续性是关键
- 持续性做某件事,可以帮助你成为专家
- 每天投入 15 分钟或 1 个小时胜过一次性投入 20 个小时
- 不断的重复做某件事,你的大脑慢慢地习得了相应的模式并保存了下来,让你成为专家
向比你更优秀的人学习
- 技术领域非常宽广,你无法什么都学会
- 你和同事有各自的知识优势,可以互相学习,从而将别人的优势转化成自己的优势
- 既要学习成功的经验,也要学习失败的教训
社交网络很重要
- 走出去,和人建立联系
- 让别人了解自己,会不断的为你带来学习、工作和互动的机会
经常休息可以让你更高效
- 如果没有遇到困难,你可以一直在编码或工作,而没注意到时间的流逝,但是你的大脑需要经常休息
- 休息有助于大脑恢复体力,处理先前摄入的信息
- 可以定期休息,比如每小时休息 5 分钟,四小时后可以休息 30 分钟,也可以事件驱动休息,比如累了,效率下降了,注意力不集中了,就休息一下
- 事实证明,每隔一段时间休息一下大脑可以让你更快的完成工作,记住 7 + 1 > 8
要有很好的人缘
- 与同事和管理者经常交流,增进彼此间的了解,建立起良好的关系
- 谦虚内敛,乐于帮助他人
学会深度思考
- 遇到复杂问题时,像剥洋葱一样逐层分析
- 从被动接受到主动学习,从低成长区跨越到高成长区
- 让自己冷静下来,看清问题的本质
- 战术上的勤奋和战略上的优化同时推进
- 刻意练习深度思考的能力,使之成为习惯
没有完美的公司
- 每个公司都有问题,即使世界一流的高科技公司,也会有这样那样的问题
- 并非所有同事都和你想象的那样是顶级的,他们就是普通的开发者,不会什么都知道,并且会犯错
- 不要动不动就要改变世界,有些工作比较无聊,遇到的问题也没有那么难,但这些工作需要做得非常好
- 不要抱怨,要全心全力和公司一起成长
小结
本文站在一个老兵的角度,简单梳理了软件开发中最有价值的 12 条开发经验,希望对读者有一定的帮助。
软件开发人员不仅要面临高强度的工作,还要面临高强度的学习。软件开发领域的技术更迭速度比较快,长时间不更新知识结构就会有被行业淘汰的风险,这对软件开发人员来说是导致焦虑的一个重要原因。我们要吃透软件开发中最有价值的 12 条开发经验,停止焦虑,健康快乐的成长,真正胜任软件开发工作,并具有较强的竞争力。