Java developers learning technology system

01 . Basic technical system

I think the skill system of knowledge is the first step to determine whether the technology to cross the border. Knowledge of the system contains two meanings:

1, can know the contents of technical knowledge map (end text HD Atlas sweep the two-dimensional code)

Such as distributed systems commonly used RPC technology behind it comes to network IO (Netty), network protocol, service discovery (Zookeeper configuration center), RPC service management (current limiting, fuse, demotion), load balancing and so on.

2, able to sort out the differences and connections between the various technical concepts

In the field of distributed systems, there are many similar concepts, but in different products or hierarchy. For example, the word load balancing, DNS, LVS, Ngnix, F5 and other products can achieve, and they will exist in large-scale distributed systems, then they would figure out what their respective levels located, to solve the problem.

Another example of this caching technology, distributed cache, the local cache, database cache, the cache down there at the hardware level. The same is cached, what is the difference between them is?

If you are careful to observe, maker of the back-end development engineers always well aware of the entire technical system, so they can make more reasonable system architecture design and technology selection phase. 

02 . The accumulation of practical experience

       The ability to quickly solve real business problems in technology is to determine whether the clearance of the second step.
       Everyone in the course of the interview, there will be an experience: my knowledge has been established, but in answer to the interviewer's questions, always feel like an answer back, and there's no way to answer specific questions the interviewer. For example, when the interviewer asks these questions:

  1. We know that the message queue can be used in coupled systems to cope with asynchronous consumption scenarios, that how to ensure the accuracy of business data processing in the network unreliable scene?
  2. We all know that the system will be used in a distributed cache, then how to set the cache failure mechanisms in order to avoid system cache avalanche?
  3. We all know that the system is more or less the publishing process on-line, but what kind of release mechanism adopted in order to achieve as smooth as possible under major traffic scene?

Can perfect solve these problems is to distinguish whether a programmer experienced an important symbol, systematic knowledge can be obtained from books constantly concise, but the accumulation of experience need to constantly sum up combat

For many people, a very difficult point is usually written business code, few have access to good practice manufacturers, this time need pressed from two angles as follows:

1, when the flow rate to further increase the size of several orders of magnitude, then my system will be any problems?

2, if one part of a problem, then how to ensure the stability of the system?

03 . Technology works

The above mentioned are the technology for business practices, and efficient problem solving in business arise. But does it mean that their technology had passed out? I think not.

Determine whether the technology is designed to pass the third step is whether the ideas and principles behind the technology insight.

If you participated in some interviews manufacturers, will ask some open-ended questions:

1. Write a program, let it run-time performance for the trigger five times Young GC, 3 times a Full GC, then three times Young GC;

2, if a Java process suddenly disappear, you will how to troubleshoot this problem?

3, to load the code snippet for a Spring Bean, and elaborate on the specific implementation process?

       Is not seem difficult, is not the problem and prepare their own "exam" is not the same? I do not know where to start? If you have this feeling, then state your technology also need to continue to practice.

       You have to understand that this open-ended question, a question of changing the angle, but the ultimate point they are all basic principles. If you do not know the trigger conditions GC, you certainly can not know the result of the first question; Similarly, if you start to understand the mechanism of Spring is very clear, he gives it no matter what kind of code, you can answer the Code experience process. If you can maintaining the status quo, then congratulations, your technique through.

       A lot of technical problems mentioned above, where I do not do a detailed explanation, the answer can be found in the following technical atlas:

Guess you like

Origin www.cnblogs.com/liboware/p/11907545.html