注重实效的哲学——程序员修炼之道第一章阅读心得

强烈推荐这本书《程序员修炼之道——从小工到专家》 https://book.douban.com/subject/5387402/

注重实效的程序员的特征

他们处理问题、寻求解决方案时的态度、风格、哲学。

  1. 能越出直接问题去思考更深层次的东西。总是设法把问题放到更大的语境中,设法注意更大的图景,以最小代价达到最佳效果。
  2. 项目代码的维护,对自己的代码负责,将项目代码保持整洁优雅
  3. 善于发现变化、接受变化、自我改变。能克服惰性,在改变中,提高效率,自我提升。
  4. 注重积累自己的知识资产。定期读好书、学新知识、温故总结。
  5. 更好的和他人交流。工作生活中我们会有快一半的时间用于交流,我们应该在交流中学习,提高交流的效率,在交流中收获良师益友。

以上我从书中总结的五点非常重要,下面会结合实际情况详细分析、并找到如何做的方案。

以及个人认为时间的规划也很重要,长期安排和短期安排都很重要,附 Geek 工作效率图

项目代码的维护

在所有弱点中。最大的弱点就是害怕暴露弱点。

软件的熵

当软件在无序增长时,也就是熵增加,软件趋向于腐烂。

但是显而易见的,有两种项目:一种随着开发,软件的熵越来越高,有着指数般的成长趋势,项目逐渐腐烂;而另一种,随着开发,软件的熵得到了很好的控制,线性般的成长趋势,甚至就好像有一个上限值一样,成长趋势越来越慢,几乎停下来。

那么是什么造成了这样的差异呢?

破窗理论

在市区,有些建筑漂亮整洁,而另一些却是破败不堪堆满垃圾。根据研究者调查发现了一种触发机制,一种很快能将整洁、完整的建筑变为破败的废弃物的机制。

破窗户

一扇破窗户,只要有那么一段时间不修理,就会给建筑的居民带来废弃感。很快有一扇窗户破了,人们开始乱扔垃圾、乱涂乱画,严重的结构损坏开始了,这个时候废弃感成为了现实,每个人都感受得到。

破窗理论启发了纽约和各大城市的警察部门,他们对一些轻微的按键严加处理,以防止大案的发生,这非常奏效。

所以我们不要留着破窗户(低劣的设计、错误的决策、糟糕的代码)不修,发现一个就应该修一个。

我们看到过整洁、运行良好的系统,一旦窗户开始破裂,就相当迅速的恶化。

如果你发现自己在有好些破窗户的项目里工作,会很容易产生这样的想法:“这些代码的其余部分也是垃圾,我只要照着做就行了。”项目在这之前是否一致很好,并没有任何关系。比如一辆飞起的轿车放了一星期,无人理睬,而一旦有一扇窗户被打破,数小时车上的设备就会被抢夺一空。

同样的道理,如果你发现你所在的团队和项目的代码十分漂亮——编写整洁、涉及良好并且很优雅——你就很可能会格外注意不去把它弄脏,因为你不会想成为第一个弄脏东西的人。

所以修复破窗非常非常重要,见到一个就立马修复它。

足够好的软件

  1. 让用户参与权衡
  2. 知道何时止步(编程就像画画,不要过度修饰和过于求精)

变化

温水煮青蛙的事常常发生在我们生活中,随着时间的推移,任何事都会有变化,假如我们不去发现变化、并做出改变来应对,我们其实就和青蛙没有什么区别。

  1. 我们要克服惰性,做变化的催化剂,用一些改变的成果(demo)给团队惊喜,和团队宣传变化后的大图景(new future),团结团队迎接变化。
  2. 变化更是挑战,正面迎战挑战,可以获得提高效率、提升自我的成果。

注重积累自己的知识资产

经营管理知识资产

知识是有时效性的资产

就好比一百多年前最厉害的武器 火枪大炮,在如今早已被AK、导弹所替代,更何况在当今这个每过十年都会有翻天覆地变化的时代,旧知识的价值的降低速度非常之快。

所以我们应该善于经营管理自己的知识资产,我认为更重要的是

  1. 新知识和旧知识并不矛盾,应该携手共进,知识是相通的。
  2. 培养核心学习能力。学习知识的核心,而不是只学习知识的 形。
  3. 培养学习习惯、终身学习。

书中的观点:

  1. 定期投资
  2. 多元化
  3. 管理风险;低买高卖。

最重要的是,定期为你的知识资产投资

目标

制定目标并执行是一个非常好的定期投资方式。

书中举例的目标:

  1. 每年至少学一种新的语言
  2. 每季度阅读一本技术书籍,也要阅读非技术书籍
  3. 学习新的思想
  4. 跟上技术潮流,
  5. 试用不同的环境、工具。

我的目标:

  1. 跟进社区技术发展,关注社区文章、动态
  2. 写一篇技术文章
  3. 看一本技术书籍
  4. 做一次技术分享
  5. 在技术上,给自己以新的领域的挑战

高效的获取知识

学习机会

  1. 解决问题
  2. 和厉害的人一起交流自己解决不了的问题
  3. 让自己无聊的时候(排队、坐车)有东西可以学,强烈推荐 pocket

谷歌、问问题

  1. 首先要明确自己的问题是什么
  2. 精确地的描述问题
  3. 锲而不舍、不断思考

高效的交流

  1. 知道你真正想要什么
  2. 了解你的听众,知道他想听什么,能听懂什么
  3. 选择好时机
  4. 选择风格:简短?正式?随意?详细?
  5. 让听众参与、做倾听者