具体是他们负责任、掌握大局、注意并接收变化、尽量生产足够好的软件、持续积累发展,并且会交流。
第1章 注重实效的哲学 A Pragmatic Philosophy
1. 1 我的源码让猫给吃了 “我的源码让猫给吃了!”,第一节作者提出程序员应该对自己写的代码负责任,而不是去想一些荒唐的借口。在本能的想逃避责任,说出借口之前,再听听你内心的声音,原因果真是这样吗?还有想象一下你的老板或者客户会有什么反映?
2. 2 软件的熵 软件工程会不知不觉变得无序!我们大概都知道熵 ( entropy )这个东西,它描述了任何物体都会朝向无序的状态发展,包括地球甚至宇宙。任何经过完美精心设计的项目或者框架,它总会不知不觉得走向无序。那么在软件工程中是什么导致项目走向无序呢?作者举了两个例子。一个是破窗子理论,如果一幢大厦的一个窗子破了不及时修补,那么其他的窗子也会很快就破。你也可以试一下在家门口的扔带垃圾,看看一个星期后的效果。第二个是灭火,消防队员到一个收藏家家里灭火还不忘在地板上扑上垫子。在做软件的时候,发现一点点小问题都要马上修补,如果实在没有时间也要打个待修补的标记。并尽量维护你的代码,不要让熵无限增大。.
同时,熵增大是不可避免的,在将要完成当前项目的时候,就可以想怎么把它快速摧毁了。
3. 3 石头汤与煮青蛙 注意变化,成为变化的催化剂。 作者讲了个石头汤的故事,两个士兵来到战乱后饥荒的村庄开始煮石头汤,并引诱着村民把家里的藏品拿出来加到汤里。 如果你想做一件大事,在等大家一致同意时,不防先做一个合理的设计,让大家能够贡献,并且自己先做出一个原型,成为变化的催化剂。“ 人们发现,参与正在发生的成功要更容易。让他们瞥见未来,你就能让他们聚集在你周围 [1] 。”
同时作者也提醒了你要注意不要成为那只被温火煮的青蛙。
4. 4 足够好的软件 “欲求更好,常把好事变糟。” 一般人可能认为一个完美主义者会是一个好的程序员,可是事情有时恰恰相反,在现实社会我们的资源和时间是有限的,而且需求也是变化的。 我们要做一个足够好的软件,而不是完美的软件。作者强调做软件要关注用户需求,并且知道自己应该在哪里止步! 只要能全面满足用户需求,就是一个成功的软件。
5. 5 你的知识资产 作者提出程序员的知识象是金融资本一样需要精心投资管理,并建议使用资本管理通常使用的一些原则: 定期投资、 多元化、控制 风险和回报的投资之间平衡、 设法低买高卖、 周期性地重新评估和平衡资产。作者强调“ 持续投入十分重要。一旦你熟悉了某种新语言或新技术,继续前进。学习另一种。”非常重要。
同时作者还在书中写了如何与 古鲁(大师) 打交道应该注意的问题和技巧,我觉得非常有用。
与古鲁打交道的礼节与教养 随着Internet在全球普及,古鲁们突然变得像你的Enter键一样贴近。那么,你怎样才能找到一个古鲁,怎样才能找一个古鲁和你交谈呢? 我们找到了一些简单的诀窍。 l 确切地知道你想要问什么,并尽量明确具体。 l 小心而得体地组织你的问题。记住你是在请求帮助;不要显得好像是在要求对方回答。 l 组织好问题之后,停下来,再找找答案。选出一些关键字,搜索Web。查找适当的FAQ(常见问题的解答列表)。 l 决定你是想公开提问还是私下提问。Usenet新闻组是与专家会面的美妙场所,在那里可以讨论几乎任何问题,但有些人对这些新闻组的公共性质有顾虑。你总是可以用另外的方法:直接发电子邮件给古鲁。不管怎样,要使用有意义的主题(“需要帮助!!!”无益于事)。 l 坐回椅子上,耐心等候。人们很忙,也许需要几天才能得到明确的答案。 最后,请一定要感谢任何回应你的人。如果你看到有人提出你能够解答的问题,尽你的一份力,参与解答。 |
6. 6 交流! 交流能力越强,影响力也就越强。 作者在这个章节的标题上打了个感叹号,表示他非常强调。书中所写的是一些非常普通的交流技巧,大概是因为程序员非常不在意交流,所以作者非常强调。
图1.1 WISDOM离合诗——了解听众 | |
What do you want them to learn? What is their interest in what you’ve got to say? How sophisticated are they? How much detail do they want? Whom do you want to own the information? How can you motivate them to listen to you? | 你想让他们学到什么? 他们对你讲的什么感兴趣? 他们有多富有经验? 他们想要多少细节? 你想要让谁拥有这些信息? 你如何促使他们听你说话? |