关于本书
在真正打开本书之前我只听说过《程序员修炼之道》是一本好书,我以为它和老师之前介绍过的《大道至简》一样是一本讲精义、讲道理的书(并不是说这样的书不好,只是它们对于开发经验欠缺的学生来说实在有些遥远与晦涩),而本书开篇寥寥几句便打破了我的认识。虽然我只读了本书的前半部分,但从这冰山一角中我可以窥见本书的真诚与实用,我佩服作者对于简单句的运用,第一次打开本书序言的第一句话“本书将帮助你成为更好的程序员”使本来昏昏欲睡的我打了个激灵,我看过别的技术书籍往往开篇会说本书会讲什么、你会学到什么而这本书则给人一种真诚的印象,它似乎是站在一个朋友的角度诚恳的帮助你,在其后的阅读中这样的感觉一直伴随着我,它仿佛在说“我知道你想要什么”。其后又有一句“编程是艰难的工作”,这句话更让我感觉到阅读此书就像在照镜子一样,虽然老师和一些牛人们都说编程只是体力活,但这个命题依然存在于我的心中,我发现有些问题与其去回避它不如去直面会得到更好的结果。本书强调的一个单词是“注重实效(pragmatism)”,不应该局限于任何特定的技术而是有足够广博的背景和经验基础,这让我不禁想起王老师时常提起的“工具箱”概念,我们软件工程学习的目的就是丰富我们的工具箱,丰盈的工具箱可以使我们在不同情况下都有选择的空间从而使我们的工作更具时效。作者提出基本可以将注重实效的程序员所拥有的素质归纳成两点:关心技艺与勤于思考,我们需要关心自己的技术,所谓“取其上者得其中,取其中者得其下,取其下者则无所得也”,想要开发出漂亮的软件程序员就必须要关心自己的技术;如果不愿意思考编程就彻底是体力活了,所谓“懒人创造方法”,思考、总结、批判是丰富我们的工具箱的最好的方法。显然以上所说的绝非一日之功,只有长久的坚持才能收获成功;关于创造我很欣赏工匠,他们每天打磨自己的技艺以趋完美,但我更欣赏园丁,因为他们在一开始就能定下正确的目标,在正确的时间地点种下种子每天耕耘,种子便会自然成长发芽,播种是比制作更好而优美的创作方式。
第1章 注重实效的哲学
哲学源于思考,本章将为其打下基础,而接下来的几则文章用一句网络用语来概括就是“过于真实”,这几段文字似乎把我在编程中所偷过的懒、犯下的错、养成的不好习惯全都扒了出来。
1、我的源码让猫给吃了:我们总是在不断的为自己找借口来不断欺骗自己以过的更加轻松,而事实证明借口只会对人的成长起反作用,因此不要找蹩脚的借口;另一方面,如果我们的工具箱足够丰富我们就可以有更多的选择而不必寻找借口,所以提供各种选择,丰富自己的技能。
2、软件的熵:本节作者总结了软件走向破败的根本原因,破窗户理论像是心理上的蝴蝶效应,看到破败的一角长期没被处理我们自然会默认这种情况是被允许的,这样腐败就会扩散开来,这似乎也解释了我的宿舍为什么越来越脏,因此不要容忍破窗户,将破败连根拔起。另外,在小故事灭火中我们学到,在更大的危机面前我们必须要敢于弄脏之前的成果。
3、石头汤与煮青蛙:温水煮青蛙是一个老生常谈的话题,这个故事常用于警示我们要注重大图景,不要被眼前的安逸所迷惑,要解决身边的每一个“破窗户”;而石头汤则告诉我们,站在另一个角度,我们也可以用煮青蛙的方式来解决问题,要善于改变并促进周围人的思考。
4、足够好的软件:这节主要讨论的是理解需求的问题,一方面我们需要正确完成用户交付的任务,另一方面在完美的完成任务的基础上我们要避免过度修饰。
5、你的知识资产:这一节依旧在讨论工具箱问题,我们不仅需要有一个内容丰盈的工具箱,还要保证工具箱的内容时刻保持更新,这也是一个老生常谈的话题,IT界的每一位前辈都会告诫我们要持续学习,我们的业界更新换代的速度超乎想象,要时刻保持警觉以防止自己落伍,作者为我们提出了几个行之有效的方案:(1)每年至少学习一种新语言;(2)每季度阅读一本技术书籍;(3)也要阅读非技术书籍;(4)上课;(5)参加本地用户组织;(6)试验不同的环境;(7)跟上潮流;(8)上网。还有一点是要批判性的思考,简而言之就是不要迷信,要从自己的角度、自己的实践当中得出结论。
6、交流:这点很重要也经常被忽略,早在上大学前我就有一种误区就是优秀的程序员可以概不社交宅在家里就可以解决一切问题,这显然是天方夜谭。我们做软件的目的就是为了解决问题,而问题来自用户,如果不和用户交流就无法理解需求,没有需求自然就没有软件;另一方面,大多数项目我们无法自行完成,而团队是一个整体,我们允许成员有个性但我们必须有同一个目标同一个方针,我们需要知道彼此在做什么;本节还总结了许多常常被我们忽视的影响人际关系的细节,总结起来就是:(1)知道你想说什么;(2)了解你的听众;(3)选择时机;(4)选择风格;(5)让文档美观;(6)让听众参与;(7)做倾听者;(8)回复他人。
原文地址:https://www.cnblogs.com/52bb/p/11602567.html