第一小部分是你说挑书就像挑老师一样,我说你乱有思想的。
这一部分作者借由自己的经验来讨论怎样挑选一本适合自己的书。他说挑选计算机技术的书籍,要先看书籍的内容,内容讲的是操作还是程序设计,是用什么语言来讲述的,是网络还是数据库,不要因为对内容不熟悉而选错了书。然后再对自己有一个最基本的认识,自己是初学者呢,还是专家。书籍是分入门级别,进阶级别和专家级别的。对自己有一个良好的定位,有助于选择更好的,更适合自己的书籍。这样就会避免选择的书对于自己是太浅薄还是太深刻了。再然后要看看作者的背景,过去著作的评价如何。有的作家资历深,而且出版的书籍都是再三推敲,对读者帮助极大的,那么这样的书就值得考虑。有的书作者资历不深,为了提早让书本上市就胡乱拼凑,这样的书看了也不会对自己有太大帮助的。然后再看译者背景。技术作品不像文学作品可以翻译的灵活。技术作品讲究精准,句子通顺,能让人读懂。译者经验或者技术知识不到位很容易翻译出可笑的作品,所以译者背景也是一个要注意的地方。再看出版社,好的出版社对稿件的品质要求极为严格,不好的作品是不会被印制出版的。出版年份也是重要的,计算机更新迅速,出版年份越早也就意味着越旧,利用价值就越小,学习现在的新技术就要找新书。还有读书时间,你是买来就读还是以后在读,以后读就不要急着买,计算机发展迅速,买早了很有可能就变成旧书了,什么时候看什么时候买。最后看书评,好书是不寂寞的,买的人一定很多,评价也普遍很高。这就是挑选书籍的经验之谈,我觉得对我们学者还是很有用的,毕竟我们的学习离不开书籍。
选择一个自己的研究领域中杰出的伟人当自己的偶像,不要总是沉迷在明星上,拿出追星的热情去研读伟人的所有书籍,而不是单纯的追求签名照片之类的无意义的东西,精神上的追随才是追星的最高境界。选一个自己要研究学习的方向上杰出的专家作为偶像,当然,这个偶像可以随时更换,重点是研读他们的作品,感受他们的思想。但是也不要以他们的思想作为最高思想,不可超越,思想是可以进步的,如果你有新的想法,说不定你就是下一代人的偶像,盲目崇拜偶像只会让你停滞不前。
出现这个大洪水的原因有三个:不重视开发;不重视专利;不重视软件工程。研发是一种长期的投资,因而研发而来的收益往往要数年后才有可能逐渐看到成果,研发在短期内一定没有太多收益,长期也不一定会有收益,毕竟研发不一定全部都会成功。一些软件公司不注重投资开发,认为这是赔本生意,不投入就没有新产品。还有专利不一定每个都有价值,但是专利是有很多好处的,可以避免其他公司竞争,别人要使用你的专利,就要付费给你。所以仔细评估自己的软件价值再去申请专利,没用的专利是没有意义的。不重视软件工程,不采行一套适当的软件工程过程,就不可能做出稳定的中大型软件系统。不重视的结果就是开发的软件其实就是胡乱拼凑的,这样的软件肯定存在很多问题,根本不适合使用。
作者提出了五个软件工程的吊诡现象。分别是软件工程到底有没有用?软件工程对谁重要?程序员可以不要理会软件工程?软件工程对哪类型的项目比较有用?那么小型项目不应该用软件工程?先说软件工程到底有没有用。怎么会没用?软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来的学科。它涉及到程序设计语言、数据库、软件开发工具、系统平台、标准、设计模式等方面。印度对软件工程的重视程度是相当高的,看看他们的软件产业就知道了。再说软件工程对谁重要。也许软件工程对个别程序员不重要,但是他们对一个公司一个组织确是相当重要。对于公司来说,实施软件工程,除了可以因此掌握软件的品质之外,更可以避免一些风险。既然如此,程序员就可以不重视软件工程了么?当然不是!程序员是公司的一份子,程序员不重视,公司怎么运作?再说程序员是没有办法做一辈子的,如果以后想成为管理阶层,那么最好能对软件工程和项目管理的相关知识做好准备。相比之下,软件工程比管理更重要。再说软件工程对哪类型的项目比较有用。当然是中大型项目啦!如果不采行软件工程,后果就会很严重,很有可能会一团混乱。那么小型项目就不用软件工程了么?其实小项目中用不用软件工程对项目的影响不大,但即使是小项目,最好也是用软件工程来进行,有了小的做基础,大的就不会混乱了。
读完了这本书,觉得收获颇丰,即有学习软件工程的重要性,也有学习Java的方法。适合我们学计算机科学的人的几个重要的观点就是:第一条稳固基础,再编程的时候就会得心应手。而且多看看别人的代码,多写写小程序对技术水平的提高很有利。即使你现在还什么都看不懂,没关系,慢慢来,这个东西就是入门了,摸到门路了也就顺利许多了,万事开头难啊。第二点就是我们要认清自己,既不能短视近利,也不能好高骛远,我们就踏踏实实的学好课程,坚持自己的本心,不被社会的不良风气和商业化功利化污染,那么我们就是最好的。第三条就是培养兴趣,培养对计算机科学的兴趣,培养对编程语言的兴趣,兴趣学习是学习最快也是记忆最深最快乐的,找寻编程中的兴趣点。第四点就是要做一个有职业敏感度的人,每天都在不自觉地增加专业功力。