Hello everyone, I am handsome.
The next period of time, handsome to summarize various learning route of technology stack, for example Java development, c + + development, python development, front-end developer, and so on, if you do not have clear goals, may be able to learn as I said route to learning a wave, I write every learning course, is not very comprehensive, because I think things too much, On the contrary, it is not good for beginners to learn, so I listed all the necessary knowledge, when you learn these knowledge, I believe you do not need to learn the route of others, but also know what you need to learn next.
Below I also summed up a set of Java back-end learning route, follow this learning route, the school recruitment of large factory offer, the probability is still quite large, remember to help me to share more.
All of the recommended books are available for download on GitHub, which is a collection of great programming books: A Collection of great Programming books
1. Learning Java technology stack
1. Getting Started with Java
Note that all of the following recommended books can be downloaded here:
It’s important to start with a wave of features of the Java language. A lot of people are concerned about what to look at at the beginning, but I don’t recommend reading too much at the beginning because you don’t know what’s useful, what’s outdated, or what you don’t need at this stage.
For beginners, especially those who have no programming foundation, to go through this process from zero to one is actually very difficult, and the frustration will be very strong. It’s much better if someone leads the way, or if you take a quality course. No matter, this article will come as your guide!!
The following study materials are the ones I have read or seen, and I will not introduce the ones I have not seen. Again, the data and videos are auxiliary, at best to get you started, the rest is on your own.
Study book recommendation: “Java core volume 1”, this is a primer book, primer books I see not much, temporarily introduce this one, you can go to the Internet search, but personal feeling finished reading this book almost.
There are some basic can see “Java programming ideas”, this book is also very good, to solve my many doubts, but a little difficult, I am selective.
Java compiler recommended IntelliJ IDEA, installation steps to search their own Baidu.
Video recommendation: here recommend gao qi Java300 sets: shang xuetang gao qi Java300 sets. It’s still good. If you get started, you just need to watch the first 100 episodes.
2. Java advanced
If you want to make a living with Java, you need to learn more than just reading books and watching videos. There are a number of features of the Java language that you need to learn more about.
Collection module: mainly includes a variety of commonly used collections: such as Set (including HashSet, TreeSet), Map (including HashMap, HashTable), List(including ArrayList, LinkedList) and so on, the above List must learn its source code
Multithreading: synchronize, volatile, thread pools, and sending packets (lock, etc.)
Recommend to see “Java concurrent programming art” + “Java concurrent programming actual fight”, these two is enough, “Java concurrent programming art” feel to see three or four times just go, the first time to see and forget, the second time there will be other harvest, the third time can hang beat the interviewer, the download way of the book I have said above.
All kinds of file streams: File, inputStream, outputStream, etc., just all kinds of file streams, you’ll see it in the book, you have to practice it, I won’t go into detail.
Virtual machines: Virtual machines are a must, with the focus on THE GC section. I recommend understanding the Java Virtual Machine: Advanced FEATURES and Best Practices for the JVM. One is enough, and you should read it four or five times.
Others: there are many, such as reflection, annotations, exceptions, etc.
Get started with JavaWeb
Learned above so much, what program, website also did not write out, a little uncomfortable? No matter, at this time, we will start the website, if Java as a development language, then JavaWeb is a must learn. At this point you can start to learn about these (note, don’t go deep, just find a quick video to get started)
Video: JavaWeb getting started video tutorial
1. Mysql, HTML + CSS + JS, Tomcat, XML, etc. Recommended to watch videos, their own search JavaWeb video, so where will not fill where, these knowledge, a few hours can be a door. As for MSYQL, it is recommended to see “mysql Will Not know” to get started, and “mysql Technology Insider” to see more advanced, more or less.
2. Servlet + JSP series.
It is not recommended to learn the framework directly, but should learn servlets first, these bottom layer is the most important. Servlets can be learned from the video, and JSPS are rarely used, but you can learn about them.
4, the framework of the learning box
Servlet writing is too troublesome, only seriously learn Servlet people can blow the benefits of the framework, so you must first learn Servlet to learn the framework, there are three major frameworks: Spring + SpringMVC + Mybatis.
In fact, SpringMVC also belongs to Spring, MVC is just an idea, here the learning order is first suggested to learn Spring, directly watch the video to learn the introduction can be, then buy a book, grasp what degree? Finally, be able to understand some of the principles, such as IOC, how AOP works, what design patterns are used, etc.
But now build SSM is too troublesome, the basic is to use SpringBoot, so SpringBoot is also necessary, later have time, also want to learn SpringCloud.
5. Learning middleware
Must learn middleware: Redis, Redis basic interview will be asked, the basic work will be used, so must master, recommended books “Redis design and Implementation”, “Redis Development and operation”. When you’ve finished with two books, you’re almost done, or when you’ve finished with the first book.
Other frameworks, such as message queues, distribution and so on, can also learn a wave of time.
6. A complete project
Learn Java foundation and framework of the above, will make a complete project, I can only say that the project is very, very important, at this time of self-study and the cross-industry disadvantage is very large, because the interview process, will ask the project, and must is the project you do yourself, if you just see video, no hands-on practice, it would be easy to be asked meng. So do, do, do a project yourself.
This is not to say that the problem is a dead end, but you can take hands-on courses to address your lack of project experience, especially courses based on real projects.
Be sure to work on at least one project; Be sure to work on at least one project; Be sure to work on at least one project;
Recommended: SpringBoot e-commerce payment actual combat + e-commerce platform dual system
However, as a fresh graduate, only knowing Java is very difficult to enter a large company, algorithm + computer foundation is also extremely important, especially in large companies, this aspect is particularly much asked.
2. Learning data structure and algorithm
Once you’ve introduced yourself to a language in your first semester of college, you start learning data structures and algorithms. Of course, not necessarily the first semester, for non-courses also the same, is also recommended this learning order. Of course, you have your own goals and you can follow them.
My article is mainly about data structure and algorithm, and I got the offer based on this advantage, so I think data structure and algorithm are very, very important. You may hear that these knowledge are basically not used in work, or library functions have been encapsulated for us, so why should we learn them?
If you think so, you are wrong. This knowledge is required for anyone who wants to get a job, so you have to learn it; For those who have been working, this knowledge can let you learn a lot of design ideas, the so-called data structure + algorithm = program, and you learn this, you will find that learning other knowledge, especially fast. To sum up, data structure and algorithm must be learned.
All right, so much to tell you, the importance of data structures and algorithms, ok, now I will introduce what you need to learn to get started with data structures, but you will follow the book to learn the order.
1. Learning basic data structures
1. Time complexity and space complexity
2, linked list, queue, stack
3, tree (binary tree, find binary tree, AVL tree, red-black tree, etc.)
4, graph (graph has many algorithms, depth/breadth search, shortest path, minimum survival tree, etc.)
If you’re a student, I think it’s best that you finish the second semester of your freshman year, and if you don’t finish it, some of you may have taught discrete Mathematics first, to prepare for data structures and algorithms.
Book recommendation: “Big talk data Structure”, “data Structure and algorithm analysis :C language description edition”, learn which one? Either way, no problem. I was studying the second one. Remember to learn according to your own language, I listed above, are implemented in C language.
Video: I’ve only seen the video on Data Structures and Algorithms for small Turtles, so you can do it yourself.
2. Algorithm learning
In the first two years, sincerely suggest that you play the basic skills of the algorithm, after really do not have any time to brush questions and so on, because no matter what direction you want to learn later, the algorithm is practical, will be some algorithms, speak also confident. Algorithm learning, brush is necessary, but it is not recommended to blindly brush, but first learn some algorithm ideas, in the search for the corresponding brush, to learn the main are:
1. Top ten sorting algorithms
2. Recursion, greed, backtracking, dynamic programming, enumeration, etc
Recommended books: “Aha Algorithm”, “Fundamentals of Algorithm Design and Analysis” for beginners; “Algorithms fourth Edition”, “Introduction to Algorithms”, “The Beauty of Programming” for advanced
Video: This is still recommended to read, I have not seen the video, here will not introduce.
Books here to download: less detours, must read classic computer books recommended (including download method)
3. Keep learning the algorithm
Algorithm learning, really rely on accumulation, and brush the problem is necessary. And the school will hold some competitions, here is still more suggest everyone to see, so also can make you more passionate to learn. Of course, there are many ACM programming competitions every year. Do you want to participate? This depends on you, also is not to say attends certain good, depends on yourself, specific can refer to me before an article to say: ordinary, my three years university
You can keep scrolling in LeetCode for a long time, one or two times a day, or four times a week.
Here is a recommendation for you to brush notes, learn to deal with the basic interview problems are not big:
Download link: two months to get 70K star, the first byte big god brush problem notes
Third, the basic study of computer
For those of you who have read my articles, I’ve been working on the importance of a strong computer foundation, so here’s a list of what to learn. Just said to choose a language to go deep, you are in the process of in-depth study, affirmation also is in the professional course that study school opens, include: computer network + operating system + database + assembles + computer to compose principle + compiles principle to wait a moment.
I think these are very important. For students recruited in autumn, as long as you know these skills, even if you learn Java deeply, then you apply for the C++ position, I think it is not a problem. You can tell the interviewer that I do not know C++, and you can change the job at that time. Although I am Java technology stack, but my company, are not Java technology stack, such as Xiaomi, Shopee, bytedance, Tencent and so on. However, these are not a problem, as long as you will be able to these basic + algorithm, and, in the autumn recruit, especially for some large companies, about the language, in fact, ask is not a lot of, the basic ask particularly much, so you will be basic, the interview will have a lot of advantages. Here is a list of the courses in order of priority.
In fact, it is not good to give them priority, so they row, feel easy to be sprayed by the big guy, but no way, for small white, I still want to row the following order
1, computer network + operating system
2, database + computer composition principle (database corresponding you may have learned MySQL first)
3, assembly + compilation principle
However, if you are still in college freshman or sophomore, then you can learn according to the order of your course, however, I suggest that there is time to learn ahead of time, not necessarily to wait for the school to teach to learn, anyway, most of the teachers say very general, but when you learn, you can as a review, or learn other.
Books recommended
“Computer Networking Top down”, “Graphical HTTP”, “In-depth Understanding of Computer Operating Systems”, “Assembly Language” (by Wang Shuang). The specific degree to grasp can see my previous article.
Video: computer basic three course video
Fourth, the order of learning
For the learning order of Java, algorithm and computer foundation, if you have more time, for example, you are a freshman or a sophomore, then I think we can follow this learning order:
1, first choose a language to get started, such as C language or Java
2. After that, learn data structures and algorithms
3, after learning the Java technology stack I said above, while learning the computer foundation
If you’re in a hurry and you’re running out of time, I suggest you start with the Java stuff I mentioned above, work on the project, and then go back and learn the algorithms and the basics.
Five, the summary
I think for the four years of university learning, these are the most core, but also must learn. But just these are not enough, the above can be learned in a year or two. So you have a lot of other time, so you can learn something that you’re interested in, do a lot of work, do a lot of jiggling, and I want you to learn everything that I learned. You can also see some of the core basics I learned in college:
The computer basics that got You off the ground: What to learn and how to Learn?
The first two years were a bit of a struggle, especially the first year, but I always took the core subjects. Again, this article is not to make you become a great god, learning is not more powerful, but, in the university confused, do not know what to learn you, a direction, whether you are the class, as the title says, the general/public. But I’m sure that when you’re done with this, you’ll have something to learn.
Finally, I hope that you are still in school students, freshman can be good waves, but also to maintain the due study time, after that, good study. No matter whether you are a famous school or not, I think your chances of getting into a big company are really very big if you study hard in the past few years. This is not chicken soup.