精益求精:创建软件开发领域的职业优势
多点组合、日积月累、持之以恒、精益求精。
投资思维与边际思维
经济和交易是人类社会的基本驱动力,而软件开发是经济交易的一种形式。因此,有必要将软件开发纳入到经济的范畴,用经济学的思维来指导软件开发。
经济学思维中最重要的两种思维是投资思维和边际思维。投资思维是战略思维,确定要做什么;边际思维是战术思维,确定要怎么做。
投资思维
确定最值得花费时间投入的事情,并聚焦于此。
- 规划决策:确定 ROI 高、影响力大、打下良好基础、具有奠基性意义的事情。
- 知识体系建设: 如何做编程知识投资及减少知识失效的影响 。
- 学习和实践 AI 技术。
边际思维
边际成本思维
- 合理分配和投入时间,产出和效益最大化。
- 建立和测试合理的生产可能性曲线。
- 从边际成本角度思考程序员职业
边际优化思想
通过大量小的边际改善和边际优势,汇聚成独特的有力的职业优势。通俗来说,就是“多点组合、日积月累、持之以恒、精益求精”。
该思想受启发于:《黑匣子思维》第四部分最优化循环。
“如果你把一个宏大的目标分解成许多小部分,然后对每个部分加以改进,再把它们结合起来,你将获得巨大的进步。”
选择进化法则
通过大量随机的小的选择和测试,优胜劣汰,创建具备适应力的生命。
具体实践
创建边际优势
建立内核,迭代优化。
- 思维认知: 在全局观、系统观、完整性、周密性、严谨性的思考上再进步一点点,创建思维能力的边际优势。
- 设计经验: 在设计考量(性能、稳定性、可复用、可扩展、高可用、一致性、系统架构)上再完整细致一点点,在设计实践上多做一点点,创建系统设计实践的经验边际优势。
- 原理实现:对原理和实现多掌握一个,多一分理解和驾驭软件运行的边际优势。
- 技术选型:在选型上考量再切合实际一点点,创建技术决策的边际优势。
- 技术方案: 对技术方案的原理、实现、细节、优缺点、适用范围的理解再深入一点点,创建技术方案评审的边际优势。
- 数据结构与算法:多学一种数据结构与算法,创建充分利用内存的微技能边际优势。
- 编程语言:对编程语言的理解和应用更多一点点,创建编程表达能力的边际优势;
- 代码编写: 每一次编程,代码表达技艺再进步一点点,创建编程表达能力的边际优势。
- 代码检查: 每一次代码提交,检查再仔细一些,创建 Code review 的边际优势。
- 质量改进: 每一次开发,在质量上考虑再多一点点,创建质量的边际优势。
- 技术写作:每一次编写技术文档时,再简明易懂一点点,创建写作的边际优势。
- 工具箱: 每增加一个工具,即增一分能力,创建工具的边际优势。
- 代码库:每增加一段优秀的通用代码,即增加一分开发效率的边际优势。
- 源代码阅读: 每增一分源代码阅读能力,即增加一分从优秀作品中学习的边际优势。
- AI: 每运用 AI 提升做一件事的效率,即增加 AI 协作的效率边际优势。
- 沟通与协作: 耐心和理解再多一点点,创建沟通与协作的边际优势。
- 问题处理: 在处理问题的多样性和复杂性上再丰富一点点,创建问题处理经验的边际优势。
- 团队:在团队协作上再增进一点点,创建团队协作的边际优势。
- 面试: 在每一次面试的交流和谈判上再进步一点点,创建面试的边际优势。
- 项目管理: 在每一次项目管理的可控度和风险管理上再进步一点点,创建项目管理的边际优势。
- 需求理解:在需求理解和沟通上再耐心深入一点点,创建需求理解的边际优势。
- 产品设计:对产品设计再多了解一点点,创建产品设计的边际优势。
- 商业模式:对商业模式多了解一分,多一分理解自己所做事情的意义和价值的信念边际优势。
程序员的能力与技能
避开与年轻人的竞争
年轻人的优势: 潜力、创造力、精力和冲劲。
大龄程序员的优势: 思维认知、设计和实战经验、技术和质量积累。
大龄程序员应当在如下方面积累优势:
思维认知、设计经验、技术选型、技术方案、质量改进、AI、问题处理、项目管理、商业模式。