《程序员修炼之道:从小工到专家》阅读笔记1
章节主题:注重实效的哲学
注重实效的编程源于注重实效的思考的哲学,这一章就是为这种哲学设立基础。
一、我的源码让猫给吃了
好的程序员应该对自己的职业生涯负责,不害怕承认无知和错误。当问题出现时,应该提供解决方案而不是找蹩脚的借口。"我的源码让猫给吃了"是一个隐喻——它讽刺的是推卸责任的行为。
核心要点:
- 切实担起责任,犯错误时,要诚实地承认
- 不要害怕暴露弱点,在所有弱点中,最大的弱点就是害怕暴露弱点
- 遇到问题时,不要说"做不到",而是想办法挽回局面
- 如果需要额外资源或别人的帮助,大胆提出来
个人思考:代码运行不可能一下就成功,出现bug要学会自己找问题,不要推卸责任或是找借口,一个人最大的魅力就是他解决问题的能力,放在这里也同样适用,目前我们接触的还是小项目,bug还比较好找,应该在这种条件下,培养解决问题的能力,避免将来真正遇到难题时,晕头转向。
二、软件的熵
"熵"是物理学中"无序"的总量。当软件中无序增长时,程序员称之为"软件腐烂"。糟糕的代码就像一栋大楼里破掉的窗户——只要一段时间没修,就会给人废弃感,然后更多的窗户被打破。
核心要点:
- 发现一个"破窗户"就修一个,哪怕暂时不能完美修复,也要用"木板钉起来"(比如加注释)
- 如果项目代码整洁优雅,我们会格外注意不去弄脏它,因为好的环境会约束行为
个人思考: 在网上查看别人的代码时,经常会遇到"前人留下的坑"。而我们为了省事,基本上就是直接复制粘贴,看似简单,但这其实是在喂养熵。正确的做法是提出问题、找到原因、推动解决,如果暂时不知道怎么改,也可以先加个注释作为提示,这样就算出问题也能知道是哪。
三、石头汤与煮青蛙
书中用了两个寓言来说明"催化变化"的力量:
- 石头汤:士兵用一块石头"骗"村民各自贡献食材,最终大家一起喝到了几个月来第一顿饱饭。士兵是团结的催化剂,催生了对所有人都有利的变化。
- 煮青蛙:把青蛙放进冷水慢慢加热,它不会察觉温度变化,直到被煮熟。
核心要点:
- 做变化的催化剂
- 不要像青蛙一样,只关注自己手头的任务,而忽略了周围环境正在发生的变化
- 要持续关注大图景,不要等到"水沸腾了"才发现早该跳出来
个人思考:设法催生变化时,要确定自己是在做石头汤还是青蛙汤,前者是有益的,会带来收获,而后者则可能得到反噬,确定的方法就是不断观察周围发生的事情,而不只是关注自己。
四、足够好的软件
没有完美的软件。"足够好"不是说降低标准,而是说让用户参与决定什么才是足够好。
核心要点:
- 不要许诺不可能兑现的时间标度,也不要为赶上最后期限而削减工程的基本内容
- 尽早交付给用户,他们的反馈会指引我们把软件做得更好
- 用户宁愿用一款"毛边"软件,也不希望等更久才拿到"完美"的软件
- 不要因为过度修饰和过于求精而毁损完好的程序
个人思考:如果不懂得应该何时止步,所有的辛苦劳作都会遭到破坏,就像天外有天,人外有人,不可能有完美的软件。
五、你的知识资产
程序员的知识和经验是最重要的财富,但它们都是有时效的资产。我们要做的就是学会经营自己的资产。
核心要点:
- 定期更新自己的知识库,多元化学习,拓宽知识面
- 根据自身情况制定目标:学一种新语言、读一本技术书、试验不同的环境
- 遇到自己解决不了的问题,就去找能找到答案的人,总之,不要把问题搁在那里
- 批判性思考我们听到和看到的一切,很多知识可能带有作者个人偏见或媒体炒作
六、交流
就算有最好的主意和最漂亮的代码,不与他人交流,最终也会毫无结果。
交流要点清单:
1.知道你想说什么:规划我们想要说的东西,列出大纲
2.了解你的听众:换位思考
3.选择时机
4.选择风格:调整我们的交流风格,去适应听众
5.让文档美观清晰
6.让听众参与:获取他们的反馈,汲取他们的智慧
7.做倾听者:将心比心,如果想让别人听我们讲话,要先学会听他们讲话
8.回复他人
个人思考:交流不是浪费时间,而是在节省时间。良好的沟通会帮助我们更好地了解客户的需求,开发出更适合他们的产品,不要害怕交流。
总结:第1章的哲学可以浓缩为一句话:态度决定一切。技术能力可以通过练习提升,但如果缺乏责任感、不关注质量、不持续学习、不与人沟通,再强的技术也走不远。从"小工"到"专家",第一步是成为一个注重实效的思考者。

浙公网安备 33010602011771号