自1996年JDK 1.0(Java 1.0)发布以来,Java受到了广泛的欢迎,在你说得出名字的所有计算平台上,都或多或少会浮现出Java的影子。它是一门非常强大的编程语言,在全球已有超过 900 万的开发人员。
在过去数年,我们也出版了与之相关的多本图书,本文大致梳理了它们的学习路线,希望在大家选书的时候有所帮助。
入门
- 薛小小学Java
这是一本掩映在平凡书名下,表里俱佳的入门好书,推荐下载样章试读。
与大多数编程书不太一样,这本书有着不计其数的插画和恰如其分地问答,营造了绝对有趣、热情的学习氛围。
更珍贵的是,作者的讲解真正做到了由浅入深,不会让学习者从入门到放弃: “在本书里,我会由浅入深地为你讲解如何使用Java开发软件,通过具体实例,更好地学习和运用这门语言。 此外,你将会了解如何辨别编程习惯的好坏。你还可以学到如何正确地编写一个面向对象的程序,如何区别面向服务架构和函数式编程,如何让你编写的代码可读性更高,如何测试它,等等。”
学完本书,将具备学习其他知识的能力, 比如去尝试学习Android 、 Eclipse RCP、Java Web Service、用Java实现网络开发、Ant、Maven,或者其他在JVM上运行的编程语言,如Groovy、Scala等。
其他基础知识
学习编程并不仅限于某个语言,在学习的过程中,也不免要涉及一些其他方面的基础知识,比如git、shell、数据库以及算法等等,我们有一些针对初学者的基础教程,可以帮助你更好的入门:
- git
GitHub入门与实践
秉承了日系技术书刊一贯的“手把手教学”风格,从Git的基本知识和操作方法入手,详细介绍了GitHub的各种功能,在实践中学习 GitHub。
- shell
Linux Shell脚本攻略(第3版)
结合丰富的实际案例,介绍了如何利用shell命令实现与操作系统的高效沟通。
- sql
SQL基础教程(第2版)
日本知名数据库工程师写给初学者的实用指南,面向完全没有编程经验的初学者,介绍了关系数据库以及用来操作关系数据库的 SQL 语言的使用方法。
- 网络
网络是怎样连接的
“计算机网络概论”图解趣味版,读懂了这本书,就理解了网络世界的全貌。
- 算法
我的第一本算法书(日漫)
没有编程基础也能看懂,比另一本《算法图解》有更多插图 ♀️。
是自学算法的好搭档,也是学渣的希望。如果学校里的数据结构和算法课让你生畏,这本书保证不一样。
算法图解:像小说一样有趣的算法入门书(美漫)
最好有编程基础,在图解以外,还用Python编写了示例以做说明。
这本书的特点都藏在标题里了,是一本广受好评的算法入门书。
进阶
- Java实战(第2版)
通过示例全面讲解Java 8、9、10新特性,帮助你跨过“原理听起来不错,但还是有点儿新,不太适应”的门槛,从而熟练地编程。
- Spring Boot实战
作者Craig Walls是Spring Social及Spring Sync项目领导者,著名技术博主。
全面分析了Spring Boot核心特性与功能,写作风格浅显易懂。
高级
- Java性能优化权威指南
James Gosling(Java之父)评价此书:Java应用性能调优的圣经,内容通俗易懂,介绍了大量的监控和测量工具,涉及各种硬件架构和操作系统。涵盖了如何构建实验、解释结果以及如何采取行动等技巧。如果你是一个细节控,那么这本书正适合你。
- Java性能权威指南
适合那些渴望深入了解 JVM 和 Java API 性能各个方面的性能调优工程师和开发者。
第2版的出版进展可点击书名链接查看。
- 图解Java多线程设计模式
《程序员的数学》作者结城浩执笔,整理了12 种常用的多线程设计模式,“图、文、码”并茂地讲解了它们各自的优缺点、相互的关联以及适用场景。
- 图解设计模式
从零开始学习设计模式,可以先去看这本,也是结城浩的作品。
- 精通Java并发编程(第2版)
如果已经了解并发编程基本原理,想成为Java并发API的专家,可以看看这本书。
- Spring微服务架构设计(第2版)
通过一系列生动示例,全面、细致地阐述了如何利用Spring框架、Spring Boot和Spring Cloud构建微服务,以及如何利用Docker部署微服务,并用Mesos和Marathon进行管理。对于想要构建强大的互联网级应用,以满足现代业务需求的Spring开发人员来说,这本实用指南极具参考价值。
- 微服务设计
详细地阐述了微服务的基本概念,还深入探究了如何对自治服务进行建模、集成、测试、部署及监控。书中虚构了某个领域的一家公司,来帮助学习微服务架构是如何影响一个领域的。
扩展
- Java测试驱动开发
介绍如何将各种TDD最佳实践应用于Java开发,适合经验丰富的开发人员,学习更有效的系统和应用程序开发方法。
- 演进式架构
由ThoughtWorks的CTO和架构专家联合执笔,详尽介绍了演进式架构的必要性以及如何在具体的软件开发流程中实现演进式架构,涵盖了适应度函数、增量变更、架构耦合、演进式数据、构架可演进的架构、实践演进式架构等内容。
- 发布!设计与部署稳定的分布式系统(第2版)
面向分布式软件系统(包括网站、Web服务和企业应用集成项目等)的架构师、设计师和开发工程师,讲述了软件系统如何能够通过生产环境的残酷考验,第1版曾获“软件行业的奥斯卡奖”——第18届Jolt生产效率奖。
- 虚拟机设计与实现:以JVM为例
旨在通过循序渐进、通俗易懂的方式讲解虚拟机的通用技术,主要以JVM设计为例,并兼顾其他虚拟机。还包括一些同类文献中较少涉及的主题,例如运行时辅助、栈展开和本地接口。
- Java数据科学实战
解释了数据科学过程每个步骤背后的基本数学原理,以及如何将这些概念应用于Java。
- Tomcat架构解析
详细介绍了应用服务器的架构以及工作原理,不仅可以系统掌握Tomcat的使用,而且对于应用系统基础架构也有很大的借鉴意义。
- gRPC Java工程入门实践
介绍了 RPC 的概念,gRPC 在 Java 工程中的应用,以及在应用 gRPC 时所面临的一些实际问题。通过工程实践,总结出了这些问题的高效解决方略。