本书的序介绍了注重实效的程序员有哪些特征,即早期的采纳者/快速的改编者,好奇,批判的思考者,有现实感,多才多艺。给出了两点提示,一是关心你的技艺,二是思考!你的工作。
基础的重要性使我了解到学好算法与数据结构,操作系统等课程的重要性。
本书第一章为注重实效的哲学,注重实效的编程源于注重实效的思考的哲学。
在“我的源码被猫给吃了”部分提到,注重实效的程序员是对他或她自己的职业生涯负责,并且不害怕承认无知或错误。给出了提示三,提供各种选择,不要找蹩脚的借口。
在“软件的熵”部分给出了提示四,不要容忍破窗户。(低劣的设计,错误决策,或是糟糕的代码不修)。可以把出问题的代码放入注释,或是显示“未实现”消息,或是用虚设的数据加以替代。采取某种行动防止进一步的损坏,并说明情势在你的控制之下,一定不能放任小错误不管。
在“石头汤与煮青蛙”部分,给出了提示五,做变化的催化剂,设计出你可以合理要求的东西,好好开发他,一旦完成,就拿给大家看,让他们大吃一惊,然后说,如果我们增加.........可能就会更好.提示六,记住大图景,大多数软件灾难都是从微不足道的小事情开始的,因此,要留心大图景,持续不断的观察周围发生的事情,而不只是你自己正在做的事情。
在“足够好的软件”部分,给出了提示七,使质量成为需求问题,如果给用户某样东西,让他们及早使用,他们的反馈常常会把你引向更好的最终解决方案。不要因为过度修饰和过于求精而损毁完好的程序。
在“你的知识资产”部分,给出了程序员的知识资产的定义,即他们所知道的关于计算技术和他们所工作的应用领域的全部事实以及他们的所有经验。经营知识资产的方式有定期投资(即使投资量很小),多元化,管理风险(不要把所有的技术鸡蛋放在一个篮子里),低买高卖(在新技术刚刚出现的时候学习),重新评估和平衡。同时给出了具体的目标,每年至少学习一种新语言,每季度阅读一本技术书籍,也要阅读非技术书籍,上课,参加本地用户组织,试验不同的环境,跟上潮流,上网。不要把问题搁在那里,要善于与他人交谈。最后一个要点是批判的思考你读到的和听到的。
在“交流”部分提到,作为开发者,我们必须在很多层面上进行交流。在交流的构成中,我们首先要知道自己想要说什么,然后要了解你的听众,还要选择时机,弄清楚听众的轻重缓急是什么;选择风格,让其适应你的听众;让文档美观;让听众参与,做倾听者;回复他人。“你说什么和你怎么说同样重要”。