以下是我推荐给Java开发者们的一些值得一看的好书,从java基础开始到高级,以及从高级进阶到架构等的书单。
基本都是经典之作,可以利用工作闲暇的时间,系统阅读。
本文作者,优知学院创始人 陈睿
优知学院是IT人在线进阶站,帮助IT人升职加薪,提供系统的互联网产品技术进阶干货资料和课程,以及定期的线下实战活动。
java程序员进阶之路
上图是完整java程序员进阶之路,可以进阶架构师也可以结合管理进阶,往技术经理、总监发展。
上周,写了程序员进阶到架构师三篇,基本涵盖了java程序员到架构师的必备技能。如果要想系统掌握,可以结合书单一起自学进阶。
java程序员进阶书单
1 刚毕业工作1-2年java程序员
在这一年里,你至少需要看完《Java编程思想》这本书。如果部分章节,掌握不好的情况,就反复学习查看,直到掌握好为止。
《Thinking in Java》java系列经典开启书。Bruce Eckel在书中不仅仅讲解了Java的语法,更重要的是将OOP编程思想循序渐进、浅显易懂地表达出来。从这点上来说,中文版翻译成Java编程思想非常恰当
JAVA核心技术(卷1):基础知识,刚入行业的java程序员,很多都是以本书开启自己的生涯。与《Java编程思想》齐名的Java图书泰山北斗,前者内容丰富,在讲述Java语言的同时把Java编程思想也娓娓道来,让人如沐春风;后者偏重于讲解Java技术,举例说明了大量API的使用。
此书分为了基础版和高级特性版,你也可以读java编程思想,也有涉及高级特性部分。这本书在新手入门上比《Thinking in Java》稍胜一筹,但在内容深广度、性价比方面则跟《Thinking in Java》不可同日而语,建议选读。
这个阶段还需要掌握web开发基础:html css,js等web开发基础,以及java web开发框架 struts2 springmv mybatis等框架,熟练使用mysql以及相关工具mysql-front等,以及常用的开发工具:eclipse等。
2 工作3年左右的java高级程序员
这部分时间段的同学,已经对Java有了一个更加深入的了解。但是对于面向对象的体会可能还不够深刻,编程的时候还停留在完成功能的层次,很少会去考虑设计的问题。于是这个时候,设计模式就来了。这个阶段,你的核心任务就是提高你的代码能力,注重代码的质量。
首先,从设计模式开始了解代码这门艺术。
《Head First设计模式》(中文版)共有14章,每章都介绍了几个设计模式,完整地涵盖了四人组版本全部23个设计模式。Strategy、Observer、Decorator、Abstract Factory、Factory Method、Singleton,Command、Adapter、Facade、TemplateMethod等,
这本书,通俗易通,写得很有趣,图文并茂,设计模式入门。
号称设计模式领域的圣经,软件工程和软件架构必看的书籍。内功修养。这本书结合设计实作例从面向对象的设计中精选出23个设计模式,总结了面向对象设计中最有价值的经验,并且用简洁可复用的形式表达出来。
四位作者均是国际公认的面向对象软件领域的专家。Head First设计模式拥有风趣的语言和诙谐的例子,但它既缺乏实际的工程范例,也没有给出设计模式的应用/适用场景。
我个人建议是在读完Head First这本书之后立即阅读“四人帮”的这本设计模式。
本书介绍了在Java编程中78条极具实用价值的经验规则,这些经验规则涵盖了大多数开发人员每天所面临的问题的解决方案。通过对Java平台设计专家所使用的技术的全面描述,揭示了应该做什么,不应该做什么才能产生清晰、健壮和高效的代码。
可以适当的接触敏捷开发,在本书是全球的软件开发专家和软件工程大师Robert C.Martin将向您展示如何解决软件开发人员、项目经理及软件项目领导们所面临的最棘手的问题。这本综合性、实用性的敏捷开发和极限编程方面的指南,是由敏捷开发的创始人之一所撰写的。
Martin Fowler和《重构:改善既有代码的设计》另几位作者清楚揭示了重构过程,他们为面向对象软件开发所做的贡献,难以衡量。
任何产品代码都不是一蹴而就,而是在反复不断的修改中进化而来。
重构正是这样一本介绍如何改进代码的书籍——如何在保持代码行为的基础上,提升代码的质量(这也是重构的定义)。
3 工作3年以上准备往架构师方向发展
这个阶段,我用一句来总结。你需要做的是深入了解java相关的技术原理,Java底层和Java类库,以及SSM、SSH等常用框架源代码,JVM、分布式缓存、存储、Linux内核等的核心原理。
Java程序员必读经典,深入理解Java虚拟机。
《深入理解Java虚拟机:JVM高级特性与最佳实践(第2版)》共分为五大部分,围绕内存管理、执行子系统、程序编译与优化、高效并发等核心主题对JVM进行了全面而深入的分析,深刻揭示了JVM的工作原理。
确为提升Java功力之良药。本书使自己对于虚拟机的运行机理与底层知识真正来了一次近距离接触,许多知识不再只是符号或文字的堆叠,而是一种真正地理解。国人很难写出这么棒的书,本书值得推荐。
其次,在过去的工作当中,你肯定或多或少接触过并发。这个时候,你应该去更加深入的了解并发相关的知识。推荐《Java并发编程实战》这本书。
本书围绕大型网站和支撑大型网站架构的 Java 中间件的实践展开介绍。从分布式系统的知识切入,让读者对分布式系统有基本的了解;然后介绍大型网站随着数据量、访问量增长而发生的架构变迁;接着讲述构建 Java 中间件的相关知识;之后的几章都是根据笔者的经验来介绍支撑大型网站架构的 Java 中间件系统的设计和实践。
如果对淘宝的Java技术感兴趣,这本书就是最佳的干货选择。作者是淘宝Java中间件团队的创始人,如果你想全面了解中间件,推荐此书。
本书是作者在多年的工作中积累的第一手Spring框架使用经验的总结,深入剖析了Spring框架各个模块的功能、出现的背景、设计理念和设计原理,揭开了Spring框架的神秘面纱,使你“知其然,更知其所以然”。
Spring里实践了大量Java语言优秀的理念,此书通过讲解Spring原理,通俗易懂地向我们展示了这些理念。Spring对于java框架 系列的重要性之高,三大框架ssh里面写的最好的一本书,非常推荐这本书。
《大型网站技术架构:核心原理与案例分析》通过梳理大型网站技术发展历程,剖析大型网站技术架构模式,深入讲述大型互联网架构设计的核心原理,并通过一组典型网站技术架构设计案例,为读者呈现一幅包括技术选型、架构设计、性能优化、Web 安全、系统发布、运维监控等在内的大型网站开发全景视图。
大型网站架构设计的清单,比较全面、系统、清晰,虽然讲解得不是特别深入,但却比较朴实易懂,架构入门系列文章。
涵盖了Web站点性能优化的所有内容,包括数据的网络传输、服务器并发处理能力、动态网页缓存、动态网页静态化、应用层数据缓存、分布式缓存、Web服务器缓存、反向代理缓存、脚本解释速度、页面组件分离、浏览器本地缓存、浏览器并发请求、文件的分发、数据库I/O优化、数据库访问、数据库分布式设计、负载均衡、分布式文件系统、性能监控等。
高性能入门的好书,我个人也是从这本开启高性能之旅。