I most recommend a roadmap for learning Java backend, Java engineers required
Foreword
Learning Roadmap tend to be beginner's guide to the same technology. Internet search to learn Java roadmap is a dime a dozen.
Today, I only choose a map, this map only enough to cover the knowledge points Java back-end technology. The so-called not the best, but for the most complete, students learn Java backend can refer to this chart to learn routing.
Of course, some knowledge is optional, does not mean you have to be on top of some friends. This figure is based on my review of the process were reviewed in the autumn trick, I feel the effect is good.
Without further ado, Syria, we see what valuable information contained on this chart it. Again, this article only for the road map to make a simple interpretation, for reference purposes only. You can specify a reasonable study plan according to their own circumstances, I believe will be of great benefit.
1 Computer Basics
This section is a computer-related professional courses students, but non-small Coban partners (such as the next) will need to spend time catching up. Especially computer networks, operating systems, data structures, which three courses.
As compiler theory, individuals probably know a little on the line, I have only seen a simple state machine concept and relevant content, not particularly important.
2 Java Programming
Here's Java programming section contains a lot of content. We can look at separately, you are probably summarize these parts.
Java foundation
Java foundation here includes basic grammar, collections framework, as well as some advanced features, such as reflection, annotations, and so on.
Java-based knowledge is very large, so to really get to know not so simple, in addition, over time, some of the new features also need to get our attention, such as the popular JDK8.
Design Patterns
I have always felt and Java design patterns can be the basis of a science, so I put it here. Of course, some real use to design mode places, such as the JDK collections, IO streams, etc., you need enough attention.
Java Web Technology
Java Web technologies including J2EE, and web frameworks, as well as a series of common components.
1 J2EE is mainly servlet, jsp these more retro web development components of. Although the direct use of their cases is relatively small, but we still need to take some time to master them.
2 web framework Spring is a commonly used, corresponding, hibernate and mybatis also need to find out.
3 Meanwhile, JavaWeb common libraries during development, such as jnuit unit testing, log4j logging tools, and build tools maven, are all we have to grasp the scope.
4 Finally, note that some basic knowledge of Web-related, such as HTTP protocol, network security infrastructure, but also we have to consider.
Concurrent Java technology
Java concurrency Java multi-threading technology refers to technology, and JUC bag concurrent classes, such as thread pool concurrency tools, blocking queue and so on.
Java technology can be complicated by independent learning, it is a major focus of the advanced knowledge of Java.
Java network programming and server
This piece of content is more complex in Java but also a very important piece of content. Such as BIO, NIO, and the use of some principles of AIO, this type of web server and tomcat, even netty this network programming framework, are able to understand and learning content.
And tuning base Jvm
JVM is to provide a process running Java, JVM learn knowledge, but also our only way. In addition to read "in-depth understanding jvm virtual machine" than, what we have to learn is to JVM tuning, use the right tools to diagnose the problem, and finally solve the problem.
This section presents during an interview just GC, memory partition, and class loader, but also what I said JVM tuning issues.
3 Linux
As a background classmates, perennial asked the interviewer linux-related issues, so I find it very important to learn linux is, in addition to basic commands, the best can learn some shell scripts, or even a kernel-related knowledge, this area is one of my weaknesses.
4 Data-related
In this roadmap, the data portion to include a very large number of data sources, we can look at what we need to know.
Mysql Relational Database
Needless to say this, staff should be, whether it is the foundation of crud, index, or the storage engine is an advanced, distributed programs, we need to correspond to master.
Cache
Such as Redis, memcache a kind of cache, as the back-end developers, we also need to correspond to grasp, of course, their advanced features, as well as a distributed program, is essential knowledge.
search engine
Lucene-based solr, elasticsearch this type of search engine, in essence, is the data source, but not the necessary back-end content, but it does not hurt to learn a science it.
Big Data
Scene massive data processing more and more big data technologies such as hadoop, storm, also more and more fire, but the big data applications will normally be done by a professional engineer large data, we learn some of the basic elements will be enough.
5 algorithms and data structures
Algorithm has been a mountain in front of the school to recruit students, as the back end in terms of the students, in addition to the basic data structure algorithms, but also will be some advanced algorithms, such as dp, search, greedy, and so on.
In addition, to brush the question by LeetCode exam and other ways to consolidate algorithm is also recognized as a good solution.
Distributed 6
The last part is the most content, covering the widest part of the face. Distributed related technology too much, here we will make a brief induction.
web architecture
To understand the development of distributed web architecture will have a better understanding of learning, after all, the development of architecture also corresponds to the development of distributed technology.
Distributed theory
This section includes distributed before the evolution, base and cap theory theory, and so on, distributed learning technology, it is best to have some understanding of this part of the concept.
Consistency
Strong consistency Solution: Transaction and locks, weak consistency of the program: the message queue.
Distributed session
A common problem, there are several solutions
Distributed Cache
And said the cache as above, but here focus on distributed caching scheme
Distributed database
Herein refers to a distributed database program, including a distributed database that hbase.
Load Balancing
Load balancing is a topic worth exploring, in general we are talking about seven and four load balancing.
message queue
Message Queue is a more complex distributed components, we can learn to achieve common message queue such as amq, kafka like.
Service of
Services of the core include rpc, service registry and so on. Distributed service-related technology is also back-end students must master the content.
Virtualization
Virtualization is not the same back-end students must master the content, but now more and more services are deployed using cloud services and the way docker. So find out there is no bad.
Micro-channel public number
Personal Public Number: Huang oblique
Huang oblique cross-examination 985 Master of software engineering, self-learning Java two years, got the BAT nearly ten manufacturers offer, from a technical white grow as Ali Engineer.
JAVA authors focus on the back-end technology stack, keen to share programmers dry, learning experience, job experience and life program is currently small yellow diagonal CSDN blog a million + views, fans know almost 2W +, the whole network has 10W + reader .
Huang is a little oblique slash youth, adhere to the study and writing, believe in the power of lifelong learning, hope and more programmers make friends, progress and grow together!
Original eBook:
public attention after [number] Huang oblique reply [original] to collect my original e-book e-book "Programmer's rookie practice Manual: From white to Alibaba Java technology engineer"
Programmers 3T Technology Learning Resources: Some programmers learning resources spree technology, the number of public attention, background replies keyword "data" can get free no routine.
PubMed review the information:
Computer PubMed spree, are some of the review materials for my own use when PubMed review, including public courses and professional video review, recommend it to everyone here, the number of public attention, background replies keyword "PubMed" that is, available free of charge.
No public technology: Java technology rivers and lakes
If you want to focus on my real time updated articles and dry sharing, you can focus on my public number of rivers and lakes] [Java technology Java, a technical engineer Ali station, the author Huang oblique, focused Java related technologies: SSM, SpringBoot , MySQL, distributed, middleware, cluster, Linux, network, multi-threaded, occasionally speaking point Docker, ELK, as well as dry goods and technology to share the learning experience, committed to the full Java stack development!
Java engineers required Learning Resources: Some Java engineers common learning resources, the number of public attention, background replies keyword "Java" to get free no routine.
This article from the blog article multiple platforms OpenWrite release!
Foreword
Learning Roadmap tend to be beginner's guide to the same technology. Internet search to learn Java roadmap is a dime a dozen.
Today, I only choose a map, this map only enough to cover the knowledge points Java back-end technology. The so-called not the best, but for the most complete, students learn Java backend can refer to this chart to learn routing.
Of course, some knowledge is optional, does not mean you have to be on top of some friends. This figure is based on my review of the process were reviewed in the autumn trick, I feel the effect is good.
Without further ado, Syria, we see what valuable information contained on this chart it. Again, this article only for the road map to make a simple interpretation, for reference purposes only. You can specify a reasonable study plan according to their own circumstances, I believe will be of great benefit.
1 Computer Basics
This section is a computer-related professional courses students, but non-small Coban partners (such as the next) will need to spend time catching up. Especially computer networks, operating systems, data structures, which three courses.
As compiler theory, individuals probably know a little on the line, I have only seen a simple state machine concept and relevant content, not particularly important.
2 Java Programming
Here's Java programming section contains a lot of content. We can look at separately, you are probably summarize these parts.
Java foundation
Java foundation here includes basic grammar, collections framework, as well as some advanced features, such as reflection, annotations, and so on.
Java-based knowledge is very large, so to really get to know not so simple, in addition, over time, some of the new features also need to get our attention, such as the popular JDK8.
Design Patterns
I have always felt and Java design patterns can be the basis of a science, so I put it here. Of course, some real use to design mode places, such as the JDK collections, IO streams, etc., you need enough attention.
Java Web Technology
Java Web technologies including J2EE, and web frameworks, as well as a series of common components.
1 J2EE is mainly servlet, jsp these more retro web development components of. Although the direct use of their cases is relatively small, but we still need to take some time to master them.
2 web framework Spring is a commonly used, corresponding, hibernate and mybatis also need to find out.
3 Meanwhile, JavaWeb common libraries during development, such as jnuit unit testing, log4j logging tools, and build tools maven, are all we have to grasp the scope.
4 Finally, note that some basic knowledge of Web-related, such as HTTP protocol, network security infrastructure, but also we have to consider.
Concurrent Java technology
Java concurrency Java multi-threading technology refers to technology, and JUC bag concurrent classes, such as thread pool concurrency tools, blocking queue and so on.
Java technology can be complicated by independent learning, it is a major focus of the advanced knowledge of Java.
Java network programming and server
This piece of content is more complex in Java but also a very important piece of content. Such as BIO, NIO, and the use of some principles of AIO, this type of web server and tomcat, even netty this network programming framework, are able to understand and learning content.
And tuning base Jvm
JVM is to provide a process running Java, JVM learn knowledge, but also our only way. In addition to read "in-depth understanding jvm virtual machine" than, what we have to learn is to JVM tuning, use the right tools to diagnose the problem, and finally solve the problem.
This section presents during an interview just GC, memory partition, and class loader, but also what I said JVM tuning issues.
3 Linux
As a background classmates, perennial asked the interviewer linux-related issues, so I find it very important to learn linux is, in addition to basic commands, the best can learn some shell scripts, or even a kernel-related knowledge, this area is one of my weaknesses.
4 Data-related
In this roadmap, the data portion to include a very large number of data sources, we can look at what we need to know.
Mysql Relational Database
Needless to say this, staff should be, whether it is the foundation of crud, index, or the storage engine is an advanced, distributed programs, we need to correspond to master.
Cache
Such as Redis, memcache a kind of cache, as the back-end developers, we also need to correspond to grasp, of course, their advanced features, as well as a distributed program, is essential knowledge.
search engine
Lucene-based solr, elasticsearch this type of search engine, in essence, is the data source, but not the necessary back-end content, but it does not hurt to learn a science it.
Big Data
Scene massive data processing more and more big data technologies such as hadoop, storm, also more and more fire, but the big data applications will normally be done by a professional engineer large data, we learn some of the basic elements will be enough.
5 algorithms and data structures
Algorithm has been a mountain in front of the school to recruit students, as the back end in terms of the students, in addition to the basic data structure algorithms, but also will be some advanced algorithms, such as dp, search, greedy, and so on.
In addition, to brush the question by LeetCode exam and other ways to consolidate algorithm is also recognized as a good solution.
Distributed 6
The last part is the most content, covering the widest part of the face. Distributed related technology too much, here we will make a brief induction.
web architecture
To understand the development of distributed web architecture will have a better understanding of learning, after all, the development of architecture also corresponds to the development of distributed technology.
Distributed theory
This section includes distributed before the evolution, base and cap theory theory, and so on, distributed learning technology, it is best to have some understanding of this part of the concept.
Consistency
Strong consistency Solution: Transaction and locks, weak consistency of the program: the message queue.
Distributed session
A common problem, there are several solutions
Distributed Cache
And said the cache as above, but here focus on distributed caching scheme
Distributed database
Herein refers to a distributed database program, including a distributed database that hbase.
Load Balancing
Load balancing is a topic worth exploring, in general we are talking about seven and four load balancing.
message queue
Message Queue is a more complex distributed components, we can learn to achieve common message queue such as amq, kafka like.
Service of
Services of the core include rpc, service registry and so on. Distributed service-related technology is also back-end students must master the content.
Virtualization
Virtualization is not the same back-end students must master the content, but now more and more services are deployed using cloud services and the way docker. So find out there is no bad.
Micro-channel public number
Personal Public Number: Huang oblique
Huang oblique cross-examination 985 Master of software engineering, self-learning Java two years, got the BAT nearly ten manufacturers offer, from a technical white grow as Ali Engineer.
JAVA authors focus on the back-end technology stack, keen to share programmers dry, learning experience, job experience and life program is currently small yellow diagonal CSDN blog a million + views, fans know almost 2W +, the whole network has 10W + reader .
Huang is a little oblique slash youth, adhere to the study and writing, believe in the power of lifelong learning, hope and more programmers make friends, progress and grow together!
Original eBook:
public attention after [number] Huang oblique reply [original] to collect my original e-book e-book "Programmer's rookie practice Manual: From white to Alibaba Java technology engineer"
Programmers 3T Technology Learning Resources: Some programmers learning resources spree technology, the number of public attention, background replies keyword "data" can get free no routine.
PubMed review the information:
Computer PubMed spree, are some of the review materials for my own use when PubMed review, including public courses and professional video review, recommend it to everyone here, the number of public attention, background replies keyword "PubMed" that is, available free of charge.
No public technology: Java technology rivers and lakes
If you want to focus on my real time updated articles and dry sharing, you can focus on my public number of rivers and lakes] [Java technology Java, a technical engineer Ali station, the author Huang oblique, focused Java related technologies: SSM, SpringBoot , MySQL, distributed, middleware, cluster, Linux, network, multi-threaded, occasionally speaking point Docker, ELK, as well as dry goods and technology to share the learning experience, committed to the full Java stack development!
Java engineers required Learning Resources: Some Java engineers common learning resources, the number of public attention, background replies keyword "Java" to get free no routine.
This article from the blog article multiple platforms OpenWrite release!