This section is mainly suitable for students who have not done Java work, including some students in school and just want to switch to Java.

First, Java foundation

Get started with a Basic Java tutorial (textbook or web video).

Learning Java foundation, should as much as possible hands-on, a lot of times, you take for granted things, when you write to run, you will find that it is not so, do not believe you try.

Now that you’ve learned this, you should have a basic understanding of Java. You can write simple programs in Java using the simplest editor, like Notepad.

At this point, don’t rush into the next section; leave a few days to write some good programming and get as familiar with the basics as you can.

Second, Web development

After a few days of writing a program, you often feel lost because your writing seems useless, like implementing a simple calculator, reading a file, etc. This is when you should learn to write something that makes you feel interesting, so you should learn more knowledge.

These contents are mainly Web development related content, including HTML/CSS/JS (front-end pages), Servlet/JSP (J2EE) and Mysql (database) related knowledge.

They should be learned from front to back, so HTML/CSS/JS should be learned first, which you can find on the Runoob website above. You can try to write some pages yourself, of course, you can do your best to make it the most beautiful. This is not important in theory for back-end Java, but at least it should be good enough to write some simple pages on your own.

Next, you need to learn the Servlet/JSP (J2EE) section, which is the part of Java back-end development that you must be very proficient in, so this is the most effort of the three sections, and at this point, you need to learn to use development tools instead of Notepad, choose Eclipse.

Once you’ve downloaded and installed Eclipse, follow the step-by-step tutorials in this video, and be sure to do more.

Finally, you need to learn how to use a database. Mysql is a good place to start, and the dominant relational database in the Java world is mysql. This is the part that you will be exposed to when you learn about servlets/JSPS, where the JDBC part is the database-related part. Not only should you be able to operate a database using JDBC, but you should also be able to use database client tools such as Navicat, SQLYog, or either.

Development framework

When you have learned the above, you are not ready to work at this time, you still need to further your education. Companies use Java Web frameworks to make development more efficient, so you’ll need to learn some.

At present, SSM framework is more mainstream, namely Spring, SpringMVC, Mybatis. You need to learn how to build these three frameworks and use them to create a simple add, delete, change and review Web project. You don’t have to understand what those configurations mean and why, but I’ll leave that for later. But you have to be able to quickly build a Web framework out of all three of them, and you can document your first build, and trust me, you’ll need it.

One more thing to mention is that you may often come across a tool called Maven while building an SSM. This tool is almost a must in your future work, so you can learn about Maven as you build the SSM. At this stage, you only need to learn the basics of Maven on the Internet, and some of the more advanced uses will come as you gain experience.

Find a job

Once you’ve finished studying development frameworks, it’s time to look for a job, either as an intern in college or full-time after graduation. At the same time, while looking for a job, you should not stop learning, or, more precisely, you should not stop learning in the future.

You’ve just gobbled up the above content, and you can learn more and more gradually. The Internet is your most important teacher.

Congratulations, at this point, you have a Java job. This is a period of rapid growth, and you are likely to work a lot of overtime.

But working overtime doesn’t mean you can relax. Always remember what I said, you have to keep learning from the moment you start your career. At the very least, you need to read The Java Programming Mind this year. This book is designed to help you have a deeper understanding of Java and is an updated version of Java basics.

The book is so thick that it took me three months to read it. At a normal pace, we should be able to finish it in about six months. I’m not asking too much here, as long as you finish the book within a year. Of course, when I say read it, I mean absorb it, not read it once, so you may read it more than once.

In a word, the core learning idea of this stage is to practice in the work and have a deeper understanding of the Java foundation.

Part THREE: For students who have been working for one to two years

For those of you in this part of the class, you already have a deeper understanding of Java. However, the experience of object-oriented may not be profound enough, programming is still at the level of functional completion, rarely to consider the problem of design.

This is where the design pattern comes in. I read The book Big Talk Design Patterns and wrote the full design Patterns blog. So, I challenge you to start a blog by the time you’ve been working for at most a year, and design patterns are the place to start your blog.

This year, you need to be familiar with design patterns, and Big Talk Design Patterns is a good place to start.

In addition, design patterns are not your only task this year, you will also need to read some books on optimizing code writing. Examples include Refactoring to Improve the design of existing code, Effective Java.

In short, at this stage, your core task is to improve your ability to write elegant code.

Some students at this time feel that they have been very cattle force, so can not help but start to relax slowly. Remember, you’re still wet behind the ears.

At this stage, you need to have a thorough understanding of the Java virtual machine. At this stage, you must already know that Java runs on the JVM. So there’s no reason why you shouldn’t know about the JVM.

On the other hand, you must have been exposed to concurrency at some point in your career over the past two years. At this point, you should learn more about concurrency.

At the same time, you need to do more than that at this stage. At this point, you should have a better understanding of the framework you’re working with, and a better understanding of Java’s class libraries. Therefore, you need to look at the source code of some of the JDK classes, including the source code of the framework you are using.

To be able to read the source code, you have to know a lot about design patterns. Otherwise, when you look at the source code, there will always be such a question, why is this code written this way? Why define this interface, which seems redundant?

As you can see, these learning processes are interlinked, and if you fall behind at any one stage, you really can’t keep up, or step by step. And I can honestly tell you that I learned a lot more at this stage than is listed here. So don’t feel like you’ve learned a lot. This is just the bare minimum, and many people, not just me, have learned far more than the scope of this article.

If you can’t keep up, a few years down the road, if the market isn’t good, you might not only be paid less and the company is better, but you might not be able to find a job at all. Want to work on it or are genuinely interested in it. You can ask me for some learning videos, Q number: 3342995915, this is free, I hope students do not have a granted attitude when looking for me, after all, it is my efforts, I hope you really want to learn Java heart, I will do my best to help you become an excellent programmer.

In summary, at this stage, you need to dig deep into the Java infrastructure and Java libraries (for example, the concurrent book is Java and packages java.concurrent), i.e., the JVM and JDK. But also more in-depth to understand the framework you use, the more recommended way to read the source code or official documentation.

In addition, there is another way of learning, which should also be used in the year 2 stage, and that is to build the wheel. Don’t listen to the “Don’t reinvent the wheel” mantra, invented by companies to save time and cost. The process of building a wheel is a process from scratch. This process gives you a systematic workout. It tests not only your coding ability, but also your framework design ability. You need to make your wheels scalable and robust.

So, this stage, in addition to the above mentioned understanding of THE JVM, JDK and framework source code, please also according to others excellent source code, to build any wheel you can imagine.

At this stage, it is already difficult for students to improve, and the study at this stage is often more diversified.

In the course of the first 3 years, you must have been exposed to some other technologies, such as big data, distributed caching, distributed messaging services, distributed computing, soft load balancing, etc. Being proficient in any of these technologies will be a huge advantage in future interviews, so if you’re interested in a particular technology, this is the time to delve into it. It doesn’t have to be something you use in your job, but it does have to be relevant.

And when researching a new technology, don’t chop and change. Some students went to work on big data today, doing things like Hadoop and hbase. After a while, I got bored and went back to distributed caches like Redis. Then, after a while, you go to distributed computing, like Mapreduce or Storm.

As a result, you end up acting like you can do everything, boasting about big data, distributed caching, and distributed computing on your resume, when none of them are really on the surface. The interviewer will spot you by asking any question.

Therefore, at this stage, you can no longer simply learn the content of the previous three years, although you still need to continue if the previous learning is not deep enough, but at this time you should consider more to build your advantages, also known as differences. Your first three years of learning are enough to be a reasonably qualified Java developer, but you are far from being a good Java developer.

I specially sorted out the key points, which could not be explained clearly in a few words, so I simply recorded some videos with my friends. The answers to many questions are simple, but the thinking and logic behind them are not simple. It is necessary to know what is and why. If you want to learn Java engineering, high performance and distributed, simple. Performance tuning, Spring, MyBatis, Netty source code analysis of friends can add my new Java group: 650385180, group ali Daniel live broadcast technology, as well as Java large Internet technology video free to share to you. In order to differentiate yourself, you need to take a different path, find a field of research, in the hope that in the future, you can become an expert in distributed computing, big data, concurrency, etc.

In addition to building your differences, you also need to make up for the gaps in your foundation. If you already have a strong foundation, congratulations, I believe you have fully experienced the help of these foundations in your previous work. However, I believe that most people have a very weak foundation. Even if they are graduates, many people dare not say how strong their basic knowledge is, such as algorithm, computer system principle and compilation principle.

With a foundation and previous work experience, you can explore your own field.

After a few years of experience, I believe you have their own insights in the field of their own study, this time, you should have encountered a bottleneck in technology.

At this time, don’t try to improve your technology, it’s time to improve your influence, you can try to go to some well-known companies to improve your background, you can publish some articles to influence more people. Of course, you can also go to Github and create your own open source project to build your own product. This open source project is different from the previous ones of building wheels, where you really have to try to build wheels that are of real value to others.

It’s not just about technical bottlenecks, it’s about opportunities that influence can create. In a way, programmers are like stars. A good TV show or movie can make a bunch of stars. Sometimes, programmers are like stars.

For example, several popular projects in China, such as Taobao, Alipay, QQ, Baidu, wechat and so on. Each of these projects has created a number of program monkeys. I dare say that for any of these projects, if you are the core development of it, such a Title alone is already a huge advantage for you. What’s more, Title is also a name at the end of the day. More importantly, when doing this kind of project, it must be very powerful for your experience.

In addition to luck, influence is also important if you want to participate in such projects. For example, if you have an influence in distributed computing, you are likely to be invited if you have a good project in distributed computing. Even if you’re not invited to an interview, knowing how influential you are in the field will certainly make a difference, perhaps even more than your current technical skills.

So, at this stage, your biggest task is to increase your impact and prepare yourself for the day when you will be working for the next ten years. If you can leverage your influence and accumulated skills to get involved in a great project, you’ll be well on your way for the next five years.

Note: if you like it, you can click “like” to follow it and learn and make progress together