读完这部被誉为经典的书后,我打算总结并分享一些经验,给打算通过此书自学Java的小伙伴一些参考,使大家能高效学习、少走弯路。(全文2500字)
我结合了自己的学习感受,广泛搜集并整合其他人的评价,在此基础上我斗胆谈一谈这本书的优缺点
优点
系统
书的知识结构合理,全面覆盖Java开发者所需的基础知识,并且前后联系紧密,承上启下,由浅入深。
细致
-
对jdk的下载和安装部署进行了详细介绍和指导,这对于初学者来说很友好。
-
基础的知识点的讲解详细且易于理解。对于主要的知识点,作者会提供完整的示例程序帮助读者领会贯通。基础语法、类与对象、继承等部分应该是面向新手的,作者似乎恨不得搅碎了喂到读者嘴边,生怕你学不懂。
-
如果觉得韩顺平讲泛型和集合时比较笼统、零散、云里雾里的,那我十分建议你学习这一块内容时去看这本书。
知识面广
作者对JAVA技术不可谓不专业,除了正文部分系统细致的讲解外,在注释部分作者会为读者做进一步拓展,比如就某个技术谈论其历史渊源、优劣、与C++的联系和区别(这对学过c++的读者会很有帮助)等等。对于注释部分,我们能明白一个所以然最好,当然,不理解也没关系,不影响我们继续学下去。
另外,有时作者的语言还挺幽默诙谐的(笑)
与时俱进
这本书之所以享誉至今,一个很重要原因就是紧跟时代发展,随着Java版本的更新而不断进行自身迭代。我看的是最新的第12版,基于JDK17。
书作为知识传播载体的优势
-
书的知识架构和语言会经过精心组织,能写书的人的功力也不会差,更何况是享誉编程界的经典畅销书(本书作者是真大佬,自查)。在细致的编撰、修改和出版社检查后,错误几乎会被完全排除。相比之下,网上的大部分教程会逊色许多(当然,公认的精品教程在某些方面可以battle一下)
-
单位时间内,书籍传递的信息量一般(远)大于视频。至于接收信息、理解并转化成自身知识的效率,那就因人而异了(这方面我看书的效率较高)。
-
看书不需要来回拉动进度条,不需要开倍速。不懂的地方可以很方便的一直看、反复看、跳着看,忘记的内容可以十分方便的查阅——这是视频无法比拟的优势
缺点
1、有些地方专业性很强,第一次很难看懂,容易劝退没有掌握合适学习方法的小白。
2、内容太全太多,初学者容易花费大量时间学习但又抓不住重点。相比之下,视频教程更加浓缩,看完所花的时间会更少。一些评价认为,这本书更适合有一定基础和实践经验的coder当做查阅的工具书,哪里忘了就翻哪里。
总之,这本书新手可以读,但不完全适合入门。“《Java核心技术》并非市面那些零基础速成书”。个人认为纯小白不适合看,起码有一点编程学习基础才能看得下去(比如C语言学得不错、学过数据结构的基础知识)。
建议
别着急看书
比较推荐的学习方法是:先看视频,让别人带着掌握一个大概;然后自主看书,完善知识体系。如果你有一个好的视频学习资源,那就跟着学吧(韩顺平讲得确实可以,但我看到500多集后就不想跟下去了);如果你看完以上的分析,结合自身实际权衡利弊之后,觉得看书学习更适合自己,那请接阅读下面的的建议,我实践出来的经验教训或许可以帮你高效学习、少走弯路。
最后,看视频学还是看书学,看什么视频看什么书等等其实并不是最重要的,最重要的是坚持不懈的态度、沉得住气的心,不“三天打鱼两天晒网”,不断反思、持续改进。
我们只是希望能尽量选择一个适合自己学习途径载体,力求事半功倍,起码学起来没那么困难。
借书
先去图书馆找一找,看看能不能借,买的话不太划算。
先了解重点
先看鱼皮的JAVA学习路线(或者其他好的学习路线),确定哪些知识需要重点掌握,哪些需要抛一边。记下来,学完一个√掉一个。这条对看视频学习的小伙伴同样适用。
各章节阅读建议
第1-9章
讲Java 基础知识,比如Java 程序设计概述、对象与类、继承、接口、lambda 表达式与内部类、异常、泛型、集合等。这些知识点都是Java开发者是必须要掌握的,必须一字一句搞懂。
第10-11章
讲 图形用户界面程序设计 和 Swing用户界面组件。鱼皮以及不少读者建议这部分内容可以不看,因为它不是我们学习的重点,业务中也很少用到。
第12章
讲并发、线程、进程等。 Java 学习过程中最难啃的一块,但“这是初级程序员迈向高手的必经之路”。阅读的过程中不懂可以跳过,刚年限不久的小伙伴不要强行理解,以后有机会再来二刷(我是没学明白,很多都看不懂,示例程序写出来也运行不了,寄。后面还得找其他资源补补)
实践:多敲代码
-
选择性实现书上讲到的知识点
-
必须敲一遍作者给出的示例程序
眼:看懂了
脑:学会了
手:学废了
自己动手实现一遍才能发现问题,正确理解,加深理解。光看不敲,知识就是过眼云烟,甚至自己弄错了都不知道
做笔记
弄懂了也要记,现在记得不代表以后记得。按照自己理解的形式简洁明了地记下来,同时分类整理。敲过的代码也记,把实现核心功能的代码和复用性强的代码搬到自己的知识库里,以后用到时直接copy过来增删改查就可以了,方便。(注:本书后面的示例程序会经常用到前面的示例程序,所有保存好前面敲的代码很重要哦)
正所谓“好记性不如烂笔头”嘛,只不过我们现在不用笔了,有很多好用的软件可以帮助我们高效地做笔记。本地笔记我推荐typroa,云笔记鱼皮推荐语雀。
卡壳的地方不要死磕
鲁迅先生读书时,对看不懂的地方,他认为“若是碰到疑问而只看到那个地方,那无论到多久都不会看懂。所以跳过去,再向前进,于是连以前的地方也明白了”。
如果不是有这一方法论的指导,我可能迈不过反射和并发的坎......
看完之后
去牛客刷一刷JAVA的题,检验一下自己掌握得怎么样,巩固所学,查漏补缺(我一刷才痛苦地发现自己的基础像蜂窝一样,一开始5题错3、4题......幸好没有自以为是地、着急地去学mysql和开发框架)。拿JAVA去刷算法题也是一个好办法。
总之,学完一门技术的理论知识后,然后不要着急去学新的技术。
这波算是把鱼皮路线中“Java入门”和“巩固基础”糅合在一起,有点着急哈哈,大家不要学我。