读书笔记1

《梦断代码》读书笔记

       本周之内我并没有阅读太多的东西,只是看完了《梦断代码》这本书的前三章,但我已经感触良多。
第0章 软件时间
       我刚翻到这本书的正文,就产生了疑惑——第0章?怎么会有书从第0章开始写呢,作者不会是傻了吧?结果作者在第0章的结尾给出了答案:计算机从0开始计数,所以程序员也训练自己这样计数。看到这些我感到有些羞愧,虽然一上大学就开始学习编程,然后到现在为止,我还没有真正建立起程序员的思维,这也就是为什么我学习编程比较辛苦但效果不佳的原因。
       在本章,我终于知道了为什么程序员入门的第一个程序必定是让计算机打印出hello world——既然我们能让计算机说话,就能让它做任何事!读到这里,我就产生一种钦佩感,上个世纪的计算机前辈们还真是天不怕地不怕呀!上个学期的电设2的编程任务就没把我们小组折腾个半死,仅仅是一个PID算法我们就画了一个月才终于实现功能……我想这也就是是否有畏难心理的差别吧,作者也说了其实软件就是麻烦一堆,但是总还是有那么多人需要它,所以我们对软件的需要已经远远大于对它的仇恨。
第1章 死定了
       本书的第1章题为死定了,主要讲述了程序员们成百上千的任务与有限的时间之间的冲突,这让我想起了上个学期的数据结构上机实验,我总是活在赶ddl的紧张感中,总以为只需要半个小时就能写完的代码,总是需要一两天去搞定,大部分的时间都被浪费在找bug之中,书中的程序员也是一样,总是需要将大部分花在找错上,这让我感到欣慰,同时也让我倍感激励:我们不认识恐惧编程,而是恐惧无法确知需要多长时间才能修正缺陷!代码就是一个充满不确定甚至不可知因素的时间陷阱。
本章中的布鲁克斯法则我也深有体会,上个学期的电设课程,我们第一开始只分配了三个人负责软件(总共五个人),结果发现进度十分缓慢,花了半个月的时间却没有太大的成果,所以我们五个人都投入到编程的任务上,结果问题没有任何的缓解,因为我们浪费了太多的时间在沟通交流问题上,而实际动手的时间太短,如此说来五个人的效率估计还没有一个人从头干到尾的效率高。
       本章还讨论了软件的开源与否,因为微软公司从不发布源代码,所以一些程序员就深受其折磨,于是他们建立了OSAF,并发布了一种特殊的软件许可,允许所有程序员获得全部所需代码、复用这些代码。结果这一举措真的成功了,20世纪90年代,被纯化论者称为“GNU-Linux”的操作系统,逐步成长为稳定,免费的UNIX版本,并且完全向外界开放。我突然意识到每个人都可以修改的软件会随时间的推移得到改进,而这是封闭软件所无法做到的。我们平时的学习也是一样的,只有接受所有人的正确意见并改正才能一步步向更加优秀的方向发展,相反,如果一个人没有学习上的伙伴,那他的发展会是较为缓慢的。
       本章中还提到一句话:愉悦是金。确实,编程的过程也许会有很多的挫折与困难,也许会感到沮丧甚至气急败坏,我就有过这样的经历,当我花费很多精力编写出来的程序与我想要的结果大相径庭,而且又找不到错误在哪的时候,我变得十分焦躁,不想再继续编程,因此效率就变得很低,导致我用了很多时间也没有成功修复漏洞。因此,程序员在编写软件的过程中,一定要尽量保持愉悦,不要焦躁,否则会大大影响效率。可是事实证明,说总是比做要容易的多。
第2章 Agenda之魂
       Agenda的成功在于其功能的强大,用户可以根据自己的方式记录一些内容,而不是程序或者网站设定的方式,因此Agenda推出之后好评如潮,吸引了许多追捧者。
有的时候虽然耗资巨大,投入的人力和时间都很多,但最后取得效果甚微,比如说福特公司的Everest采购系统,所以软件开发之前一定要做好各种准备工作,尽量减少此类事件的发生。
      不要太在意过往软件留下的痛苦和教训,否则容易被沮丧感压垮!

原文地址:https://www.cnblogs.com/rjgcqth/p/8525673.html