《程序员修炼之道》读书笔记1
1.“我的源码让猫给吃了”
在工作过程中,出现突发情况,无论是因为磁盘垮了,没有备份,还是交付晚了,都属于是我们个人失误,应该坦率的承认错误,并提出解决方案,向老板和客户解释“我的源码让猫给吃了”没有任何意义。其次,在代码编写工作中,作为成熟的程序员,我们应当知道自己所能承受的极限在哪里,当我们知道那些东西不可控,超出自己能力范围了,要及早提出,我们要对自己承担的工作心里有数。
2.软件的熵
熵本来是热力学中的概念,在物理意义上,熵指的是系统的混乱程度,而在信息论中,熵用来衡量信息的不确定性,信息熵越大,表示信息的不确定性就越高,热力学中,熵值总是趋向于最大,在信息中也是如此,工程越庞大,代码的“无序”状态也就越严重。
破窗理论指如果一幢建筑的窗户被打破而没有及时修复,那么某些人会受到暗示性的纵容,去破坏更多的窗户。软件开发中也一样,当我们的代码中拥有很多没有及时被修复的“破窗”,比如,地理额的设计,错误的决策,混乱的思路等,之后接手的人也会使代码变得更糟糕,所以,我们应当尽早处理工程中的遗留问题。
3.石头汤
石头汤讲的是一个小故事,三个士兵,饥肠辘辘,经过一个村庄,想要讨些食物,结果村民不肯,他们就架起一口锅,在锅中煮石头,路过的村民好奇问他们这是什么,士兵说,这是石头汤,煮出来很好吃,要是有些胡萝卜就更好了,村民好奇汤的味道,从家中拿来了胡萝卜,士兵又说,要是有一些土豆就更好了,又有村民从家中拿来了荼毒,就这样,锅中的食材越来越多,汤果然也很美味。
这个故事提示我们在代码编写的团队任务中,不需要等到所有事情都准备好了再开始,最好是先着手做,做出有益的的部分,其他人看到也会参与进来,效果会更好。
4.足够好的软件
在制作软件中,如果不注重质量,那么交付出去的软件必定会使客户不满意,如果过于追求质量,则会延误工期,正确的作法是和客户商量好,在合适的时间内,在实践和质量之间找到平衡,尽量交出满意的软件。最完美的软件永远都在下一个,不要一味地追求完美,应该知道何时止步,即使将软件交给客户,收集客户的反馈意见才是正解。
5.你的知识资产
本杰明·富兰克林说过:知识上的投资总能得到最好的回报。这没问题,但遗憾的是知识是有时效的资产,特别是计算机领域。我们可以把我们了解的技术实现、工作经验视为知识资产,并使用管理金融资产的形式管理这些知识。
经营知识资产可以从以下方面进行:定期投资:定期投入时间学习,即使很小的投资也是很重要的。多元化:作为底线我们需要对当前所从事的技术熟练掌握。但不要就此止步,技术的发展变化很快,掌握的知识越多,就越能更好的进行调整,赶上变化。管理风险:不要把所有的“技术鸡蛋”放到一个篮子里。低买高卖:新技术流行之前就掌握它往往比之后跟风再学得到更大的回报。这些知道方针里最重要也是最简单的就是:定期为你的知识资产投资。
具体方案介绍每年至少学习一种新语言。
每季度阅读一本技术书籍,习惯之后可以一个月就阅读一本。也要阅读非技术书籍,记住计算机是由人使用的。在本地大学或者网上系统地学一门课程。体验不同的环境,如果你只在 Windows 上工作,可以试下 Unix。如果你只使用某一种 IDE 那可以试试其他 IDE。