Today, I saw a question on Zhihu, what is the learning method and process of Java? This article will talk about the learning process of Java and the books recommended for each process from the perspective of a programmer who has learned Java for nearly 7 years.

The learning process is always similar. Here, I divide the learning of a technology into six stages: introduction, basic learning, practice, advanced learning, in-depth principle, and peripheral learning. According to these six stages of learning in turn, technology will be able to a big step.

Today, I will talk about the six stages of Java learning to read what books.

Introduction to a,

The first is the introductory stage. At the beginning stage, many people will recommend “Java Programming Ideas” and “Java Core Technology”, but these two sets are still a little cumbersome for beginners.

At the beginning stage, COLLEGE textbooks are my priority. If you happen to have an introductory Java class in your school, you are advised to learn it well with your teacher.

Why do I recommend university textbooks here? Because in the beginning stage, first of all, if you want to establish an overall impression of the Java language, know what he is, what he can do, and what he can do.

College textbooks, for all their shortcomings, can build an emotional understanding of the Java language. And as a teaching material, it is not too thick, generally one or two hundred pages about the same, read quickly. Something like Object-oriented Programming (Java) could be an option.

Head First Java is also recommended here, and looks a breeze.

Second, basic learning

After learning the introduction above, we have some perceptual understanding of Java, will understand some Java basic syntax, can write some small programs.

At this time you can see some systematic books, here recommended “Java programming ideas”, “Java Core Technology”.

“Java Programming Ideas” this book for the Introduction of Java knowledge is very detailed, basically all the knowledge points about the use of Java can be found here, can be used as a dictionary for daily reference. However, there are some disadvantages, translation books can look a bit obscure, another disadvantage of foreign books is that they are more verbose.

Java Core Technologies is in two volumes.

Volume 1 focuses on the basics of Java, chapters 1 to 6 introduce the basics of Java, which is the focus of the part, chapters 7 to 10 introduce some graphical interface development, can not be ignored, 11 to 14 introduce exceptions, generics, collections, multithreading, also need to focus on.

Volume 2 is more about the use of Java, IO, database, etc., you can read it in your spare time.

These structured books help us build up the whole body of knowledge, and even if we don’t know all the details, we know where to look when we need them.

Three, practice

After having the foundation, can start to do some practice. In fact, Java can do a lot of things, at this time we will choose some corresponding direction, such as Java Web, Android development and so on, there are different specific directions, different books and in-depth. For example, Java Web needs to read Spring, database related books, Android development needs to understand the Android Api, and so on.

According to each direction, there are “Spring Real”, “In-depth Analysis of Java Web Technology insider”, “Redis Real”, “The first line of code” and so on

Fourth, advanced

If you want to further learn Java, you will usually learn virtual machines and concurrency, etc. Here, I recommend In-depth Understanding of Java Virtual Machines, Effective Java, and Java Concurrent Programming Practice.

Understanding the Java Virtual Machine (JVM) is an introduction to the JVM. It is a comprehensive and easy to read book. It is one of the must-read books for advanced Java. After reading this book, you will have a basic and overall understanding of the JVM, many of which are essential for interviews.

Effective Java introduces 90 rules that are often used in practice for local optimal solutions. One of the features of the book is that you don’t have to read them from beginning to end because each rule is relatively independent.

“Java Concurrency In Action” is a perfect Java concurrency manual, almost all programmers learning Java concurrency must read a book.

Five, in-depth principle

Through the above books, we have a good understanding of the Java virtual machine, concurrency, if you want to really in-depth understanding of the Java language, it is necessary to have some understanding of virtual machine implementation. The Java Virtual Machine Specification, Uncovering the Java Virtual Machine: PRINCIPLES and Implementation of JVM Design, and the Garbage Collection Algorithm Manual: The Art of Automatic Memory Management are recommended.

The Java Virtual Machine Specification is the most official and authoritative document that provides a detailed introduction to the JVM specification, including the JVM structure, Class file format, Class loading process, JVM instruction set, and so on. To learn more about the JVM specification, this book is a must.

Uncovering the Java Virtual Machine: JVM Design Principles and Implementation dissects Hotspot’s implementation from a source code perspective. The JVM is really just a specification with different implementations, and this book compares HotSpot source code to make a lot of things that we are just conceptually visualized and easier to understand.

Garbage Collection Algorithms Manual: The Art of Automatic Memory Management introduces various garbage collection algorithms, not limited to Java. We know that the biggest feature of Java compared to C/C++ is garbage collection. By studying garbage collection algorithms, we can gain a deeper understanding of the implementation of the JVM.

You can also try implementing key parts of the JVM yourself by referring to open source projects on the web. Like github.com/5A59/Zvm… The JVM.

Sixth, the surrounding

It’s not just About Java, it’s about programming concepts, refactoring, design patterns, etc. These programming ideas also indirectly determine the height of our technology.

There are books on programming ideas like Refactoring to Improve the Design of Existing Code, Zen of Design Patterns, Complete Code, Introduction to Algorithms, and more.

Refactoring to Improve the design of existing Code reveals the process of refactoring, not only the principles of refactoring, but also the best practices. This book is a must-read for programmers working on large projects.

“Design mode of zen” is written by the people of a design mode of the entry book, more easy to understand, vivid image.

“Code” needless to say, is a god, introduced the software development process of each problem, may not know the meaning at first, such as practice after often read often new.

These are the stages of learning Java, along with some recommended books for each stage