专栏链接:https://time.geekbang.org/column/intro/148
程序员的三大美德
懒惰、急躁、傲慢:
- 懒惰:它会使你花很大力气去规避过度的精力消耗,敦促你写出节省体力的程序。
- 别人也能很好地利用,你还会为此写出完善的文档,以免别人来问问题。
- 急躁:是计算机偷懒时,你会感到的一种愤怒。
- 它会促使你写出超越预期的程序,而不只是响应需求。
- 傲慢:极度自信,写出(或维护)别人挑不出毛病的程序。
本质复杂度和偶然复杂度
本质复杂度就是解决一个问题时,无论怎么做都必须要做的事。
偶然复杂度是因为选用的做事方法不当,而导致要多做的事。
大部分程序员忙碌解决的问题,都不是程序问题,而是由偶然复杂度导致的问题。
- 如何减少偶然复杂度引发的问题,让软件开发工作有序、高效地进行。
任务分解
艾森豪威尔矩阵:
- 将事情按照:重要 和 紧急 程度进行划分,成四个象限:
- 重要且紧急的事情要立即做。
- 重要但不紧急的事情应该是重点投入精力的地方。
- 紧急但不重要的事情,可以委托别人做。
- 不重要且不紧急的事情,尽量少做
最小可行产品:
- 刚刚好满足客户需求的产品。
- 在实践中,用最小的代价找到一条可行的路径。
让知识更有结构
金字塔原理,从中心论点到分论点再到论据:
- 结论先行(一次表达只支持一个思想,且出现在开头)
- 以上统下(任一层次上的思想都必须是下一层思想的总结概括)
- 归类分组(每组中的思想都必须属于同一范畴)
- 逻辑递进(每组中的思想都必须按照逻辑顺序排列)
会议重点
写事实,不要写感受:
- 事实就是明摆在那里的东西,而感受无法衡量
重点关注可改进的部分,按照优先级讨论(一般只挑出最重要的几个)
通过多个为什么,一步步找到根因
尝试着找出解决方案,一系列行动项,所有的行动项都是可检查的,可验证实现的内容
验证行动项的完成情况
学习区学习模型
舒适区,舒适而缺乏成长
恐慌区,超出能力范围
学习区,有难度而可以达成
在学习区练习才能得到足够的成长
编写代码的进阶路径
编写可以运行的代码
编写符合代码规范的代码
编写人可以理解的代码
用业务语言写代码:
- 贴近实际应用现场,例如起名字贴近实际应用业务而非代码中面向实现的名字
- DDD领域驱动设计
T型人才一专多能
知识的广度
专业技能的深度
面对新工作
业务:做什么
技术:怎么做
团队运作:怎么与人协作
由大到小,由内及外地了解工作
程序员的职业发展
程序员的焦虑来自于对未来的不确定性,这种不确定性是一个特定时代加上特定行业的产物
- 快速发展的中国经济
- 程序员在中国是一个新兴职业
成为行业专家,制定高目标
向大师学习,开拓视野
找到好的问题,和高水平的人一起工作