Java Programming Learning Website: 10 high-quality learning platforms, a complete path from zero foundation to architect

Java Programming Learning Website: 10 high-quality learning platforms, a complete path from zero foundation to architect

I have been in contact with Java since 2019. I can't say I am proficient in it, but I have been working all the way from zero foundation. Over the years, I have used many learning platforms and materials one after another. Some have saved me a lot of detours, and some have wasted a lot of my time. Today, I will write down my experience of using it for reference to friends who are learning or planning to learn Java.

Let's talk about the general direction first. It's a fact that Java's learning curve is indeed steeper than Python's. Just building JDK + IDEA in the environment can dissuade a group of people. But Java's ecosystem is too mature-enterprise-level development, Android, big data-and there are really many jobs.

The study route is recommended in this order:

Java Fundamentals--> Object-Oriented--> Collection Framework--> Multithreading--> IO -> Database--> Web Development--> Spring Framework--> Microservices

It takes about seven to eight months to reach the level of job search, investing two or three hours a day. Don't worry, slow is fast.


Newbie Tutorial: Zero Threshold Entry Station

Among the introductory materials for Java, the rookie tutorial is the first one that I can "understand".

Not because it is so good, but because it is really too simple to explain-there is no unnecessary nonsense, I will show you section by section, knock on examples, do exercises after class, and get started with Java syntax in one round. Online operation eliminates the need for novices to quit "build an environment locally."

But it's not enough to rely on rookie tutorials alone. It is relatively superficial, and you cannot establish concepts such as JVM, memory management, and multi-threaded security. Its value is that you can quickly "not be afraid of Java", and then you have to change to deeper content and continue learning.


Liao Xuefeng's official website: The ceiling of domestic personal tutorials

After getting started with the rookie tutorial, the next thing I followed was Liao Xuefeng's Java tutorial.

Some people may not agree to say that it is the best Java tutorial in the country, but at least from the perspective of "zero-foundation to being able to write Java Web projects", it is the highest quality. The explanation is in-depth and simple, the concept is very thorough, and there are a large number of practical examples and best practices. What makes me most fond of is that he will tell you "what to do if you don't recommend it"-he will mark out the pits that novices often step on in advance.

It's really not easy for a personal blog that uses love to generate electricity, which has been updated for so many years. It is highly recommended to follow it completely after getting started, which is better than most paid courses.


Shang Silicon Valley Java Tutorial (Station B): If you want to change careers, just finish reading this set

I know that many students who switched careers to Java started in Shangsi Valley.

A full set of courses are released for free on Site B, from Java basics to microservice distribution. What I recommend most is Song Hongkang's Java basics-he explains it in extreme detail and can take you handwritten almost every syntax point.

The supporting code, notes, and projects are also open source, which is very conscientious. I have seen too many videos from training institutions only give videos but not codes, but Shang Silicon Valley gives them all.

The large amount of courses is both an advantage and a disadvantage. It may take half a year to follow up with the complete set, and you need to have enough self-control. My suggestion is: After following Java basics and MySQL, you don't have to watch every episode of the rest of the on-demand learning.

People who change careers and like to watch videos to learn are right to start in Shangsi Valley. If you want to save 20,000 yuan in training courses, you can rely on this.


Oracle Official Documentation: The exact definition is here

Java is Oracle's home, so official documentation is the most accurate definition.

Each class and method in the API document has detailed descriptions and examples. If you encounter vague concepts while learning, check the JDK documentation directly. What is HashMap's capacity growth factor? What is the virtual machine memory model? Official documents will not lie to you.

Of course, the threshold is high. It is a reference manual for people who already have a certain foundation, not an introductory tutorial. I usually go through it when I encounter uncertain API usage during project development. Newbies can easily dissuade them from reading this directly.


LeetCode: A must be used for Java interviews, with no exceptions

Front-end interview test algorithm, Java interview test. For BAT's Java back-end interview, algorithms are a hard requirement.

Likou's Java problem solutions are of high quality-many great gods in the community have written problem solutions in Java, and you can directly learn how to write linked lists and implement sorting. The Chinese version is all in Chinese, so you don't have to guess the meaning of English questions.

Route to brush questions: First brush 80 simple questions (mainly arrays, strings, and linked lists), and then brush 120 medium questions (hash table, tree, and dynamic planning) when you are proficient. Talk about difficult questions when you have time. Strive to write in Java-you are required to write Java syntax by hand during the interview to adapt in advance.

At that time, I used it twice a day for three months, and it really came in handy for interviews. I swiped the "Reverse Chain List" on Likou, and the interviewer asked the original question and finished it in more than a minute.


GitHub: See good Java code improves fastest

Learning Java by only reading the tutorials without doing it is equivalent to not reading it. There are many excellent Java projects and tutorial repositories on GitHub, which is the best practice place.

A few noteworthy things:

  • JavaGuide (Java Learning + Interview Guide, 130K + Stars): It is extremely systematic. Everything you need to know about Java backend development is in this repository. Brush this directly when preparing for the interview
  • CS-Notes (CS Fundamentals Warehouse, 140K + Stars): Although it is not exclusive to Java, most of the data structures and algorithm solutions are written in Java
  • JavaFamily (Advanced Knowledge of Internet Java, 70K + Stars): Advanced literacy before an interview
  • Mall (e-commerce system, 60K + Stars): A complete e-commerce project with code specifications, which is a good enterprise-level development reference

There are also skills in reading code. It's not aimlessly scrolling, but targeted learning-to see how its project structure is organized, what code specifications are, and how business logic is layered.


Stack Overflow: 99% of the questions you step on have been stepped on by others

What should I do if I encounter a Bug while learning Java? My first reaction was Stack Overflow.

There are so many people programming in Java that 99% of the questions have been asked and answered. Make good use of search and use Chinese and English keywords alternately, and you can basically find answers.

There is a trick when looking at answers: look at the answers with high votes, not the ones with low votes. Stack Overflow's voting mechanism ensures quality-good answers naturally lie on it.

There is also a bonus: looking at the pits others have stepped on is a good guide for novices to avoid them. I saw the solution in advance for many problems that I had not encountered yet, and I didn't panic if I really encountered them.


Geek Time: Advanced content, paid but worth it

After having a certain foundation and wanting to delve into a certain field-such as JVM tuning, MySQL index optimization, and actual design pattern practice-the Geek Time column is of high quality.

Yang Xiaofeng gave the 36 lectures on Java core technologies, which were quite in-depth and suitable for advanced students who want to enter a big factory. Wang Zheng talks about design patterns and Ding Qi talks about MySQL. They are both experts in the corresponding field.

It costs a fee, but no one has ever said that they regret buying it. However, there is also a problem with paid content: if you have a pure zero-foundation, don't look at this for a while, first lay a solid foundation for free and then advance. Don't rush to learn high concurrency and distributed before you have laid the foundation. The pain will double.


Niuke.com: One-stop shop for domestic job search + face-to-face experience

When looking for a job, Niuke. com is my daily must-visit website.

Special exercises for Java interview questions, real questions from major factories such as BAT, and complete face-to-face books... You can basically find the original questions or similar questions for Java basic questions, framework questions, and JVM questions you are asked during the interview on Niuke.

The simulated written test function is also very useful-it will simulate the real test environment, with limited time and dual seats, allowing you to adapt to the pace of the written test in advance.

Inversion information is also relatively active. If you are looking for an internship or a job, visit the job search section of Niuke. com more often and you will often find good internal promotion opportunities.


Program Creek: A great website for in-depth understanding of Java principles

Program Creek (now called Hello Java) is a great place to go for advanced content. Very high-quality Java technical articles, illustrations of the underlying principles of the JVM, source code analysis of the collection framework, detailed explanations of concurrent programming... the content level is very high.

Popular article recommendations: JVM memory model diagram, HashMap source code analysis, thread pool implementation principles... After you thoroughly understand these articles, you can chat with the interviewer for an hour about the underlying principles during the interview.

Most of the content is English and requires some English reading ability. However, technical English is actually very easy to read-there are only a few professional vocabulary, so it's good to get used to it.


How to choose platforms at different stages

Get started with pure zero-basics, use rookie tutorials to match the video of Silicon Valley on Station B. The rookie tutorial allows you to quickly get started on grammar, and the Shang Silicon Valley video takes you systematically to learn it.

Liao Xuefeng and geek time are the best combination for the system to improve Java capabilities. Liao Xuefeng lays the foundation, and geek time does advance.

To brush the questions to prepare for the interview, LeetCode and Niuke.com are standard. LeetCode brushes the algorithm, and Niu Ke brushes the real questions online.

Prepare interview questions and eight-part essays, go to GitHub to read JavaGuide, and cooperate with Niu Ke online interview. These two resources cover 90% of interview questions.

Look at the project architecture and go to GitHub to find excellent Java projects. The mall e-commerce project and JavaGuide are good references.

To deeply understand and check APIs, Oracle official documents are the most authoritative. If you encounter uncertain usage, check the official documents directly.

When looking for Bug solutions, Stack Overflow is the first choice. 99% of the questions have been stepped on by others.

Expand your advanced horizons, Program Creek has many in-depth and good articles. The JVM principle and the analysis of the collection source code are all wonderful.


My learning timeline

Learn Java SE basics in the first two months. Getting started with rookie tutorials, followed by videos from Shang Silicon Valley. Write code every day. The goal is to write a student management system. Don't think it is "too simple". It involves Java's basic syntax, object-oriented, and collection frameworks, all of which are real efforts.

The third month is to learn advanced Java features. Collection source code (how is ArrayList and HashMap implemented internally), multithreading (thread pool, the principle of synchronization), IO flow, reflection, lambda-only after learning these parts, Java is counted into the door. Liao Xuefeng's parts should be carefully read.

The fourth month is to learn database and JDBC. Learn SQL statements, database design, transactions, and indexes. Use Java to connect to the database to do CRUD. After getting started with MySQL, you can start understanding the MyBatis framework.

The fifth month is to learn the basics of Web. HTML/CSS/JS only requires the most basic understanding, with the focus on the HTTP protocol, the Servlet request response process, and the Tomcat server. Understanding the MVC pattern is important.

The sixth to seventh months learn frameworks and do projects. MyBatis --> Spring --> SpringMVC --> SpringBoot。Learning the framework while doing the project-a complete back-office management system is the best practice project. Find some open source projects on GitHub to refer to and see how other people's code is organized.

Prepare for the interview in the eighth month. Scroll through JavaGuide, LeetCode has 200 questions, and Niuke online scams through the company's real questions to thoroughly understand the details of the projects he has done. What interviewers like to ask most is the details of the project-why it was designed this way, what difficulties have been encountered, and how you solved them.


A few tips for beginners

Java is indeed more difficult to learn than Python. The environment has strict syntax, many concepts, and more frameworks. But every concept you learn is solid-Java has a high threshold, which in turn means that it is not easy to forget.

Don't learn frameworks right away. The foundation is not strong and SpringBoot cannot understand it.

Don't just watch videos. I spent two months watching a full set of Shang Silicon Valley videos and felt that I understood everything. As a result, I wrote a login page for two hours. Read for 10 minutes and write for 30 minutes-this is the most basic learning method.

After half a year of work, you are still learning the basics and not doing the project. That is delay. Start working on the project after completing the basic study. Even if it is an ugly website, it will work. Code volume is the only hard currency for developers.