很可惜,从我一开始学技术开始,我就不喜欢看书,严重的时候翻不到两页就会开始狂打瞌睡。很幸运,有互联网能够为我提供很多知识,甚至一些知识从网上看来的会更加权威一些。但是,我的经验告诉我,无论是从功利性的找工作的角度,还是从实用性的学技术的角度,下面这些书都非常值得多读几遍,于是它们很幸运没在我即将离校的时候被当做废纸卖掉。
1. 《Java核心技术》
仔细研读这套书上下册至少两遍,最现实最直接的好处就是网上各种Java基础的笔试、面试题90%以上都难不倒你。这套书对JavaSE各种特性的讲解较为深入,同时配以大量(个人认为甚至有点过多)的示例,因而既适合新手入门,又适合老鸟深入理解。
缺点就是太厚太重了,一来增加了读完全书的心理压力,二来不便于携带,三来实在不适合作为案头翻阅的工具书。
2. 《Java Web开发技术大全》
这本书是我JavaEE的入门书籍,它与《Java核心技术》的风格截然相反:较少涉及JavaEE的原理展开讨论,而是大量地运用实际案例展示如何(用MyEclipse)进行Struts2 + Hibernate + Spring + Ajax的Java Web应用的开发。它最大的优点是一本很优秀的案头工具书,方便你在任何时候查阅SSH中某个框架的一些语法或者配置该怎么写。
相对的,它的不足正是它不是一本适合深入学习SSH中任意一个框架的书,所谓杂而不精。
3. 《算法导论》
如果说是否把《Java核心技术》作为废纸卖掉我还犹豫了下的话,《算法导论》就是我绝对不会卖掉的书了。算法对于一个程序员的重要程度自不用说,而《算法导论》作为学算法必看的一本书,其价值也无需赘述了。
缺点?除了面试外,短期内用处不大应该就是它最大的缺点了。
4. 《大话设计模式》
这本书是当我跟我一哥们提起我想买GoF的那本设计模式书时,他给我的推荐,理由是:GoF那本我不一定看得下去,但是这一本我一定能看完。事实也是如此。这本书最大的特点和优点就是语言生动,不像一本技术书(封面更不像),而更像一本讲故事的书。但是,每个设计模式的讲解、适用场景、优缺点、示例又一个都不落。
缺点同《Java Web开发技术大全》一样,它也不是一本讲理论的书,浅显易懂才是它的风格。另外,这本书的示例基于C#,还好它跟Java很类似。
5. 《操作系统》
尽管Java几乎不用跟底层打交道,但是阅读《操作系统》的过程中,很多地方会让我有一种“啊!原来是这么一回事”的感觉。最显著的,比如线程。《操作系统》这类较为底层的书籍,对于Java程序员而言,最大的作用我感觉应该是知识体系的提高,不局限于Java的那些API,跟算法的作用其实差不多。而这些又是靠网上繁杂的文章无法系统学习的。
6. 总结
以上6本书,离校的时候我从哈尔滨把它们带到了北京,作为一个不爱看书的程序员,可见我对它们的珍视。在我看来,越是理论、越是需要系统学习的知识,就越需要通过权威的书籍来学习,如算法、OS、JavaSE基础等;而那些已经有现成框架的技术,网上无论是权威的资料还是代码实例都要更多,如Spring、Hibernate、Python、Android等,手边需要的只是一本可翻查的工具书。因此,无论是读书还是从网络中学习都是可行,无需拘泥。
7. 下一步
对Java的学习,一来是各种流行的框架的运用,二来就是对其本身的深入了。因此,接下来我打算搞一本《深入理解Java虚拟机》来看看。