More and more Java programmers dream of becoming Java programmers, and more and more people are actually starting to learn Java.

But some Java programmers have already moved from the low end to intermediate and advanced Java programmers.

While some Java programmers are still at the low end, how can programmers at the low end improve their abilities and strive for better treatment?

Let’s talk about skills first.

About Professional Skills:

It should be noted that not everything on this list is necessary — but the more knowledge you have, the higher your ratings and salary will be.

Algorithms: common sorting algorithm, binary search, linked list correlation, array correlation, string correlation, tree correlation and so on

Common serialization protocols and their advantages and disadvantages

Memcached memory principle, why block based storage

What does it take to set up an RPC

How to check if full GC occurs frequently on the online server

How to solve the problem if the online machine suddenly becomes large and the service cannot be carried

Implementation of LUR algorithm

LinkedHashMap achieve LRU

Define the data structure of the stack. Implement a min function in this type that finds the smallest element of the stack

Mass data processing solutions

Evolution of the REACTOR model

Blocking, non-blocking, synchronous, and asynchronous

Subinterface of Collection

JVM tuning is relevant

Zookeeper node type how to implement service discovery and service registration

Nginx load balancing, let you to implement load balancing, how to implement

Linux commands, such as awk, cat, sort, cut, grep, uniq, wc, and top

Pressure test related, how to analyze, single interface pressure test and multi – case pressure test

What would you say are your strengths and weaknesses

The implementation of Spring MVC

Netty bottom realization, IO model, ChannelPipeline implementation and principle

Cache design and optimization

Cache and database consistency synchronization solution

The system architecture of your project, talk about the overall implementation

Usage scenarios for message queues

The differences between ActiveMQ, RabbitMQ and Kafka

Second, accumulate industry background;

Industry background is important; After working for 5 years, I must determine my industry background, such as telecom industry, banking project, ERP industry and so on.

It is impossible for a programmer to write code all the time. As the saying goes, different industries are like mountains, and the business of each industry is different or even very different. For example, if you have been engaged in the research of streaming media, you will be transferred to a bank project. After that, you can learn everything from the beginning, and the previous industry experience will not be used. Moreover, when a company hires people, it wants to find programmers who are easy to learn and don’t need to train for a long time. If you change jobs frequently, be aware of this.

If you stay in an industry long enough, you can become an expert in that industry. We can often see that a leader of a project team is mediocre in code writing, but he can communicate smoothly with customers and control the proposal of new requirements and the correction of bugs. Clients are also willing to deal with him because he is the only one who can maintain the old projects, and he even knows every table structure of the system — how long he has been in the industry.

Thirdly, reasonable career planning

Here’s a simple diagram to illustrate how programmers get promoted:

So there are a lot of steps to go from being just a programmer to being a CTO but we need to plan it out in order to get there as quickly as possible.

Every night from 8:00 to 10:30, Ali Daniel live lectures Java engineering, high performance and distributed, performance tuning, Spring, MyBatis, Netty source analysis and other knowledge points explained. You can join our Java Architecture/Distributed/High performance group: 697579751

Finally, I put together a systematic learning map:

Distributed project

Microservices Architecture

Performance optimization

Double eleven e-commerce project actual combat