After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

For many programmers who learn Java, it is not difficult to look back at the process of getting started with Java. On the contrary, they feel that there is no progress after learning, especially for a Java programmer who has entered the programming world for two or three years. If it is only adding, deleting, modifying, and checking, this is quite painful.

Many programmers in this situation are in outsourcing companies and look forward to leaving get off work every day. It is like being a monk and hitting the clock for a day. In order to break this deadlock, what should Java programmers do at this confused stage?

The following will share 5 advanced points of attention for the programmers. As the saying goes: the master leads the door and the practice is personal. To improve yourself, you still have to work hard.

One, reading frame source code

Reading the source code is the first choice. Whether you choose Spring or Java Collection, if you choose one, keep reading, and don't sit on the mountain and watch the mountain. In the process of reading the source code, the following 4 questions should be clarified:

What problem does the source code solve?

What is the principle of the source code?

What interfaces and classes does it use?

Why use these interfaces and classes?

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

2. Distributed communication

Monolithic applications hardly involve interactions between systems, or some interact through the old WebService. Internet distributed systems tend to adopt lighter and more efficient communication methods, such as HTTP and RPC protocols.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

Three, message middleware

Message queuing middleware is an important component in a distributed system. It mainly solves problems such as application coupling, asynchronous messaging, and traffic cutting. Achieving high performance, high availability, scalability and eventual consistency architecture is an indispensable middleware for large-scale distributed systems. Message queues play a key role in applications such as e-commerce systems, messaging, and log collection. Take Alibaba as an example. The message queue (MQ) developed by it has served Alibaba Group for more than 11 years and has been in all Tmall Double Eleven events. It supports the trillion-level data peak and provides a strong guarantee for large-scale transactions. Currently in the production environment, the most commonly used message queues include ActiveMQ, RabbitMQ, ZeroMQ, Kafka, MetaMQ, RocketMQ, etc.

 

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

 

Four, distributed transactions

The popularization of microservice architecture is inseparable from the pivotal role played by distributed transactions. Distributed transactions ensure data consistency among multiple services and are the foundation of distributed systems.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

Five, asynchronous, concurrent, multi-threaded

Synchronous question and answer can handle business in a relatively timely manner. However, when the business volume is large, in order to improve the availability and processing efficiency of the system, it is often processed in an asynchronous and multi-threaded manner. Thread pool technology is particularly important for high-concurrency programming. High concurrency knowledge is the basis for the development of high concurrency systems, and it is also an important test point in the interview. The underlying principles of Synchronized and ReenTrantLock, AQS, and common atomic knowledge points will almost always be asked in interviews with major manufacturers.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

Six, database, cache

Caching can be said to be a big killer to improve application efficiency. It is widely used in Internet products. It is necessary to master several common cache middleware. In many application scenarios, only caching can ensure the integrity of the application, such as the spike scenario.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

Seven, performance optimization

System performance optimization involves a wide range of knowledge, covering program design optimization, coding optimization, concurrency optimization, JVM tuning, bottleneck discovery, performance evaluation, and many other aspects. For engineers of the Java technology stack, mastering system performance optimization is the only way to advance. At the same time, system performance optimization is also a "frequent visitor" in BAT interviews.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

8. Microservice architecture

Microservices advocates splitting complex monolithic applications into several services with simple functions and loosely coupled, which can reduce development difficulty, enhance scalability, and facilitate agile development. Once the concept was put forward, it quickly spread all over the world. Currently Hailo has 160 different services and NetFlix has about 600 services. Domestically, many Internet companies such as Alibaba, Tencent, 360, JD.com, and 58.com have implemented microservices. The problem of distributed transactions is called one of the three major problems of microservices by the famous architect Chris Richardson, and the current microservice frameworks such as Dubbo and SpringCloud all provide feasible distributed transaction solutions.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

 

to sum up

Sometimes, don’t be disdainful of the little things around you. If you want to grow, you start with the little things at hand. The big guys in the same field, the tech guys, their success starts from writing the first line of code. At the beginning, the stage to go is still to go. It is obviously unscientific to directly cross the elementary level and become a technical master. Sometimes I feel that the thing at hand is simple, but I think it is simple, not really simple. Many things are often easy to get started, but it is difficult to maximize it. Therefore, in the basic stage, you must have high demands on yourself, grasp every detail, and strive to study every detail thoroughly and achieve perfection. In this way, for a long time, you may stand out among colleagues, and you will naturally have the opportunity to come into contact with a broader side, and also have the opportunity to expand your knowledge structure and skills. In short, don’t be too lofty in the initial stage. Do simple things repeatedly, every time you do You must have new thinking every time, instead of simple mechanical labor, so naturally there is nothing to improve, except for a little familiarity.

At last

The technical points of the knowledge mind map mentioned in the article I have summarized some architecture video materials and architecture interview topics for free to share with you (including Kafka, Mysql, Tomcat, Docker, Spring, MyBatis, Nginx, Netty, Dubbo, Redis, etc. Architecture technical information), I hope to help some friends in need who are confused in the development of this industry, spend less time looking for information in online blogs, forums and other places, and spend the limited time really on learning, so I share it here for free Some structure information for everyone. Hope that there is what you need in these materials.

One-click triple + comment, and then add my VX (tkzl6666) to receive it for free.

After 4 years of Java development work, I still only "add, delete, modify, and check". How can Java programmers advance?

Guess you like

Origin blog.csdn.net/m0_46874920/article/details/114883772