一、Java书籍
新手
老是有人说Java编程思想,但是我觉得入门应该建立Java语言的一种体系,应该读一本较为浅显易懂的书,推荐先看Java JDK7学习笔记。
进阶
这时候已经基本了解相关语言架构体系,可以尝试的读下设计模式相关:Head First设计模式。
了解一本基本编程技巧:编写高质量代码:改善Java程序的151个建议。
可以继续深入的了解一些Java内部机制:Java程序性能优化。
探索内部
这个时候已经了解基本的知识,可以说基本算是Java程序员了。
应该继续了解探索Java内部的实现机制。首选直接研读:JDK源码。源码中主要是java.lang / java.util / java.util.concurrent 几个包。
虚拟机相关的有:深入理解Java虚拟机 / Java虚拟机规范。
并发相关的有:Java并发编程实践 /多处理器编程的艺术。
一本综合的书作为引导性的研究比较不错:分布式Java应用 基础与实践。
框架
框架的最好的学习方法还是自己使用,然后研读源码。
比较优秀的框架:Spring /
Hibernate / Lucene。
Spring有解析源码的书:Spring技术内幕。
Lucene相关的书籍可以考虑:这就是搜索引擎 。
二、程序员
算法
说到算法,那就肯定有:算法导论 / 编程珠玑 ,但我觉得初学者先读
数据结构与算法分析 比较合适点。其它几本突击面试的也不错:编程之美 / 剑指Offer / 程序员面试金典。Java程序员注重的更向数据结构,直接考察数组、字符串算法的比较少。
如果想算法竞赛,那就可以读一下:算法竞赛入门经典 。竞赛和一般的面试考察点是相差很大的,必须实打实的练习。
数据库
在研究之前,可以读一下:数据库系统概念 ,不需要仔细研读,只是需要建立起一个数据库的基本概念。
然后,可以读一下:收获,不止Oracle 。虽然废话很多,不过不失为一本很好的书。
网络体系
计算机网络:自顶向下方法
用于建立体系架构的基本概念。TCP/IP详解 用于深入研究上几层协议。
HTTP权威指南 比较适合互联网相关的程序设计。
操作系统
现代操作系统 用于建立基本概念。
深入理解linux内核 是一本相当不错的书,它主要给出了一种流程话的描述。不管你什么程序员,这本书上的知识都囊括了相当多的编程相关的基本机制、原理。linux内核中的思想其实就是上层语言的编程的基本机制。
操作系统的研究相当重要!!!!
分布式与网站架构
大型网站技术架构 与
大规模分布式存储系统 。
三、结语
我认为最主要的方向应该是:虚拟机 / 操作系统 / JDK源码 / 并发 。
走上了程序员这条道路,必须了解大量的技术体系,程序是一个开源的世界,这是一种幸运也是一种不幸,在能无偿了解这么多知识的同时,我们也必须了解如此大量的知识才能成为合格的程序员。
Java程序员应该读的我认为不错的书单