Whether you want to teach yourself or not Java, Read this article carefully , At least don't go far in your future career 1 New year's detour .
This article will continue to update , Advice to focus on + give the thumbs-up + Collection .
stay CSDN I often have private chats with my classmates on campus “ How to self-study Java”、“ Want to change careers Java Is it reliable ” Other questions , Because I was self-taught in college Java, So I can understand the pain and confusion of these students .
Before writing this article , I watched some online Java Self taught articles , I'm not satisfied with a lot of them , Some even make me angry , Or from the existing perspective , Or it's pure fabrication to deceive Xiaobai .
Many articles have an old problem ： I didn't think from Xiaobai's perspective at all , It's too much , What kind of micro service 、 framework 、 Big data is coming , It's not something to look at in the self-study stage at all , Xiaobai read these articles , The more you look, the more confused you are , There's no way to do it .
In fact, I am 18 I wrote an article in “0 Basics Java The road to self-study ”, But now let's see , At that time, the article was too simple , It just provides a way of thinking , But a lot of it wasn't written .
Now it's over 3 year , I have some new thoughts on this topic , At the same time, in order to save the majority of students in dire straits , therefore , I decided to write a new self-study course .
Before writing this article, it is necessary to introduce myself , Let's make a better comparison and reference .
My university is an ordinary undergraduate , I started to study by myself in my junior year Java, Self taught for a year , But I'm a computer major , So there is C Language foundation , But I have taken a lot of detours in this year's self-study , I spent a lot of time learning a lot of things that I didn't use later ：Oracle、Hibernate、Struct2、JBPM wait , There is also a lack of guidance from experienced people , So it's easy to miss the point , So a lot of time was wasted .
But it wasn't as voluminous as it is now , So I got a job at the beginning of my senior year .
The status quo of programmers
Because programmers are paid more , In recent years, a lot of other professionals have flocked to the programmer industry , Speed up the internal volume of the industry , But according to the statistics of a recruitment website , The current demand of programmers is still much higher than the average of the whole industry . therefore , I think the status quo of programmers is good , No need to worry for at least a few years .
Java present situation
Recent years ,Go、Python And so on , There's a big challenge Java Status Trends , however Java Undoubtedly, it is still the largest recruitment demand in the current Internet industry .
Many big factories ： Ali 、 Meituan 、 Well quickly 、 A lot of spelling 、 sound of dripping water 、 Netease, etc , It's all about Java It's the main language of the company , Some big factories ： tencent 、 Baidu 、 Bytes, etc , Although other languages are the main languages , But there will be more or less Java post .
therefore ,Java The status quo and future of , I think they are quite good . More jobs also means more opportunities , It's friendly for new people , So I personally recommend new students to learn Java Of .
Before self-study, you should know
Please be prepared before self-study , Self study is a lonely and long process , If you want to step in , Please be prepared to give up almost all your entertainment life , Including the Spring Festival . If you just take the attitude of fishing for three days and drying the net for two days , Then I suggest we give up .
But if you can hold on , I'm sure it will pay off , I'm an example myself , I took so many detours , Follow this article , You have no reason to be worse than I was .
Self study cycle
I set a reference time for the self-study cycle ：6 Months , Average daily 6-8 Hours , common 1200 In hours or so , General arrangement ：
1、3 Months of basic knowledge learning and strengthening .
2、2 Months SSM Project practice, repeated practice , The actual combat of the project is also reviewing and consolidating the previous basic knowledge .
3、1 I'm going to prepare for the high frequency questions in the interview , Looking at the interview questions will actually increase your professional knowledge , And maybe more than you think , It's no exaggeration to say , A few years ago, I learned more from the interview questions than I got from my job .
Self study tutorial to get
Teaching a man to fish is better than giving him a fish , A simple and reliable way to get the tutorial ：B Website search keywords + course , for example ：Java Basic course 、MySQL course 、JavaWeb course 、SSM Integrate the tutorial 、Java Project practice and so on , Then press “ Click at most ” Sort , Find a suitable one in the first few , Generally, the high click quality is OK . Or you can follow me , send out “ Programming ” You can get the address .
Very important advice
1、 Einstein's formula for success ： success = efficiency * Time , It's the same with self-study , It's a combination of work and rest , Don't get too tired , Otherwise, the efficiency will drop , It's no use spending more time .
2、 Self study is a long process , Step by step 、 To be patient , If possible , Find a partner to study together , Encourage each other , Communicate with each other , You can make yourself more motivated to stick to it .
3、 Record your learning process , When you find more and more accumulated , There's a little sense of accomplishment in my heart , This will increase your motivation to learn .
4、 Focus on learning key knowledge , This article covers the basic content you should learn at present , Most of what's not mentioned is less important , If you can't tell if it's important , You can leave a message at the bottom of this article , I will answer one by one , As for something like that ：k8s、hadoop、hbase wait , Don't even look , It's just a waste of time for you right now .
5、 Make good use of search engine , If you have any questions, baidu , Most of the novice's problems can be solved by Baidu .
6、 Watch videos, don't read , At this stage you read any book , Including the famous 《Java Programming idea 》 It's a waste of time .
7、 To watch a video, you have to tap it one or more times , If you just watch the video without knocking , You'll find that you can't learn anything in the end .
8、 Some videos about history in the video can be read over and simply understood , Save time .
9、 About the selection of video tutorial ： Choose near 2~3 The course of , The instructor can make himself comfortable , The level of high click video is almost the same .
Self study knowledge points
Basic concepts / grammar ： object-oriented （ Inherit 、 encapsulation 、 polymorphic ） Basics 、 package 、 class 、 Interface 、 Method 、 object 、 attribute 、 first Java Program .
data type ：1） Basic data type 8 Kind of ：byte、short、int、long、float、double、char、boolean;2） Reference data type
Variable type ： local variable 、 Instance variables （ Member variables ）、 Class variables （ Static variables ）
Modifier ：public、private、 Don't write 、protected、static、final、abstract、synchronized ,volatile
Operator ：1） Arithmetic operator ：+、-、*、/、%、++、--;2） Relational operator ：==、!=、>、<、>=、<=;3） Logical operators ：&&、||、!;4） Assignment operator ：=、+=、-=、*=、/=;5） Conditional operator ：Object x = (expression) ? value if true : value if false;
Loop structure ：for loop 、while loop 、do...while loop
Conditional statements ：if...else、if...else if...else
exception handling ：try...catch...finally、throws、throw
character string ：String、StringBuilder、StringBuffer
other ：switch case、 Array 、 Date time 、 enumeration 、 Use IDE Conduct DEBUG
Map：HashMap（ above all ）、ConcurrentHashMap、TreeMap、Hashtable
List：ArrayList（ above all ）、LinkedList
Set：HashSet（ above all ）、TreeSet
Thread life cycle
There are three ways to create a thread ： Inherit Thread、 Realization Runnable; Realization Callable
ThreadPoolExecutor（ Thread pool ）
lock ：synchronized and Lock
1.5、 Network programming
Summary ： This stage is very important , It's recommended to read it several times , Among them ：Java Basics 、 aggregate 、 Multithreading is the core of the core .
Chapter goal ： Master all the skills listed in this chapter Java Core fundamentals , Can write skillfully Java Program .
1） Understand the basic concepts ;2） master DML Use of statements ：SELECT、UPDATE、INSERT and DELETE;3） master DDL Use of statements ： Some of the things that you use when working with tables SQL sentence . for example ：CREATE、ALTER、DROP etc. .
Master the basic use of .
Master the basic use of .
Chapter goal ： Have a good command of SQL The basic use of statements , understand JDBC and MySQL The basic use of .
3.1、 Front end content
3.2、 Partial back end content
Java Web Primary content related technologies are currently Java The back end has been used less directly , Recent years Java Programmers may not even have been exposed to . Most of them are from the next section SSM The frame has been replaced by encapsulation , But it is necessary for beginners to study this chapter carefully , To be able to understand 、 It can be changed .
Chapter goal ： Understand the knowledge involved in this chapter , To be able to understand 、 It can be changed . about Servlet You can pay a little more attention to ,Servlet It's an important part of this chapter .
4、 Commonly used tools
Web application server .
Project construction management , It can be simply understood as importing Jar Dependent tools .
Distributed version control system , Code management tools .
Chapter goal ： You need to know that there are tools , Then master its basic use .
5、 The core framework
1） Master the basic use of ;2） Master the core concepts , What should be paid attention to ：IoC（ Control flip ）、DI（ Dependency injection ）、AOP（ Section oriented programming ）、 Transaction control .
1） Master the basic use of ;2） Master the core concepts , What should be paid attention to ：MVC framework 、Controller All kinds of notes in 、 One HTTP Requested process .
1） Master the basic use of ;2） Master the core concepts , What should be paid attention to ：XML The power of the document SQL grammar 、 Interface （interface） and SQL Mapping .
Master the basic use of .
Chapter goal ： understand SSM Basic use of framework , It's not necessary to fully understand at this stage , You can deepen your understanding of... Through practical examples in the actual combat of the project SSM The understanding of the .
6、 Project practice
Get ready 2~3 Projects in action , Apply what you have learned before , Make a real project （ Website ）. Learning projects must use SSM frame , Deepen your understanding of SSM The understanding of the . The projects done in this phase , It's also the future in your resume “ Project experience ”, It needs to be repeated .
The goal is ： Connect what you've learned before , Master a Web The whole process of the project , Through the project to deepen the understanding of the knowledge learned before , especially SSM Framework knowledge .
7、 Interview preparation
If for the above Java You can use the basic knowledge skillfully , Then I can skillfully build a simple SSM Project . Then I suggest you spend more time on the chapter of interview preparation , Interview preparation may be more important than many people think . At the same time, in the process of looking at the face-to-face questions, I can deepen my understanding of the previous knowledge .
7.1、 Key knowledge points
SSM Actual project
This module corresponds to the knowledge we learned above , But it's hard to meet the current interview requirements if you can only use it , Therefore, we need to strengthen the interview for these knowledge , For specific topics, please see my interview series .
7.2、 Advanced knowledge
Algorithm ： Common algorithms , Two points 、 Sort, etc , You can brush your fingers offer The subject of
You may have questions , Why are the knowledge points listed in the advanced level not mentioned above before , Also need to prepare interview questions . The reason for adding the advanced part , The main purpose is to deal with the more and more serious phenomenon of the Internet industry , These knowledge points are all current Java The high frequency of the interview , But just like the previous basic knowledge , Systematic learning of these knowledge is basically impossible for beginners at the current stage , So a more appropriate way is to look directly at the high-frequency interview questions , Then write down the questions with understanding .
Chapter goal ： Keep in mind the high frequency interview questions of each knowledge point , Try to understand , If you can't understand it, you have to recite it first .
1、 What should I do when I encounter knowledge I don't understand in self-study ？
answer ： Baidu / Google answers , The problems that beginners encounter can be found on Baidu , Make more use of search engines , Exercise your ability to solve problems , This ability will run through your entire career as a programmer .
2、 How far can ordinary people reach after learning by themselves ？
answer ： If you really work hard and spend more than 1000 Hours , Follow the route of this article , Master the knowledge introduced in this article , Then I believe it's not difficult for you to find a job .
3、 I saw some self-taught students on the Internet 6 In the next month BAT？
answer ： self-taught 6 In the next month BAT Has it ？ I believe there are . More ？ I believe it's looking for a needle in a haystack .
On this topic , Most of it's fake , More people / Agencies are used for advertising , Read the content of the article 99% I want you to pay to add groups or buy materials .
4、 Self study or training institutions ？
answer ： Frankly speaking , Training institutions are definitely easier than self-study , At least the training organization will help you set the right direction . But self study will leave a good impression on the company , The company will think your learning ability is good , At the same time, self-study is also very exercise , It's good for your future growth .
I can only help you analyze , You can choose according to your own situation . however , I think if you can't get into this business on your own , You may have a hard time in the future .
5、 Whether the algorithm is important ？
answer ： about 0 For the students who study by themselves , The status of algorithm can be put a little behind , The current goal is to do well first Java Basics , Able to write Java Code .
6、 Should we learn first C Language ？
answer ： Tell the truth , I personally don't recommend , although C Language is really important , But I think if there's this time , It's better to Java Consolidate the foundation .
If your question is not mentioned in this article , Or you have questions about this article , You can leave me a message at the bottom of the article , For every message, I'll basically be in 24 Reply within hours , In extreme cases, it may be over the weekend , In principle, as long as it is a normal message related to this article, I will reply .
For the topic in the review , If it's something that a lot of people are concerned about , I'll add it to the article later “ common problem ” in .