《程序员修炼之道-从小工到专家》是一本1999年写的老书,但15年之后,书中的许多道理依然没变,时不时拿出一章咀嚼一下仍有许多可回味之处。
第一章 注重实效的哲学
1、我的源码让猫给吃了
在所有的弱点中,最大的弱点就是害怕暴露弱点。程序员整天与最后期限、BUG打交道,不可能不犯错误,一个软件项目中还有许多因素根本就不是程序员所控制的,所以项目延期、BUG激增、需求不断涌现都是常有的事。出现这些问题时,勇敢地承认它,而不是寻找借口,不断尝试原型、测试、重构、自动化等手段来解决这些问题才是程序员的王道。
2、软件的熵
“宇宙中的熵总是倾向于最大化”,从多本书遇到熵这个概念了,现在慢慢有些认识了。“熵”来源于物理学的概念,是指系统中“无序”的总量,以前在研究数据压缩时也遇到了熵的概念,熵越大说明信息越杂乱,越不容易压缩。软件出现无序增长时,说明软件在腐烂,程序员的工作就是不让软件的熵变大。
“破窗户理论”在软件中要引起重视,当项目组遇到了破窗户(低劣的设计、错误的决策、糟糕的代码)而不修,很快它会迅速恶化。而反之,项目组的代码一直处于优雅可控的状态时,团队中每个人都不忍心把它弄脏。
所以说,发现了“破窗户”要马上修理,如果实在没时间处理,也要把它钉起来,加上“TODO:任务标记”,抛出未实现的异常等等,一旦有空要及时处理它们。
3、石头汤与煮青蛙
有些事情先做起来再说,请求原谅比获取许可更容易,有点先斩后奏的勇气。项目之初想好大的图景,我想是指“设计哲学”吧,不要被日后的补丁把整个系统弄得体无完肤。
4、足够好的软件
软件不可能完美,不要过分设计,画蛇添足。以前做的三维可视化想着能够跨平台而选择了Qt,但从写第一行代码起到最后项目验收,也没有把这些代码在Unix系统中编译过,无形中给项目增加了复杂度和工作量。软件是给用户使用的,要多问问用户,让他们及早使用来获得反馈。编程就像绘画,不要因为过度修饰和过于求精而毁损完好的程序。
5、你的知识资产
管理程序员的知识资产与管理金融资产非常相似,要定期投资、多元化、管理风险、低买高卖、重新评估和平衡。
1)每年至少学习一种新语言
2)阅读技术书籍(书店中醒目位置的书不一定是好书,可能只是付了钱才放在那里)
3)也要阅读非技术书籍
4)上课
5)参加本地用户组织
6)试验不同的编程环境
7)跟上潮流
8)上网
这些都需要时间,学会利用碎片时间。
最后一段提到与古鲁打交道的技巧,我不知道古鲁是什么,猜可能是Guru吧,现在不用usenet,直接google后,实在没有答案,就把问题发到stackoverflow,很快就会有专家轻易地把你的问题解决了。
6、交流
我感觉有用的是:让文档美观和电子邮件交流的注意事项。
第一章 注重实效的哲学
第二章 注重实效的途径
第三章 基本工具
第四章 注重实效的偏执
第五章:弯曲或折断
第六章:当你编码时
第七、八章
本文转自申龙斌的程序人生博客园博文,原文链接:http://www.cnblogs.com/speeding/p/3657503.html,如需转载请自行联系原作者
http://www.cnblogs.com/speeding/