好奇的探索者,理性的思考者,踏实的行动者。
Table of Contents:
本篇为云风翻译的《程序员修炼之道——通往务实的最高境界》第二版的读书笔记
利用晚上和周末的时间,用了大约一个月,断断续续地读完了,收获颇丰。期待第二次翻开这本书时,那个已经变化了的世界和我,有不一样的感悟。下面是完整的笔记:
主动改变
责任、坦诚
破窗效应:一扇破损的窗户,只要一段时间不修理,建筑中的居民就会潜移默化地产生一种被遗弃的感觉——当权者不关心这幢建筑的感觉。然后其他的窗户也开始损坏,居民开始乱丢废物,墙上开始出现涂鸦,建筑开始出现严重的结构性损坏。心理学家的研究表明,绝望是会传染的,就像狭窄空间中的流感病毒。无视一个明显损坏的东西,会强化这样一种观念:看来没有什么是能修好的,也没人在乎,一切都命中决定了。所有的负面情绪会在团队成员间蔓延,变成恶性循环。
软件规模带来的后增的重量
展示前景,做推动变革的催化剂
知道何时止步
知识与想法的交叉传授
优秀的设计比糟糕的设计更容易变更(Easy to Change)
作为程序员,我们做的就是收集、组织、维护以及治理知识。我们把知识文档化,写进规范;通过运行代码赋予知识以活力;在测试过程中,运用知识去知道应提供哪些检查。不幸的是,知识并不稳定。知识会改变——通常频率还很高。
在一个系统中,每一处知识都必须单一、明确、权威地表达
学习一门文本处理语言
试着拥有一本工程日记
所有程序其实都是对数据的一种变换——将输入转换成输出。然而,当我们在构思设计时,极少考虑创建变换过程。相反,我们操心的是类和模块、数据结构和算法、语言和框架。
本能就是我们的无意识大脑对模式的一种直接反应,有些是天生的,有些是通过不断重复学习到的
软件更像园艺而非建筑——它更像一个有机体而非砖石堆砌
解谜的奥妙在于确定真正的(而不是想象的)约束条件,在这个约束条件下找到解开的方法。有些约束条件是绝对的,有些其实是一些先入为主的观念。
不仅仅是提问、讨论、做笔记,还要在真正编码的同一时刻提问和讨论
敏捷不是一个名词,敏捷有关你如何做事
作为开发者,我们的目标是取悦用户。用户真正要的不是代码,他们只是遇到某个业务问题,需要在目标和预算范围内解决。