当前位置:网站首页>Learning method 3 for promotion of large enterprises: chain learning method

Learning method 3 for promotion of large enterprises: chain learning method

2022-06-22 05:35:00 Senior front end engineer station wide direction

promote Technical depth , Best use Chain learning .

If you have participated in the promotion defense , Must have experienced the judges “ The life chasing serial question ”, such as :

  1. You're explaining PPT When I mentioned , A project uses Netty technology , The judges will first ask you Netty Some of the technical points of ;
  2. When you say Netty The essence is Reactor Network model time , The judges will ask you Reactor The principle of network model ;
  3. When you say Reactor The foundation is Java NIO When , The judges will ask you Java Of NIO/BIO Technical details of ;
  4. When you say Java Of NIO stay Linux The platform is based on epoll To achieve , The judge asked you again Linux Of epoll/select Principle of etc .
  5. ……

In the face of this “ Break the casserole and ask after all ” The way , If you don't have enough preparation at ordinary times , You'll probably get stuck .

So-called “ Chain learning ”, seeing the name of a thing one thinks of its function , The process of learning is like pulling a chain from the water , Pull out one ring and then another , Finally, pull out the whole chain .

When knowledge is linked in chains , Interlocking , Your understanding of technology is very thorough , The judges asked exactly , You can answer to the end .

But the chains of knowledge are not connected at random , The interlocking way is very particular . There are two common ways :

The first is The top-down 、 Layers of connection , Get through a technology field layered .

The second is from the outside to the inside 、 Layers of depth , Get through a technology details layered .

With Netty Network programming as an example , Related fields can be divided into 6 layer , Or the upper layer depends on the lower layer , such as Netty rely on Java Network programming ,Java Network programming in Linux And depend on Linux Network programming interface provided ; Or the lower layer is the application and implementation of the upper layer , such as TCP/IP Is the principle , and Linux Network tuning and tools are TCP/IP Specific application of . Its domain hierarchy is shown below :

notes :

The above illustration is only an example , You need to analyze it according to your actual work situation . If you are Windows Development on the platform , So the picture above “ operating system ” This floor will be changed to “Windows Network programming ”,“ Tools & To configure ” This floor will be changed to “Wireshark” And so on. .

There is no uniform standard in the industry for the specific hierarchical relationship , such as “ Tools & To configure ” This floor , If you think it should be put in “ computer network ” On that floor , In fact, it can be .

The same to Netty Network programming as an example , The technical details can be divided into 4 layer , Its detail layering diagram is shown below :

The steps of chain learning

The first step of chain learning , Is to Define the depth of a technology into which layers .

say concretely , Namely Draw “ Domain hierarchy diagram ” and “ Detail layering diagram ”. At first you may feel that you can't draw , This just shows that your understanding of depth is not enough , And trying to draw a picture itself is a combing structure 、 The process of strengthening cognition .

After drawing two pictures , The second step is to Know what level you want to learn .

Learning too little , Can not achieve the purpose of raising the depth ; Learn too much , It will cost too much time and energy . With Netty Network programming as an example , From my own experience of practicing and guiding others , Domain hierarchical graph 6 You don't have to learn everything , Most people learn 3~5 Layers are enough ; But the details of the layered graph 4 layer , I suggest you learn at every level .

After determining which level to learn , The third step is to Clarify how each layer should be learned .

In the domain hierarchy diagram , The more you go up, the more you apply , The more you use it in real work , The more you go down, the more you lean ( Including related tools and configurations ), The less you use in actual work . So the general principle is , Invest more time at the top , Pay more attention to details and skillfully use , Invest relatively little time at the lower level , Pay more attention to principles and simple applications .

For example, for Netty Domain hierarchy diagram of network , If you're not Netty The developer of the project , But just want to use Netty To build your own system , that “Linux Network programming ” This floor , You just have to master select/epoll Such as technical principles, advantages and disadvantages ,epoll Provided API If you have time, you can take a look at , There is no time not to look ; But for Netty Provided by itself API, The more proficient the better .

In the detail hierarchy diagram , You need to study each layer in detail . It should be noted that , about “ Implementation source code ” This floor , You don't need to master every line of source code , Just master the key source code , That is, the source code related to the design principle and design scheme .

The advantages of chain learning

Chain learning has two main advantages :

1. Urge us to take the initiative to improve

Most people are in real work , Many technologies only touch the front of the domain layered graph and the detail layered graph 2 layer , Without further understanding .

And if you use chain learning , You will realize , Completed the work with a technology , That doesn't mean you've mastered the technology . You also need to use the technology you just used as a starting point , Draw a complete domain hierarchy diagram and detail hierarchy diagram , Then break through one by one , In order to increase the depth , Achieve proficiency level .

2. Systematize knowledge and skills

Clarify the relationship between knowledge and skill points , It helps to better understand and apply these knowledge and skills .

for example , If we want to Linux The platform is based on Netty Development concurrency 10 Million connected high-performance servers , It is necessary to master Netty Technical details of , We should also deeply master the technology related to the depth of the field , Include :

Netty Technical details : Need to set up Netty Related parameters of (ChannelOption.SO_BACKLOG,ChannelOption.TCP_NODELAY,ChannelOption.SO_REUSEADDR etc. ).

Java Network programming : You need to know when debugging Java Network programming API wait .

Linux Network tools : Need to use Linux Network tool positioning problem .

Linux Operating system configuration : Need modification Linux Maximum number of file handles for 、 Need to optimize Linux Of TCP/IP Parameters (net.ipv4.tcp_tw_reuse,net.ipv4.tcp_keepalive_time etc. ).

Only using chain learning , You can systematically understand these related knowledge and skills , And how to string them together .

Summary of chain learning method

Now? , Let's review the key points of chain learning :

  1. Chain learning is to make knowledge form a chain , Interlocking , It is mainly used to improve the technical depth .
  2. The steps of the chain learning method include : Define the depth of a technology into which layers , Make clear which level to learn , Clarify how each layer should be learned .
  3. The advantages of chain learning are : Urge us to take the initiative to improve , Systematize knowledge and skills .

原网站

版权声明
本文为[Senior front end engineer station wide direction]所创,转载请带上原文链接,感谢
https://yzsam.com/2022/173/202206220525114485.html