我也算是一个已经入门 Java 的人,这里分享一下我的经验和相关资料。俗话说 "万事开头难",希望能帮助你度过最初的迷茫时期。 重点: 在后面我会放上我以前积累的所有资料的下载链接
一、入门首选书籍
我是完全零基础入门的,一开始的时候也感觉非常迷惘,不知道该如何下手。
我的情况是,数学英语早就忘光光,也完全没有任何基础。 由于个人的一些原因,我不能看视频,我只能通过看书来学习 (而且我也很讨厌开视频),在看了相关的资料之后,我发现了以下比较出名的书籍。
- 《Java 核心技术》
- 《Java 编程思想》
- 《Java 语言程序设计》
- 《Effective Java》
- 《疯狂 Java 讲义》
下面我来总结一下这些书的特点
注意,这里面适合零基础入门的只有《Java 语言程序设计》和《Java 编程思想》,这两本,其他的,如果你没有编程的基础,是很难看懂的。
《Java 语言程序设计》
如果你完全是小白,那么这本书是最佳入门选择。
优点 1: 面向零基础,不会看不懂。面向的读者完全是零基础,所以不会动不动就出来一个陌生词汇,再讲一个词汇之前必然会给出例子,然后解释,如果你这都看不懂的话,那大概就是语文有问题。优点 2:练习题密集。 几乎每一个知识点都会有这三样东西,1.Listing 程序清单 ,也就是一个案例。2.Check Point 课后练习题 , 主要是回顾一些刚刚讲过的基本内容 3,Execrise 每一章后面都有 20-50 道难度不等的练习题。
所以学这本书就感觉非常 "扎实",感觉每个知识点都已经脚踏实地的学会了。
缺点: 练习题联系紧密,很难单独来做,练习题中有很多关于数学的内容。后期讲解深度不够,抓不住重点。
《Java 核心技术》
如果你是稍微接触过 C++/VB 等的小白,那么这本是最佳入门选择。
优点 1: 知识完全无死角,但讲解又流利。虽然大而全,但从头看到尾也是很畅快的。所以这本书既可以当做 "教程",也可以当做之后的一个 "技术词典",有如此平衡,真的是非常难得的。优点 2: 在各编程语言之间建立了大量的横向联系。几乎没讲到一处都会联系一下 C++,有时候也会联系 #C,VB,这对于学习是非常有帮助的,因为学习的过程其实很大程度上就是在我们头脑中建立知识连接的过程。
优点 3: 特别注重教读者查阅 API 文档。在讲解某个知识点的时候,经常会贴出 API 文档,并且指导作者去查阅。我觉得对于培养查阅的习惯是非常好的。
优点 4: 案例丰富而优秀。讲解的时候必然会配上一个案例,而且案例的独立性和联系性有非常好的平衡,首先某一章的案例很多时候是相互关联的,但是就算单独拎出来,你也能看得懂。
缺点: 无练习题
所以对于初学者,我强烈建议这两本书配合着来学。
第一本书算是一个拐杖,能让你撑过最艰难的时候,但是到后来我就不推荐这本书了,因为感觉越往后写的质量越差。建议学到第十章作用就彻底抛弃。
这个网站真的是少有的用心的教程站,这是知识点覆盖较为全面,而且都有课后的练习题,每一节有,每一章也有,这非常的类似于《Java 语言程序设计》。
优点 1: 语言优美自然,对不会英语的人很友好。以上两本书都是从英文翻译过来的,不可避免的会出现很多翻译上的错误和不通之处,而 How2j 完全是国人做的,所以就没有这个问题。
优点 2: 练习题密集而有有趣。课后的练习题,每一节有,每一章也有,这非常的类似于《Java 语言程序设计》。和《Java 语言程序设计》不同的是,后者的练习题更聚焦于实际,而前者的练习题有大量的数学内容。
优点 3: 学习社区氛围浓厚。每一个页面下面都会有评论区,你可以把自己的问题发在上面,有时候作者也会回复,而且还有官方的 Q 群。
优点 4: 学习路径清晰。你能够很清楚的看到整个 Java 的学习图景,由于是原生中文,理解起来会很简单,这样的话就会让你有一种 "掌控感"。
缺点: 很多知识点讲得并不深入,经常点到为止。
二、多参考策略
这些书的作者水平无疑都是很高的,但是他们在讲解某个知识点的时候,用的角度往往是不同的,有时候这位讲得好一点,有时候那位讲的好一点。所以同时打开好几本书,对照着看是非常棒的。所以我建议使用电子版而不是纸质书,纸质书对于检索实在是太不友好了。
下面我介绍几个在入门阶段不适合从头学起,但非常适合参考的资料。
《疯狂 Java 讲义》
这本书就是国内著名的 "啥都会的李刚" 写的,至于这本书和《Java 核心技术》的区别,你可以理解成语文课本和新华字典的区别,这本书真的是不适合从头开始看。
缺点: 太过自 High。
"李刚" 写这本书的时候完全是在自 High,完全不考虑它的读者群体,各种举一反三,如果看懂了,你会觉得很有道理,但是对于初学者来说一下子蹦出一大堆完全不懂的词汇,对于自己的自尊心和意志力来说,都是一个艰辛无比的考验。
如果你选的第一本入门书籍是这一本,那么很大程度上你就会要经历《Java 从入门到放弃》的完整体验了。
优点: 举一反三,透彻清晰。
它的优势和劣势都在于 "举一反三",由于李刚有多年的教学经验,所以在很多概念上,他讲的都非常的透彻。 而且还有一个重要的优势,就是它是中文原生的,当你在一本翻译书上死活都看不懂的时候,翻一翻这本书,也许你马上就懂了。
《Java 编程思想》
这本书是 Java 经典中的经典,而且讲述很完善。唯一的问题就是有点老,Java8的内容好像是一概没有。
《Effective java》
阅读群体就不是初学者。不是那种事无巨细的教程,更像是一个程序员老大叔的个人笔记。
以上提到的各种资源中英文 PDF,以及源代码一个都不落,我都打包传百度云了。
简直是福利了。我在学习的过程中也手了不少别人的帮助,这里算是回馈一下吧。