最近面试了很多小朋友,结果真的不是很理想。工作3-5年,Java基础不扎实,设计模式不了解,甚至用了几年Spring,它是如何控制事务的都不了解,更别说去了解它们的原理了。

 

有些人是因为工作本身的原因,只需要他们一个罗卜一个坑地往里填,渐渐地也就不愿做过多的研究和学习了。坦白讲,学得越多,反而觉得越痛苦,因为框架已把他们圈得死死的。例如某日本外包企业。

 

有些人则是不知道如何去学习,没有找到方向。以至于面试结束时,很诚肯地问:你能不能给我推荐一些学习的好书?

 

相反,我所认识的一个小弟就比较爱学习,也比较会学习。例如,他不单了解Java集合框架,知道各种集合类的差别,甚至去读它们的源码,并说出自己的心得。这样的小弟即使不会Spring,不会Hibernate,已经不重要了,学会它也就是分分钟的事情。

 

以前,也零零散散地推荐了一些书给大家,在这开始新工作之际,整理一个列表给大家,希望对大家有用。

 

入门类

 

  1. Java 核心卷 (CoreJava)

  2. Java 编程思想(Thinking in Java)

  3. UML (暂无推荐,但必学)

 

注:这类书一定要照着书本的例子多练习,多体会,并举一反三。这是基本功。

 

实战类/框架类

 

  1. 设计模式 (需要结合网络上的讲解或其它类似书籍来看)

  2. Spring / Hibernate / Struts /Maven / Docker / Redis / Etc.

 

注:这类书藉我就作具体不推荐了,看看网上推荐的即可。在阅读时,也不用读得太过细致,用时再查即可。只是,需要重点了解的是这些背后的设计原理。这也是为什么我把《设计模式》归于这一类的原因。

 

方法类/提高类

 

  1. Effective Java

  2. 重构

  3. 测试驱动开发

  4. 硝烟中的ScrumXP

  5. 解析极限编程

  6. 敏捷软件开发原则、模式与实践

  7. Scrum敏捷项目管理

  8. 成功的项目管理 (或者去学个PMP)

 

注:就我个人来说,非常喜欢各类敏捷类的书籍和方法。相较于CMMI, PMP这些,更高效。毕竟,这些最佳实践都是出自行业顶尖高手的实践总结,而不是学院。

 

设计类

 

  1. 大型网站技术架构

  2. 大型网站系统与Java中间件实践

 

注:这类书籍,现在风头最旺的无过于阿里系的书籍,都是好书。毕竟实践出真知,同时也接地气。只是,在看这些书时,更多地去需要将知识点展开来,书上讲的多是内功心法,需要从网络上多搜些知识来扩充。

 

升华类

 

  1. 读源码

  2. 多练习

  3. 多重构多雕琢

 

总的来说,兴趣还是最最重要的,如果只是把软件当作养家糊口的工作,我不知道是不是有兴趣和决心去把这些书读完……

 

好了,就先这么多吧,大家继续分享吧!