The most afraid of a person is not far away, but can not see the dawn of victory. I hope this article gives you a light at the end of your learning curve, so give it a try.

The main contents of this article include:

  • What are the career directions of Learning Java?
  • Data structures and algorithms
  • Design patterns
  • Computer Fundamentals
  • Introduction to Java
  • Java master advanced
  • Basic Framework (SSM)
  • Microservices Framework
  • Common middleware
  • The database
  • Distributed architecture
  • Tools and software that must be mastered
  • Summary of learning resource sites

What are the career directions of Learning Java?

Many Java entry-level learners have a very vague concept of the position or direction. Learning Android today and learning big data the day after tomorrow will inevitably lead to poor technology. This is what the interviewer usually says: the interviewer has a poor foundation.

Learning technology should first identify a direction to focus on, with a certain amount of accumulation and then broaden their knowledge, find their own interested in the direction of sink to study, cycle you will become an expert in this industry.

Java language, in the company according to the division of labor has spawned a number of jobs or technical direction.

I searched the positions of BAT and other big factories on Boss Zhipin. Currently, the following three kinds of positions are very popular:

(1) Android development

Skills required:

  • Familiar with Android UI development. Have an understanding of UI architecture and basic KNOWLEDGE of UI interaction.
  • Familiar with Android debugging tools and methods, can deal with a variety of Android complex problems;
  • Familiar with Android Framework layer, have experience in locating problems by reading Android source code;

(2) Java backend development

Skills required:

  • Have a solid Java foundation and a solid understanding of JVM principles; Familiar with Spring, MyBatis, Dubbo and other open source frameworks, and able to understand its principle and mechanism, with large distributed system design and development experience;
  • Familiar with design and development of Mysql based relational database, and have rich experience in database performance optimization;
  • Familiar with underlying middleware, distributed technology (such as RPC framework, cache, message system, etc.);

(3) Big data/data warehouse

Skills required:

  • Familiar with Hadoop/Spark/sqoop/hive/impala azkaban/big data related components such as kylin;
  • Proficient in SQL and performance tuning, proficient in Java, Python, Scala, one of the programming languages;
  • Master data warehouse (DW)/OLAP/BUSINESS intelligence (BI)/data statistics theory, and flexible application, have large data warehouse design experience;

Here are just three hot tech jobs for you to consider based on your own experience.

Data structures and algorithms

Learn what?

Some of you may ask: Do I need to learn algorithms to learn Java? The answer is: no choice!

The process of Internet interview in China is gradually drawing closer to that of foreign countries. For example, bytedance, BAT and other big companies, the manual tearing algorithm has become a mandatory action.

It is true that Java has rich class libraries and tripartite frameworks compared with C and C++. After entering work, most people are writing business code, commonly known as API boy or Crud boy. Algorithm seems not so important, but it is really a low-cost way for companies to interview and select candidates. If you write the algorithm and you pass it, either you’re smart or you’re diligent.

So no matter what language you’re learning: C, C++, Python, Java, GO, algorithms are a must. I have listed the core knowledge points of data structure and algorithm interview, you can refer to learn, one by one to break down.

  • Stack and queue: first in first out, last in first out
  • Linear list
  • Search: sequential search, binary search
  • Sort: swap classes, insert classes, select classes
  • Tree, binary tree, graph: Depth first (DFS), breadth first (BFS)
  • recursive
  • Divide and conquer
  • Sliding window
  • Three great algorithms: Backtracking, Greedy, dynamic Programming (DP)

How to learn?

The best or the most stupid method is to brush questions, strongly recommended buckle: leetcode-cn.com recommended brush more than 300 questions, to cover simple, medium, difficult questions. Before the interview to train hand feeling, not unfamiliar, can choose to keep a few days or a few days.

I suggest you read some books before you brush up:

Comic Book Algorithm – Xiao Grey’s Algorithm Journey

If you don’t have any background in algorithms, this book is for you. You can supplement the basic knowledge of data structures and algorithms, such as time and space complexity, searching, sorting, etc. If you have some basic knowledge, I suggest you skip to the actual algorithm section at the end.

Sword Finger Offer

A very classic book, learning algorithms will brush. But be aware that the titles in this book are written in C++, which may affect you if you are a Java developer. But remember that learning algorithm is the most critical or problem solving ideas and methods, which language is second, if you have more time, I suggest you use Java language to implement again.

Labuladong’s Algorithm Cheat Sheet

Highly recommended! This is a very new book. Before writing the book, the author opened an open source project on Github, mainly explaining the LeetCode problem solving routine. The total number of Start is in the top 40. At the beginning of the book, the basic thinking and routines of learning algorithms are explained. It is suggested to read this book and then brush the questions with Leetcode. The curative effect is very good!

Introduction to Algorithms

I’m a little low if I don’t recommend this book, which is a must-read and must-learn classic tome. Foreign big guy wrote, the classic work of domestic translation, although it is a classic but do not suggest the classmate who just entered the algorithm to see, because read this book you may want to give up the algorithm, more difficult to understand. The suggestion has certain foundation to proceed with this book again.

If you find reading boring, there are some geek Time columns that you can read for a fee, but the quality is very high. The Beauty of Data Structures and Algorithms

This column is written by Zheng Wang, a former Google engineer. He used the most suitable for the engineer’s study way, is not limited to a particular programming language, starting from the actual development scenarios, distinguished teachs you the method of learning data structure and algorithm, to help you understand the basic concept and the theory of the core essence of deep understanding of algorithms, help you to improve the data structure and algorithm thinking ability to solve problems.

Algorithm Interview Pass 40 lecture

This column is a video by Chum Chao, a former Facebook engineer. The author will use the whiteboard to guide you to solve the problem step by step, layer by layer, layer by layer, and each problem will use a variety of methods. I almost finished it and got a lot out of it.

The relevant data

This book language is interesting, there are more illustrations, very suitable for entry. The e – book web disk link is as follows:

Link: pan.baidu.com/s/1c9g1CK8P…

Extraction code: G5VZ

“Finger Offer” and “The Beauty of Programming” these two books can also be read, for algorithm interview is very helpful.

Download address:

Link: pan.baidu.com/s/1FTvU-nJw…

Extraction code: RZ4W

Design patterns

Learn what?

So whether it is learning martial arts or learning coding, there are some fixed moves, that is, design patterns.

When it comes to design patterns, many students may jump out: I know, singleton pattern, factory pattern…

Blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah, blah. The reason is that you don’t have enough code experience.

Think about where design patterns come from. In the last century, four big men formed a group called GoF and published a book, a collection of 23 design patterns, which gradually came to be known. These four people summarized a set of methodologies (code writing routines) from a lot of code practices, and we, as students in school or new employees, may not even write code, how could we easily and quickly master so many design patterns.

So it’s not unusual for you to learn design patterns, but not to be able to apply them to everyday code practice because you don’t have enough code experience.

Do you want to learn? Of course you should, because you may be asked in the interview. We still need to lay a good foundation for the theoretical knowledge of design pattern. We need to master these knowledge points:

  • There are six principles of design pattern: single responsibility, Richter substitution, dependency inversion, interface isolation, Demeter’s rule, open/close principle
  • UML Basics
  • There are three types of design patterns: creation, structure and behavior
  • Fundamentals of common design patterns

There are 23 classic design patterns (now there are more than 23, and some variations), and it’s too difficult to master all of them. We just need to master some common ones, and I’ve highlighted the ones we must.

How to learn?

There is a great deal of learning about design patterns online, and the quality is very uneven, so keep your eyes peeled when looking for them.

I recommend familiarizing yourself with the theory of UML before reading, because you will not be able to read any design pattern book without knowing UML, which is the premise of design patterns.

UML Learning Sites:

www.w3cschool.cn/uml_tutoria…

Don’t spend too much time learning UML, just get started.

Assuming you’re already familiar with UML, here are some books to consider:

Head First Design Patterns

Head First is a classic series, and some people really like it. This book explains boring design concepts vividly and interestingly, and is highly recommended as a start book.

Big Talk Design Mode

Dahua series is a very classic series of books in China, with many fans. This bold design model was the first of its kind to explain knowledge in the form of dialogue. Some of the examples are far-fetched, but it’s still a good primer.

Graphic Design Patterns

The graphic series was written by a Japanese author, and there was a very classic graphic HTTP, and this graphic design pattern is in a similar style. Since they are translated, some of the examples in the book may sound strange, as if translated technical books have this problem.

Design Patterns: The Foundation of Reusable Object-oriented Software

Another big black book, written by GoF, everybody says classic. However, the classic is the classic, it’s really hard to read, it’s not optimized for newcomers, and it’s not recommended if you want to get started learning design patterns. Why not? If you don’t mention the classic book, you say I love it again. (harm)

Do I need to read all these books? Of course not. If you’re preparing for an interview, my personal advice is to read just one of these. As for which book to read, you can find a corresponding e-book, pick a chapter to try, and choose the one that suits your taste and keep reading.

If you have several years of coding experience and want to write good code, you are advised to read the basics and absorb the best of each book.

The relevant data

Here I recommend small Fu ge “learning Java design pattern”, I finished reading, write very easy to understand, PDF and source CODE I have downloaded, you can download from my Baidu cloud disk:

Link: https://pan.baidu.com/s/1bMri7SgHPkwnyy1AzYSjMw

Extraction code: BDBU

Computer Fundamentals

(1) Computer network

Learn what?

There are a lot of protocols for computing networks, many students are confused after learning, or just know a little HTTP, but there are a lot of things to master:

  • OSI seven layer model, TCP/IP five layer model
  • Common network protocols include HTTP, TCP/IP, and UDP
  • Network security: asymmetric encryption, digital signature, digital certificate
  • Network attacks: DDOS, XSS, and CSRF cross-domain attacks

How to learn?

There is a very classic interview question: tell me how you went from URL input to final page presentation. This topic can cover most of the network knowledge, from DNS resolution to HTTP, TCP/IP protocol, physical layer protocol, all the way to the browser rendering page, you can talk about as deep as your technical background. I hope you can try to answer this question as well.

Some highly acclaimed books: How the Web Is Connected

This book is written by a Japanese author. This article revolves around entering the url in the browser, all the way to the display of the content of the entire process, graphic and interesting, very recommended!

Illustrated HTTP

It was also written by a Japanese author. This book is a comprehensive and systematic introduction to HTTP protocol, listing a lot of common communication scenarios and practical cases, I believe that reading will have a sense of enlightenment. The book is very thin and can be read in a few days. Highly recommended!

TCP/IP Volume 1: Protocols

The classic textbook of computer network, big book, difficult to chew. I suggest you pick the key points.

The relevant data

How Networks Are Connected and How HTTP is illustrated

Link: pan.baidu.com/s/1oP9P8sgi…

Extraction code: 76ha

For those who don’t like reading, here are some great video resources:

  1. Computer Network micro-classroom (with subtitles and without background music version) (gradually updated……) _ bi li bi li (゜ ゜ つ ロ cheers ~ – bilibili
  2. 2019 king’s deceased father grind the computer network _ bi li bi li (゜ – ゜) つ ロ cheers ~ – bilibili
  3. Han Ligang computer network Xie Xiren 7th edition December 2020 _ ゜ _ ゜-゜ analysis ロ Cheers ~-bilibili
  4. Computer network (Xie Xiren seventh edition) – teacher _ mimibili (゜-゜) analysis ロ cheers ~-bilibili

(2) Operating system

Learn what?

As a Javaer, you probably don’t work directly with the operating system in your normal work, because the JVM shields you from many differences. But in order to learn the JVM well, knowing a little about the operating system will help you gain a deeper understanding of how the JVM works.

The requirements for Java learners can be a little lower, but if you’re in C++, this is your focus.

  • The difference between processes and threads
  • Communication between processes: shared memory, pipes, messages
  • Memory management, virtual memory
  • Deadlock detection and avoidance

How to learn?

It’s hard to be proficient in operating systems, but if you can bring up some specific operating system knowledge during an interview, your interviewer will be impressed.

The relevant data

Recommend some video learning materials:

  1. Nanjing University Operating System: Design and Implementation (Jiang Yanyan)

  2. Operating System (Harbin Institute of Technology Teacher Li Zhijun)

Recommended books:

In-depth Understanding of Computer System CSAPP

Computer Systems: A Programmer’s Perspective The bible of the class, ha ha, big black book, difficult to chew.

[In-depth understanding of computer system] electronic books Baidu cloud disk link is as follows:

Link: pan.baidu.com/s/1kaTZVEG7…

Extraction code: XH99

Modern Operating Systems (3rd Edition)

The classic work in the field of operating system, because it is translated, encountered more obscure first skip, read several times to digest.

Introduction to Java

Learn what?

Java language from the birth to now has been more than 20 years, from the Tiobe ranking, Java language perennial top for a long time, so don’t be afraid to learn Java after suddenly not popular, at least in these years Java job opportunities are very many.

If you have a background in other languages, such as C, C++, etc., learning Java should be very easy and easy to get started. If you don’t have a language foundation and don’t want to get too low-level, Java is a good place to learn. As for Python, from a language level, python is really simple, and you can probably learn it in a week and write good code, whereas Java, where you can only learn the syntax in a week, is almost impossible to write good code. In addition, Go language momentum is very strong, we can also pay attention to.

Generally speaking, you need to master the following knowledge:

  • Process oriented VS Object oriented
  • Object – oriented basic features: encapsulation, inheritance, polymorphism
  • Access control characters: private, default, protected, public
  • Data type: basic type, reference type
  • Control flow: for, while, switch, etc
  • serialization
  • Exception handling (somewhat difficult)
  • Generics (difficult)

How to learn?

If you are zero basis, suggest you can find some Java entry video look, online video mixed, we pay attention to screening. Recommend a better platform: B station (www.bilibili.com/) is not to let you see two yuan, there are a lot of learning resources. (hey)

Knock on the blackboard: don’t take on too much video, because no one can tell by watching video. Watching videos is someone else pouring information into your head. The biggest benefit is that it gets you started quickly. If you want to learn more, what you need is self-learning, self-learning with thinking.

Reading is an efficient way to learn by yourself. Basic books are recommended:

Java Core Technology Volume I

Recommended as the first book on the Java journey, this book is very comprehensive and more practical than the 30 day Java learning books. There are some chapters in the book that you don’t really need to read, such as Swing GUI, because writing desktop applications in Java is outdated.

Alibaba Java Development Manual

Big factory Alibaba produced, this is actually a Java coding specification, coding habits from the beginning to keep good.

Thinking In Java

This is a very, very classic book, and if you ask anyone who is Java, it’s a waste of time if they haven’t heard of it, haha. In fact, to be honest, I tried to read the book several times, but I never finished it, partly because it was too thick, and also because I thought it was too wordy, so NOW I put it on the table, which is good for the height. Therefore, it is recommended that new people do not read this book at the beginning, or you will suspect that life is not a beginner to give up, it as a programming bible, when you have experience later pick up and then read it.

The relevant data

For Java development just entry students, you can look at the following book, or very good.

Link: pan.baidu.com/s/1J16FkCLh…

Extraction code: ishy

Head First Java and Java Core Technology Volume 1/2

Link: pan.baidu.com/s/1kx2A5MSl…

Extraction code: KU9m

Java master advanced

Learn what?

Congratulations you finally Java entry, the difference between Daniel and rookie is that the rookie will never stop at the entry level, and Daniel has found a new continent, over these several mountains you are not far from the master.

Java master advanced need to master many things, here enumerates some core knowledge points, must master all. This is the Java interview high frequency examination point, is also a part of the legendary Java eight-part essay, face into the next side, face is not good to go home and other news.

  • Java collection class source
  • The thread pool
  • Java proxy
  • IO model
  • JVM
  • Java Concurrent Programming (JUC)

How to learn?

Java has been introduced, you want to advance, suggest you do not look for video to watch, while reading while thinking.

“Effective Java”

The book contains a lot of programming advice, which basically tells you how to write good code. You need to make the transition from being able to write code (beginner) to being able to write code. It’s worth reading. If you have less coding experience, you can put off this part of the book a little bit, because you may not feel the same way.

Java8 In Action

Why learn Java8 when Java15 is out? Because right now a lot of companies are stuck with Java8, which is a big change after Java5, so learn it. After Java8, the release was so unimpressive that companies were reluctant to move to a JDK version that took so much time and effort and didn’t have significant benefits. This book covers all the new features of Java8 in detail and is highly recommended.

“Understanding the Java Virtual Machine in Depth, Version 3”

It was written by The great God Zhou Zhiming, very, very classic, and has been updated to the third edition. Java virtual machine is also known as JVM, JVM is Java interview required knowledge, do not understand this directly go home wait for the message. This book I read many times, every time after reading new harvest, wall crack suggested that we read.

The Art of Concurrent Programming in Java

This is a book devoted to Java concurrency, covering locking, common security collection classes, and basically covering everything in JUC (short for java.util.Concurrent package). Highly recommended!

The recommended books may not be easy to read, so read them several times. The book can not understand the place on the Internet search, find some high-quality blog or public number to see.

Now that you’ve basically learned the Java language features, you’re on track, if not at an expert level.

The relevant data

Java Concurrent Programming in Detail and Java Concurrent Programming practices

Link: pan.baidu.com/s/1BSq4kOES…

Extraction code: XUul

Basic Framework (SSM)

Learn what?

Learning Java language features can be tedious, but then you can learn the basic framework and start some projects, such as the Popular Spring framework in the Java space, which is customized for the Java backend and is very useful.

Before Spring came along, there was a popular framework like Struts, which was defeated by Spring for a variety of reasons.

We should often see SSM abbreviation on the Internet, in fact, is Spring+SpringMVC+MyBatis abbreviation.

Here’s what you need to know:

  • Spring family bucket (Spring, Spring MVC, Spring Boot) use
  • ORM framework (MyBatis, Hibernate)
  • Principle of the Spring
  • ORM framework principles

How to learn?

The best way to learn SSM framework is to complete a simple project by hand. It is suggested to follow the video and type out the code, so as to familiarize yourself with the development process of the project, you can also bring yourself a sense of achievement.

Knock on the blackboard: stage sense of achievement is very important, without this it is easy to give up learning, so or regularly set a small goal for yourself, add chicken legs what.

As a Java backend programmer, you are not a full-stack developer, so why bother with this? My advice is: either don’t write interface only, or write some HTML yourself, don’t need to be beautiful, just implement the function.

What do you need to do after you finish the project? The answer is: a deep understanding of framework principles. Knowing how to use a framework doesn’t mean you know how to use a framework. As a programmer with pursuit, understanding principle is always a required course. Who let this line be too volume?

Recommended books:

Inside Spring Basics

First of all, this is a Spring source book, not a project book. This is a highly recommended book if you need an in-depth understanding of Spring’s technical principles. It’s a little hard to read. Read it a few times.

MyBatis Technology Insider

MyBatis is a kind of ORM framework, used more in China, it is said that abroad like to use Hibernate. This book introduces the use and basic principle of MyBatis more clearly.

For the basic frame part, the gods learn by using the frame -> understanding the frame -> building the wheel.

The relevant data

Spring Inside Technology and Spring In Action

Link: pan.baidu.com/s/19J3xeuJq…

Extraction code: ZC3Z

Microservices Framework

Learn what?

Microservice architecture has become very popular in recent years, because the traditional single architecture and service-oriented architecture gradually cannot meet the needs of the Rapid iteration of the Internet. Microservices can make it easier to provide continuous inheritance and continuous deployment capabilities for faster product delivery to market.

Service-oriented architecture was actually proposed five or six years ago. After a period of low ebb, some good frameworks emerged after the bubble deflated, represented by SpringCloud abroad and Dubbo in China.

SpringCloud is different from Dubbo, but many of the fundamentals are similar, and you need to understand the nature of the technology as you learn. Here are some key points:

  • Dubbo framework
  • SpringCloud framework
  • Service registration and discovery
  • Distributed service link tracing
  • Service isolation, fuses, downgrades
  • The service gateway

How to learn?

Both springCloud and Dubbo have detailed documentation on their official websites:

  • Dubbo official website dubbo.apache.org/ can be cut to the Chinese version
  • SpringCloud website spring. IO/projects/sp…

It may be confusing to read the technical documentation on the website, but these are the most authoritative and first-hand sources.

SpringCloud and Dubbo are just popular technologies in recent years. At present, there are still few relevant books, and some classic books are also missing. I will list a few books for you to obtain as needed.

In-depth Understanding of Apache Dubbo and Combat

Dubbo was originally open sourced by Alibaba and later donated to Apache. I suggest you read this source code together.

“Spring Cloud Micro-service Combat”

You’d better learn about Spring and Spring Boot before reading this book, or you’ll get confused. In addition, this book was published in 2017. It looks a little old, so please pay attention to distinguish between old and new features.

If technical websites and books are not enough for you, I suggest you search for videos. Recommended search platforms: WEBSITE B, MOOC, netease Cloud Classroom.

Common middleware

Learn what?

End users do not use middleware directly, in other words, middleware is not a mass consumer software product. But in large companies middleware is essential, it’s the basic components and services that underlie the architecture of large websites, so it’s very, very important to learn.

Middleware is used to manage and interact data between different components/services in a large distributed system.

There are many excellent open source middleware in the industry, which are usually introduced into the system according to the needs of the business. The following lists some common ones, which are required to learn and not optional.

  • Cache: Redis, Memcached (Redis recommended)
  • Message queues: Kafka, RocketMQ, RabbitMQ, ActiveMQ, ZeroMQ (Kafka recommended)
  • Database middleware: ShardingSpere, Mycat

How to learn?

Each middleware covers a lot of content, and it takes a lot of time to learn.

Redis Chinese official website:

www.redis.cn/

Learn common redis commands as a dictionary

Kafka’s official website:

kafka.apache.org/

ShardingSpere website:

Shardingsphere.apache.org/index_zh.ht…

Mycat Authoritative Guide online PDF version:

www.mycat.org.cn/document/my…

A few books to recommend:

Redis Design and Implementation

Deep Understanding Kafka: Principles of Core Design and Practice

Distributed Database Architecture and Enterprise Practice — Based on Mycat Middleware

If you still want to learn more after reading this book, I suggest you pay attention to the two geek time courses:

Hu Xi: Kafka Core Technology and Combat

Jiang Dejun: Redis Core Technology and Actual Combat

But the courses are paid for, so be careful if you’re on a tight budget. Free resources also have on the net, rely on everybody to search ~

Middleware learning is a long process, not only need a lot of theoretical knowledge but also need practical experience.

For example, when you learn Redis, you should think about the five basic data types of their respective use scenarios, bloom filter is what principle, how to achieve distributed lock with Redis, with problems to learn efficiency is very high.

For example, if you learn Kafka message queues, you need to compare the advantages and disadvantages of common message queues, why Kafka has high throughput, whether Kafka loses messages, and how to solve the problem.

For example, if you learn database middleware, why do you want to divide the database into tables, tables ID and so on.

The database

Learn what?

Database is very important, the interview is also required to test, can test the point is very much, can test very shallow: ask about SQL use, can also test very deep: ask index and lock implementation principle. Here are some common tips.

  • Basic theory of database: paradigm, indexing principle, database engine
  • SQL Basic Syntax
  • SQL tuning, explain execution plan
  • Database transactions (ACID)
  • Database locks: optimistic locks, pessimistic locks, table locks, row locks, etc

How to learn?

I suggest that zero-based database students should first learn the basic theory of the database, because I see a lot of people are learning SQL at the beginning, and finally only use it, to the back of SQL tuning is very confused. If you just want to use the database, you can skip this part too.

There is a very classic teaching material about principle part “concept of database system” in order to offer study, classic books are more difficult to chew pit commonly thicker also, suggest everybody sees catalogue first, pick key to see. Those of you who studied it in college can skip it.

Once you have some theory, you can start to learn the SYNTAX of SQL. Here is a recommended book called “MySQL Must Know must Know”.

Of course, you need to understand the principle of index, transaction ACID, lock, ask database these things must test oh!

MySQL Learning Books

Database System Concepts

Classic database textbook, understand some basic principles, can be looked at briefly.

MySQL Must Know must Know

SQL syntax introduction to good books, recommended!

MySQL Tech Insider: InnoDB Storage Engine

Database advanced must see, understand the storage engine and transaction, lock, index and other principles.

The relevant data

Recommended books are MySQL Must Know must Know and High Performance MySQL.

Download address:

Link: pan.baidu.com/s/1KSJrthec…

Extraction code: FJYF

The following is my own collection of a video about MYSQL, I feel or quite good, interested can see.

Link: pan.baidu.com/s/1Q2kN8S3j…

Extraction code: E8VG

Distributed architecture

Learn what?

Distributed this part is the interview plus, a good answer to the interviewer will feel that you have a deep technical foundation, not good answer, as long as you have a good foundation can also pass. So, as a pursuit of technical people, do not let go of the opportunity to add points.

There are a lot of topics related to distribution. Here are a few things that you will often encounter in a project or interview:

  • Distributed transaction: Two-phase commit (2PC), compensation transaction (TCC)
  • Distributed lock: based on relational database (MySQL), Redis, Zookeeper
  • Distributed ID: Snowflake algorithm, Meituan Leaf

How to learn?

This part of the content is very difficult to learn, in many books are lightly covered, there is no in-depth explanation of the principle, so I will not recommend books.

So how do you learn? Xiaobian I am still learning, the best thing is to have a project to exercise, after the update, please look forward to ~

Tools and software that must be mastered

To do a good job, he must sharpen his tools. As a Java developer, you need to learn common software in the industry. The more familiar you are with the tools, the more efficient you will be at coding and the earlier you will likely leave the office.

  • Java’s smartest IDE: IntelliJ IDEA (Please give up Eclipse, I have a bunch of reasons to sleep with you)
  • Best version management tool on the planet: Git
  • Perennial dependency management tool: Maven
  • Docker

If you can’t use these software well, it just means… You should learn more.

Summary of learning resource sites

(1) Video websites

  • B station (recommended) : www.bilibili.com/
  • Www.study.163.com/
  • Geek Academy: www.jikexueyuan.com/
  • Moocs: www.imooc.com/

(2) Column

  • Geek Time (recommended) : time.geekbang.org/
  • Gitchat gitbook.cn/

(3) the lot

  • Java Knowledge Map (recommended) : github.com/smileArchit…

(4) Technical Blog:

  • CSDN blog: blog.csdn.net/
  • Blog Park: www.cnblogs.com/
  • Nuggets community (recommended) : juejin.cn/
  • InfoQ: xie. InfoQ. Cn /
  • Think no: segmentfault.com/
  • Open Source China: www.oschina.net/blog

(5) Search engine:

  • Baidu: www.baidu.com/
  • Google: www.google.com/

(6) Quiz:

  • Zhihu (recommended) : www.zhihu.com/
  • Stackoverflow: Stackoverflow.com/

(7).

  • Likou (recommended) : leetcode-cn.com/
  • Cow: www.nowcoder.com/

(8) Cloud Notes:

  • Graphite: shimo. Im /
  • Language finch: www.yuque.com/
  • 9, Netease Youdao Cloud
  • Evernote: www.yinxiang.com/ depends on personal habits to choose, not recommended.

(9) Online drawing:

  • processOn:www.processon.com/
  • Drawio:app.diagrams.net/ each has its own features and is recommended.

summary

In my opinion, the best way to learn a new knowledge is as follows:

  1. The official website (most likely in English, not recommended for beginners).
  2. Books (more systematic and complete knowledge, recommended).
  3. Video (easy to understand, recommended, there are many learning videos on B site, the probability of finding the learning video you want).
  4. Online blogs (you can read them when you’re trying to solve a problem).

Believe you see this, will probably understand why programmers, so high, because to learn things really a lot, and technology update soon, also need to keep learning new things, but don’t panic, as long as you arrange your time, find out what is the key, what just know is enough. This will focus your study and increase your efficiency.

Most of the above basic predecessors have summarized, I also have a lot of things to learn, let’s work together ~

Here, remember to like, follow and bookmark yo!!