As Songo knows, technology is changing so fast that it can be confusing for students just starting out in the workplace.

There are so many online materials, but most of the time what we lack is not a material, but a learning plan!

In other words, where should we start to learn Java development? What should you learn? In what order should you learn?

At the beginning of songge’s sophomore year, when he began to learn Java by himself, the biggest problem was that he didn’t know what to learn and the sequence of learning. It took him a long time to explore by himself before he gradually established his own knowledge system.

So every time a friend asks me about the learning plan of Java, I can understand their dilemma.

Java development involves a lot of areas, there are a lot of things for developers to master, even beginners feel that these things to master is very messy, in fact, it is not! Everything to learn is intrinsically related.

Songo is here to give you a roadmap for learning Java, what you need to know, and in what order.

1. Overall planning

There are actually quite a few skill points involved in Java enterprise development, which I can roughly categorize into the following five categories (mind maps are available at the end) :

Based on this technology stack, you can continue to go full plank or go big data.

Some people may struggle with whether to be comprehensive or proficient in one area, but it’s not good or bad, it’s up to you. Do you want to go to a big factory to be a technical expert in a certain field, or want to be on your own, what you like is the best.

On the other hand, even if you want to study something, it doesn’t mean you don’t need to learn it. Even if you do, it means you have to read a lot of things first, and then slowly determine your direction.

This was the case when I taught myself Java in Songo University. When I didn’t know what was important and what wasn’t, I would learn it all. Anyway, college students have plenty of time, I even learned Dreamweaver, Fireworks and Flash. Even built a dynamic website using the rudimentary features of Dreamweaver.

Are these things useless to you? Not really. When I learned a lot, one day in the future, I suddenly had an Epiphany. When I strung together what I had learned, I felt an Epiphany.

Now, here are five pieces of songko to be broken up and introduced to you.

2. JavaSE

Take a look at my mind map (available at the end of the post) :

JavaSE is nothing to write home about. The basics haven’t changed in years. And JavaSE also has a lot of free tutorials on the Internet, everyone in the public account [jiangnan little Rain] back 2TB, there are also related free video tutorials.

Many companies that use Java8/9/10 actually write JDK1.5 code, but that doesn’t mean we don’t have to learn. Some of the new features in Java8/9/10/11 are still worth learning about, especially now that WebFlux is gaining traction, some of the ideas and technologies that have been spseeding since Java8 are still worth mastering.

3. The database

Take a look at my mind map (available at the end of the post) :

As a Java engineer, the importance of the database is self-evident, it is a basic skill, we can not rely on a DBA, after all, only a few companies have a DBA. There is a saying called “good SQL writing, leave work early.”

Database, of course, there are also many optimization problems, but when you just start to learn, I actually is not recommended to learn database optimization, master-slave, cluster, separation, speaking, reading and writing these things, these can wait until later when study micro service to learn more appropriate, in the case of just soon learn Java, database optimization study, It’s likely to make you shy away from the development path.

Database we in the public number [jiangnan a little rain] back 2TB, there are related free video tutorials

4. Web based

Take a look at my mind map (available at the end of the post) :

Learning is for yourself to learn, can not be lazy, so you see I listed here more knowledge points, and even some seem to be outdated technology.

Some people wonder if EasyUI should learn it, it’s a little old. My advice is, if you’re in college, do it. You have the time. If you already have a job and are looking to fill in the gaps, consider incorporating the company’s technology stack.

In fact, EasyUI is not a marginal thing. If you don’t use Vue, React or Angular, EasyUI is definitely an existence that can’t be ignored. Learning EasyUI can also help us understand the development process of the whole front-end.

Generally speaking, after learning Web basics, you can actually do some simple projects to consolidate the knowledge. There are also many open source projects on this website. Here is a CoolMeeting recommended by Songo:

  • Github.com/lenve/CoolM…

As for the other technical points listed here, are conventional technology, we in the public account [jiangnan little Rain] back 2TB, there are corresponding free video tutorials.

5. Classic frames

Take a look at my mind map (available at the end of the post) :

There are a lot of things involved here, which is the longest part of learning.

Here I would like to focus on a few issues of concern.

  1. SSH still need to learn

When we say SSH, we generally mean Spring, Struts2, and Hibernate. Of the three, Struts2 is definitely one that you don’t need to learn. If you’re fresh out of college, you go to a company, you do development with Struts2, you go there for three years, you know Struts2 inside and out, you go out and you find there’s no advantage. So I don’t recommend spending any time on Struts2.

As for Hibernate, I take this one with a grain of salt. Why do you say that?

Because Hibernate and Jpa have a lot of connections, Spring Data Jpa combined with Spring Boot is still used by many companies, and if you master Hibernate, you will be able to use Jpa quickly. About Hibernate and Jpa, the relationship between the scene before specially wrote a article: dry | article read Spring Data Jpa!

  1. What does messaging middleware learn?

As far as I know, RabbitMQ and RocketMQ are more used in JavaEE projects, Kafka is more used in big data, and ActiveMQ, which meets the traditional JMS specification, is less used. Therefore, partners can choose the appropriate learning order of message-oriented middleware based on such a practical situation.

This stage of knowledge are done, do a graduate design is certainly more than enough, out of the school to find an internship is certainly enough. Everyone in the public account [jiangnan a little rain] back to 2TB, there are corresponding free video tutorials.

6. Distributed/microservice related

Take a look at my mind map (available at the end of the post) :

In this section, Spring Boot and Spring Cloud are the key points, which respectively involve many knowledge points:

SpringBoot:

SpringCloud:

SSM is still the basis for learning Spring Boot. It is not recommended to skip SSM and learn Spring Boot directly. What are the things to learn? Should I learn SSM first? .

After learning Spring Boot, you can also do a project to consolidate, and recommend two open source projects:

  • github.com/lenve/vhr
  • github.com/lenve/VBlog

When you have dealt with SSM, dealt with Redis, dealt with middleware, you go to learn Spring Boot will find it is so easy!

As for Spring Cloud, although several components of Netflix no longer plan to continue open source, I think it is necessary for everyone to learn it. After all, it is not difficult and doesn’t take much time. And learning these components can help you quickly build a Spring Cloud body of knowledge.

After these two big chunks, I don’t need to tell you much about the rest. I suggest to learn the advanced aspects of MySQL in this stage, such as data optimization, master-slave setup, read-write separation, etc.

Everyone in the public account [jiangnan a little rain] back to 2TB, there are corresponding free video tutorials.

7. Summary

Now that you’ve learned all of the above, you can look at JavaEE development from a higher perspective.

At this time, you can consider whether you want to take the road of “professional”, when a technical expert, or want to take the road of full stack, own a studio and so on in the future, or want to develop in the direction of big data are ok. No matter which direction you want to go, you can reply 2TB in the background of the public account [Jiangnan Little Rain], and there are corresponding free video tutorials.

Well, a little experience and friends to share, the mind map involved in the article you can get the download link in the public account Jiangnan little Rain background reply planning.

Well, friends May Day happy oh ~