8、抽象
8.5 如何进行抽象
8.5.1 寻找共性
8.5.2 提升抽象层次
8.5.3 构筑金字塔
要自上而下地思考,总结概括;自下而上地表达,结论先行。自下而上总结概括的过程就是抽象的过程。
8.6 如何提升抽象思维
8.6.1 多阅读
8.6.2 多总结
8.6.3 领域建模训练
9、分治
9.3 写代码的两次创造
此处我觉得真正在实际工作中应该尽量在第一次就有意识地优化,大多数情况下两次创造过于理想化,不过可以借鉴这种思想,写完代码后习惯性地看看是否有可优化的地方。
命名合理吗?职责单一吗?满足OCP吗?函数是否过长?抽象是否合理?
9.4 分支模式
责任链模式、装饰者模式
10、技术人的素养
10.1 不教条
10.1.1 瀑布还是敏捷
我们需要在大设计和无设计之间找到一种平衡
10.1.2 贫血还是充血
问题的核心不在于行为和数据是否在一起,而在于你能够有效地控制复杂度。
10.2 批判性思维
批判性思维要求我们保持思考的自主性和逻辑的严密性,不被动地全盘接受,也不刻意地带着偏见去驳斥一个观点。
10.3 成长型思维
成长性思维 | 固定性思维 |
---|---|
1、我的态度和汗水决定了一切 | 1、我的聪明才智决定了一切 |
2、我可以学会任何我想学的东西 | 2、我擅长某些事,不擅长另外一些事 |
3、我想要挑战我自己 | 3、我不想尝试我可能不擅长的东西 |
4、当我失败的时候,我学会很多东西 | 4、如果我失败了,我就无地自容 |
5、我希望你表扬我很努力 | 5、我希望你表扬我很聪明 |
6、如果别人成功了,我会受别人的启发 | 6、如果别人成功了,他会威胁我 |
10.4 结构化思维
1)逻辑:演绎顺序、时间(步骤)顺序、空间顺序(结构)顺序、程度(重要性)顺序;
2)套路:Why、Who、When、Where、What、How、How much。
10.4.1 如何落地新团队
10.4.2 如何做晋升述职
提出问题->定义问题->分析问题->解决问题->展望未来
zoom in/zoom out
10.5 工具化思维
偷懒3个境界
1)实在懒
2)开明懒,迅速做完不喜欢的任务
3)智慧懒,编写某个工具来完成不喜欢的任务
10.6 好奇心
学习的动力不应该来自于外界的强力,而应该来自于内在,来自于我们内心对知识的渴望、对世界的好奇心。
10.7 记笔记
如何记笔记
1)使用云笔记
2)归类分组
3)不要复制粘贴
4)结构化表达
10.8 有目标
有目标的学习
10.9 选择的自由
积极主动的人有选择的自由,而消极被动的人往往只是被动地接受影响。
10.10 平和的心态
做事要积极,但是心态要放平。
10.11 精进
1^365 = 1
1.01^365 = 37.8
0.99^365 = 0.03
11、技术Leader的修养
11.1 技术氛围
代码好坏味道、技术分享、CR周报、读书会
11.2 目标管理
SMART原则:Specific、Measurable、Attainable、Relevant、Time bound。
11.3 技术规划
技术规划更多的是从团队视角去看待接下来要做的事情,而目标管理是要把规划要做的事情进行拆解,和个人目标对齐。
四个层次
当前问题->技术领域->业务领域->团队特色
11.6 视人为人
对待上级-有胆量
对待平级-有肺腑
对待下级-有心肝