学习Java已经很多年了,一直以来我都是实践优先,按需学习。技术书虽然也看过不少,但是并没有体系化。最近手头上的事情有点少,所以准备搞一份阅读清单,然后按照清单慢慢读。
正如叔本华所说:“我们读书时,是别人在代替我们思想,我们只不过是重复他的思想活动的过程而已。”正因为如此,阅读经典才有其价值。除了阅读经典,阅读的路径也很重要,这就像是造房子一样,一座大楼一定是先从地基搭起,没人会蠢到先盖屋顶。但就是这个路径,我在网上找了很多资料,大体上都差不多:先学JavaSE,再学Java Web和前端,再学数据库等等。当然,我也找到了比较另类的路径,比如这篇文章:如何系统学习Java。按照这篇文章的思路,学习Java其实就是学习怎么用Java去操作现代操作系统的各项功能(CPU、内存、网络、磁盘IO、线程等等):JVM虚拟机帮助我们管理内存,Java I/O和NIO帮助我们管理输入输出,Java Socket帮助我们管理网络连接,Java Thread帮助我们管理线程,Java concurrent包帮助我们处理并发问题,Java Collection帮助我们实现了很多常用的数据结构,用来管理数据(也是管理内存的一种)。基于上面的思路,我整理了一份一个月的阅读清单:
第一周:《Java核心技术卷一》
目标:通读1~6章,精读11~14章
这本书比《Java编程思想》好读很多,当年入门就是靠这本书,这么多年过去了,重新读一遍应该会有不一样的体会。
第二周:《effective java》
目标:通读全书
这本书可以说是每次读都有不一样的体会,读多少遍都不过分。
第三周:《Java网络编程》
目标:通读1~6章、13章,精读7~12章
O REILLY的英文版的书有口皆碑,中文版的书如果翻译到位,那也是可以秒杀国内的灌水书的。
第四周:《Java线程与并发编程实践》+《七周七并发模型》
目标:比较阅读,前一本是中国人总结的,后一本是美国人总结的,在比较阅读中去体会与学习多线程编程
书单已经分享出来了,我顺便也在这里立个flag:每本书写个总结,总结不会流于形式,一定是基于实践和思考后的深度产出。over~