最近面试了很多小朋友,结果真的不是很理想。工作3-5年,Java基础不扎实,设计模式不了解,甚至用了几年Spring,它是如何控制事务的都不了解,更别说去了解它们的原理了。
有些人是因为工作本身的原因,只需要他们一个罗卜一个坑地往里填,渐渐地也就不愿做过多的研究和学习了。坦白讲,学得越多,反而觉得越痛苦,因为框架已把他们圈得死死的。例如某日本外包企业。
有些人则是不知道如何去学习,没有找到方向。以至于面试结束时,很诚肯地问:你能不能给我推荐一些学习的好书?
相反,我所认识的一个小弟就比较爱学习,也比较会学习。例如,他不单了解Java集合框架,知道各种集合类的差别,甚至去读它们的源码,并说出自己的心得。这样的小弟即使不会Spring,不会Hibernate,已经不重要了,学会它也就是分分钟的事情。
以前,也零零散散地推荐了一些书给大家,在这开始新工作之际,整理一个列表给大家,希望对大家有用。
入门类
- Java 核心卷 (CoreJava)
- Java 编程思想(Thinking in Java)
- UML (暂无推荐,但必学)
注:这类书一定要照着书本的例子多练习,多体会,并举一反三。这是基本功。
实战类/框架类
- 设计模式 (需要结合网络上的讲解或其它类似书籍来看)
- Spring / Hibernate / Struts /Maven / Docker / Redis / Etc.
注:这类书藉我就作具体不推荐了,看看网上推荐的即可。在阅读时,也不用读得太过细致,用时再查即可。只是,需要重点了解的是这些背后的设计原理。这也是为什么我把《设计模式》归于这一类的原因。
方法类/提高类
- Effective Java
- 重构
- 测试驱动开发
- 硝烟中的Scrum和XP
- 解析极限编程
- 敏捷软件开发原则、模式与实践
- Scrum敏捷项目管理
- 成功的项目管理 (或者去学个PMP吧)
注:就我个人来说,非常喜欢各类敏捷类的书籍和方法。相较于CMMI, PMP这些,更高效。毕竟,这些最佳实践都是出自行业顶尖高手的实践总结,而不是学院。
设计类
- 大型网站技术架构
- 大型网站系统与Java中间件实践
注:这类书籍,现在风头最旺的无过于阿里系的书籍,都是好书。毕竟实践出真知,同时也接地气。只是,在看这些书时,更多地去需要将知识点展开来,书上讲的多是内功心法,需要从网络上多搜些知识来扩充。
升华类
- 读源码
- 多练习
- 多重构多雕琢
总的来说,兴趣还是最最重要的,如果只是把软件当作养家糊口的工作,我不知道是不是有兴趣和决心去把这些书读完……
好了,就先这么多吧,大家继续分享吧!