《程序员修炼之道:从小工到专家》阅读笔记01
注重实效的哲学
在所有的弱点中,最大的弱点就是害怕暴露弱点。——J.B.Bossuet,Politics from Holy Writ,1709
注重实效的程序员对他自己的职业生涯负责,并且不害怕承认无知或错误。
责任
责任是你主动担负的东西。你承诺确保某件事情正确完成,但你不一定能直接控制事情的每一个反面,除了尽你所能之外,你必须分析风险是否超出了你的控制。既然选择了,就必须对自己的东西负责,如果事情没有完成,直接告诉他们为什么某事做不到,为何耽搁,为何出现问题。不要推脱,既然没完成,就要如实说明,但是在自己说明之前,要在自己脑海里想好要怎么说,上级会有什么反应,回头又该怎么说。
提供各种选择,不要找蹩脚的借口。
软件的熵
开发项目时的心里是十分重要的事情,尽管制定了最好的计划,拥有最好的开发者,项目在其生命周期中仍可能遭遇毁灭和衰败、而另外有一些项目,尽管遇到巨大的困难和接连而来的挫折,却成功地击败自然的无倾向,设法取得了相当好的结果。
不要容忍破窗户。
不要留着“破窗户”(低劣的设计,错误决策,或糟糕的代码)不修,发现一个修一个,如果没有足够的时间进行适当的修理,就用模板把他钉起来。但是千万不要萌生这样的可怕想法,“这些代码的其余部分也是垃圾,我只要照着做就行了。”项目在之前是否一直很好,并没有什么关系。如果你发现你所在的团队里的项目代码十分漂亮——编写整洁、设计良好、并且很优雅——你就很可能会格外注意不去把他弄脏,这是一种效应。所以平时要往好的方面去想。
石头汤煮青蛙
在石头汤的故事里有两层寓意。士兵戏弄了村民,他们利用村民的好奇,从他们哪里弄到了食物。但更重要的是,士兵充当催化剂,把村民团结起来,和他们一起做到了他们自己本来做不到的事情——一项写作的成果,最后每个人都是赢家。
做变化的催化剂。
记住大图景。
足够好的软件
欲求更好,常把好事变糟——李尔王 1.4
使质量成为需求问题。
你常常会处在需要进行权衡的情形中,让人惊奇的是,许多用户宁愿在今天用上有一些“毛边”的软件,也不愿意等待一年后的多媒体版本,许多预算吃紧的IT部门都会统一这样的说法。今天的了不起的软件常常比明天的完美软件更可取。如果你给用户某样东西,让他们及早使用,他们的反馈常常会把你引向更好的最终解决方案。
在这方面其实感觉还是挺不错的,有了新的思路,软件是服务于用户的,靠的是用户的需求,而这种依靠用户完善的方法也不错,但是之前已有的功能肯定是经过测试的,这是最低的要求,如果不能实现这个,那这个软件也不会变成最美好的。
你的知识资产
知识上的投资总能得到最好的回报——本杰明·富兰克林对于自己的知识投资要做到:
定期投资:及时为自己的知识资产投资,即使投资量很小,习惯自身也和总量一样重要。
多元化:知道的不同的事情越多,你就越有价值,学习多元化。
管理风险:不要把你所有的技术鸡蛋放在一个篮子里。
低买高卖:在新兴的技术流行之前学习他可能就和找到被低估的股票一样困难,但所得到的收益就和那样的股票带来的收益一样。
重新评估和平衡:这是一个非常动荡的行业,上个月开始研究的热门技术现在也许像石头一样冰冷,也许你需要重温一下你有一阵子没用的数据库技术就能获得新职位……
定期为你的资产投资
目标:
- 每年至少学习一种新语言。
- 每季度阅读一本技术书籍。
- 也要阅读非技术书籍。
- 上课。
- 参加本地用户组织。
- 试验不同的环境。
- 跟上潮流。
- 上网。
交流
我相信,被大量比被忽略要好。——Mae West,Belle of the Nineties,1934
- 知道你想说什么
- 了解你的听众
- 选择时机
- 选择风格
- 让文档美观
- 让听众参与
- 做倾听者
- 回复他人
交流是行业不可缺少的,包括与团队的交流,也有对用户的交流,对不同的人采用的交流态度、方式肯定也是不一样的,这就要求我们要会说,知道怎么说,不能光知道怎么说却说不出来,这样也是很难受的,准确表达自己的意思和让对方接受我们的想法是不一样的。