《程序员修炼之道》读书笔记(1):注重实效的哲学(态度)

第1章:注重实效的哲学

本章节讲的是:

作为一个注重实效的程序员,你应该有哪些态度?

接下来的小节便是这些态度:

1《我的源码让猫给吃了》——对自己的代码负责

我们对自己的能力自豪,
但也对自己的错误诚实。

在承担事物之前应进行评估,对于做不到或者风险太大的事情要说“不”。

如果同意承担了一件事物,就对它负责。这意味着:

  • 如果客户不能接受风险,则提前要有应急计划。
  • 如果出了错,要说明做什么可以挽回。
  • 如果需要更多的时间进行 “重构”、“制作原型”、“引入更好的测试”、“写自动化工具”等,则解释其价值。
  • 不要害怕提合理的要求,不要害怕承认你需要帮助。

而不是最后出问题了再找理由或推卸责任,说“我的源码让猫给吃了”

2《软件的熵》——追求整洁的代码

是一个物理学概念,指系统中“无序”的总量。
热力学定律保证宇宙中的熵倾向于最大化,而软件系统中的熵也是如此。

有多个因素促使软件的熵增加,但其中最重要的一个似乎是开发者的心理

破窗效应
一栋建筑一旦出现了第一个破窗户,如果放着不修理,就会给这栋建筑带来一种废弃感。很快会有第二扇窗户被打破、垃圾乱扔、乱涂乱画。在很短时间这栋建筑的废弃感会越来越大。

因此,不要留着“破窗户”(低劣的设计、错误决策、糟糕的代码)不管!
也不要做第一个打破窗户的人!

3《石头汤与煮青蛙》——注意细微的改变

石头汤故事

三个士兵到一个很穷的村庄,没人给他们饭吃。于是他们煮开一锅水,放三块石头。
他们的做法吸引了一些村民,士兵声称在煮“石头汤”。并说配一个胡萝卜会更好
于是一个村民回家拿了一点胡萝卜。
另一位村民又拿了一点土豆。
接下来,士兵又收到了更多的东西:盐、肉、香菜。。。
村民们看这汤越来越丰盛,于是都回家拿了自己觉得能让汤更美味的东西来给汤升级。
最终,士兵把石头拿出来,和村民一起享用了这锅豪华的汤。

这是个关于细微的改变如何发挥影响的故事,
有两个角度解读:

对于士兵——

如果开始就要求村民给做一锅这样豪华的肉汤,一定不会成功。
但士兵用这样的方式,团结了所有村民做成了一锅豪华肉汤。这锅汤靠一个人是无法做出来的,如果没有士兵也不会这么团结,因此最后大家都是赢家。

你也可以效仿士兵,利用这种细微的改变
有时候你确定一件事是对的,但是大家可能没有足够的动力去做它。你也不会得到足够的支持。
这时候你可以先自己去做,当有点成果时就展示出来,然后让别人知道如果得到一方面的支持后就会有更好的效果。于是慢慢的,你得到了更多方面的帮助,最终也做出了你想要的东西。

对于村民——

类似“温水煮青蛙”的道理。
警惕那些开始时微不足道的小问题。

4《足够好的软件》——不过分追求完美

不要一味地为软件增添新功能、润色代码,试图做出完美的软件。
软件永远也不可能完美。

你需要知道何时止步。

你可以让用户来权衡。给他们一个“有毛边”的软件,让他们及早使用,及早反馈。

让“质量”成为一个“需求问题”。

5《你的知识资产》——注意管理自己的知识资产

作为程序员,我们最重要的价值是:知识经验
遗憾的是,它们是有时效的
为了阻止自己的价值降低,我们需要像管理金融资产一样管理自己的知识资产。

经营自己的资产,例如:

  • 定期投资
  • 多元化
  • 管理风险
  • 低买高卖
  • 重新评估和平衡

为自己订一些目标,例如:

  • 学习一种新语言
  • 阅读一本技术书籍
  • 也要阅读非技术书籍
  • 上课
  • 参加本地用户组织
  • 试验不同的环境
  • 跟上潮流
  • 上网

把握学习的机会,例如:

  • 如果遇到不会的问题就尽力搞懂
  • 做好规划使得可以在碎片时间学习。

最后,还要批判地思考

6《交流》——注意交流

作为开发者我们需要在多个层面上交流。

了解你的听众:

  • 你想让他们学到什么
  • 他们对你讲的什么感兴趣
  • 他们有多富有经验
  • 他们想要多少细节
  • 你想让谁拥有这些信息
  • 你如何促使他们听你说话

总结一些有用的想法:

  • 知道你要说什么
  • 了解你的听众
  • 选择时机
  • 选择风格
  • 让文档美观
  • 让听众参与
  • 做倾听者
  • 回复他人

猜你喜欢

转载自blog.csdn.net/u013412391/article/details/114841066