It has been four years since I entered the Internet industry.

Looking back at my first exposure to Java, it was in a college class, obscure knowledge, and now I can recall the fear of being dominated by the final exam.

Until the Internet into this industry, and then think back to their entire journey into the work, summed up the route of learning Java, hope to help you enter the Java small white.

Outline of a,

Most things, there is a goal to action, action in order to achieve the goal. You can also write them down or print them out and place them in a visible place next to you to help you motivate yourself.

Learn Java, but not only learn Java, because in the computer this tree, Java is just a leaf.

A qualified Coder, in addition to Java, also need to be familiar with the operating system, computer network, database, front-end, middleware, framework and so on these things, if you want to become a Top Coder, project management, English, communication, algorithm is also very important.

In terms of employment, I personally think that master the Java foundation, computer foundation, the use of tools, databases, Web front-end, Javaweb, framework use, Linux, middleware, even an entry-level Coder.

First, Java foundation

Let me list the things that you really need to learn in the Java basics.

01. Introduction to Java

  • Overview of the Java Language

  • Relationships among JDK, JRE, and JVM in Java

  • Public class and class in Java

  • Java identifiers and keywords

  • Java variable

  • Java data types

  • Java operator.

  • Java expressions & statements & code blocks

  • Comments in Java

02, Java control statements

  • Java if else

  • Java switch statement

  • Java for loop

  • The Java while loop

  • Java break statement

  • Java the continue statement

03. Java arrays

  • Java array

  • Multidimensional array

  • Java Array copy

Java Object-oriented (1)

  • Java classes and objects

  • Java method

  • Java method overloading

  • Java constructors

  • Java string

  • Java Access

  • The Java this keyword

  • Java Final keyword

  • Java recursive

  • Java Instanceof operator

Java Object-oriented (2)

  • Java inheritance

  • Java method override

  • Java Super keyword

  • Abstract class & Abstract method

  • Java interfaces

  • Java polymorphism

  • Java packages

Java Object-oriented (3)

  • Nested & inner classes

  • Java static keyword

  • Java anonymous inner class

  • Java singleton

  • Java enumeration class

  • The Java enumeration constructor

  • Java enumeration string

  • Java reflection

07, Java exception handling

  • Introduction to Java Exceptions

  • Java Exception Handling

  • Java try catch

  • Java throw and throws

  • Java catches multiple exceptions

  • Java try-with-resources

  • Java annotations

  • Java annotation types

  • The Java log

  • Java assertion

08. Java collections

  • Java Collections Framework

  • Java Collections Interface

  • Java List interface

  • Java ArrayList

  • Java Vector

  • Java Stack

09. Java queues

  • Java Queue Interface

  • Java priority queue

  • Java dual-end queue interface

  • Java LinkedList

  • Java Array Queue

  • Java blocking queue interface

  • Java ArrayBlockingQueue

  • Java LinkedBlockingQueue

10, Java Map

  • Java Map interface

  • Java HashMap

  • Java LinkedHashMap

  • Java WeakHashMap

  • Java EnumMap

  • Java SortedMap interface

  • Java NavigableMap interface

  • Java TreeMap

  • Java ConcurrentMap interface

  • Java ConcurrentHashMap

11, Java Set

  • Java Set interface

  • Java HashSet

  • Java EnumSet

  • Java LinkedHashSet

  • Java SortedSet interface

  • Java NavigableSet interface

  • Java TreeSet

  • Java set algorithm

  • Java iterator interface

  • Java ListIterator interface

12. Java byte streams

  • Introduction to Java IO flows

  • Java InputStream

  • Java OutputStream

  • Java FileInputStream

  • Java FileOutputStream

  • Java ByteArrayInputStream

  • Java ByteArrayOutputStream

  • Java ObjectInputStream

  • Java ObjectOutputStream

  • Java BufferedInputStream

  • Java BufferedOutputStream

  • Java PrintStream

13. Java character stream

  • Java Reader

  • Java Writer

  • Java InputStreamReader

  • Java OutputStreamWriter

  • Java FileReader

  • Java FileWriter

  • Java BufferedReader

  • Java BufferedWriter

  • Java StringWriter

  • Java PrintWriter

14. Java concurrent programming

  • Process and line

  • Multithreaded entry and interface

  • Thread groups and thread priorities

  • Thread state and main transformation methods

  • Communication between threads

  • Reordering and happens-before

  • volatile

  • Synchronized with the lock

  • CAS and atomic operations

  • AQS

  • Schedule a task

  • Stream parallel computing principle

  • Frok/Join

  • Communication tool class

  • CopyOnWrite

  • Concurrent collection container

  • Lock interfaces and classes

  • Blocking queue

  • Thread pool Principle

15. Java VIRTUAL machine

  • Java memory structure

  • The heap

  • The stack

  • The garbage collection

  • JVM memory region

  • Java virtual machine stack

  • The class file

  • Bytecode instruction

  • JVM parameter tuning

  • Java Object Model

  • HotSpot

  • Class loading mechanism

  • Compile and decompile

  • Decompiler tool (JavAP)

  • JIT

  • Vm performance monitoring and troubleshooting tools (JPS, JStack, JMAP, Jstat, JConsole, and JavAP)

How do you systematically learn?

Recommend a set of video, power node old du talk Java zero basic tutorial, in B station to see.

www.bilibili.com/video/BV1Rx…

2. Basic computer skills

What does computer basics include?

Computer composition principle, operating system, computer network, data structure and algorithm. Principle of computer composition

First say computer composition principle, this part of the content mainly involves

  • Computer System Overview

  • Data and operations

  • Summary of the CPU

  • Overview of the Storage Subsystem

  • Overview of bus and IO

Study “Introduction to Computer Major”

Introduction to computer Science will give you a general idea of the subject you are studying, focusing on breadth rather than depth.

If you’re a software engineering major, you can also go to The Introduction to Software Engineering.

3. Use of tools

Intellij IDEA if you want to write quality Java code but also be efficient, use it!

Check out this Intellij IDEA instructional video on website B.

www.bilibili.com/video/BV14t…

As you all know, a version control system is very important !!!!!!

Even if you’re coding alone, it can help you take snapshots of your project, record every change, create different branches, and so on.

This is especially valuable if you are working with multiple people, as you can not only see what others are doing to the code, but also resolve conflicts caused by parallel development.

There are many version control systems, one of the most prominent is Git.

If you want to learn Git well, check out this Git tutorial.

www.bilibili.com/video/BV1iv…

Iv. Database

Java internship is no more than adding, deleting and checking. Don’t have too many illusions. Basically, any one’s internship experience starts from CRUD. If you want to learn MySQL, it is recommended to see the following set

www.bilibili.com/video/BV1fx…

B station is a classic video tutorial, good reviews, cover all the knowledge of MySQL

With this set of one-two punch, I think I have no problem finding an internship.

This is also a skill point that must be mastered by a Java backend programmer.

5. Web front end

Although as a Java backend development Coder, but in the face of a complete project, and front-end has an indispensable relationship.

Simple front-end knowledge is still needed.

Also, not all companies differentiate between front and back ends, full stack engineers are obviously better.

Basic Front-end technology (HTML/CSS/JavaScript)

  HTML:

www.bilibili.com/video/BV11t…

CSS:

www.bilibili.com/video/BV1tt…

JavaScript:

www.bilibili.com/video/BV1Ft…

In addition, I recommend some tutorials on the knowledge you will encounter

Linux Basics (for web servers)

www.bilibili.com/video/BV1Li…

Vue.js (the most accessible front-end framework)

www.bilibili.com/video/BV1q5…

Six, JavaWeb

After the Web phase, it’s JavaWeb.

I recommend these two sets of videos, different versions, just follow the video

JavaWeb【IDEA version 】

www.bilibili.com/video/BV1Yz…

JavaWeb [Eclipse Classic]

www.bilibili.com/video/BV18z…

Seven, framework,

To get a Java internship, you need to know a little bit of the Spring framework, not a lot of it. It helps to know one framework, especially Spring Boot. Because if you don’t know the stuff, you’re not going to be able to do the project.

The main contents involved are:

  • Spring

  • Spring MVC

  • MyBatis

  • Spring Boot

For more information about SSM (Spring+Spring MVC+MyBatis), see the following video.

www.bilibili.com/video/BV1Ug…

To learn more about Spring Boot, watch this video below

www.bilibili.com/video/BV1pK…

Learn SSM + Spring Boot, you can start practical projects, like GitHub VHR and mall, are good practice projects, highly recommended.

8. Internet distributed technology

At this time your level is still only left on the simple use of the framework, want to further study, but also to find some framework source code, in-depth understanding.

In addition, you should be familiar with design patterns at this point and need to read some books on coding optimization to improve your coding skills.

You can learn distributed architecture, microservices and other techniques to improve yourself.

As our business more and more and more important, monomer architectural patterns have been unable to corresponding large-scale application scenarios, and the system must not exist in a single point of failure cause the overall is not available, so only vertical or horizontal split business system, make them form a distributed architecture, the use of distributed architecture to eliminate redundant system of single point of failure, This improves the availability of the entire system.

At the same time, the module reuse degree of distributed system is higher, the speed is faster, the expansibility is higher, which is the essential link of large projects.

Microservice architecture introduction strategy — For traditional enterprises, they can consider introducing some appropriate microservice architecture principles to transform existing systems or create new microservice applications at the beginning, and gradually explore and accumulate microservice architecture experience, rather than fully implement microservice architecture.

Since has stepped into the Internet circle, become a member of the programmers, we must uphold the concept of “always learning”, often update their own technical library, for professional Java programmers really not exaggerating!

Recommended videos:

  • Dubbo video tutorial: www.bilibili.com/video/BV1Sk…

  • Redis video tutorial: www.bilibili.com/video/BV14t…

  • Maven module management more: www.bilibili.com/video/BV1kg…

  • Linux video tutorial: www.bilibili.com/video/BV1dt…

  • SpringCloud video tutorial: www.bilibili.com/video/BV1ZV…

  • SpringCloud Alibaba video tutorial: www.bilibili.com/video/BV1nK…

  • Nginx video tutorial: www.bilibili.com/video/BV11V…

  • The Spring Session video tutorial: www.bilibili.com/video/BV1iK…

  • FastDFS video tutorial: www.bilibili.com/video/BV1ta…

  • The RabbitMQ video tutorial: www.bilibili.com/video/BV1Ap…

  • MyCat video tutorial: www.bilibili.com/video/BV1gK…

  • Docker video tutorial: www.bilibili.com/video/BV1QA…

  • Kubernetes (k8s) video tutorial: www.bilibili.com/video/BV1KU…

  • MySQL cluster video tutorial: www.bilibili.com/video/BV1Rg…

  • SVN video tutorial: www.bilibili.com/video/BV1ux…

  • Apache Shiro video tutorial: www.bilibili.com/video/BV14T…

  • Large Internet electricity project: www.bilibili.com/video/BV1RQ…

In short, master the main knowledge point thoroughly first, slow a bit is normal, seek fast gain is not worth the loss, such as the bottom basic knowledge to play firmly, when learning things will be fast a lot, can find more project practice later, learning efficiency swish, sometimes slow is fast.