当前位置:网站首页>20220702 how do programmers build knowledge systems?
20220702 how do programmers build knowledge systems?
2022-07-02 21:56:00 【Ronny said】
How do programmers build knowledge systems
The content of this article is 《 Geek time - Master class of message queuing [1] 》 One of the articles
Sum up , Form a pyramid structure to learn , Hierarchical learning . The bottom of the tower is very wide , Representative applications emerge in endlessly , The author takes the message queue as an analogy . How message queuing works It is also different from other heterogeneous applications . But digging deep, we found that no matter the message queue 、 Or computing intensive applications , Or io For intensive applications data structure 、 The underlying technology is actually by analogy .
The author hopes that we can form a systematic knowledge system , This knowledge system and I 【 Cognitive methodology of new things 】 agree without prior without previous consultation . Next, chew it well
Hello , I'm Li Yue .
At the end of the course , We don't talk about technology itself , I want to sit down , Talk to you about how to build a personal technical knowledge system .
Now people who do technology generally have a kind of anxiety , I believe you have more or less , What about anxiety ? Always feel , I don't know too much technology . Although you keep learning , Desperately expand your technology stack , But in the face of emerging new technologies , The speed of learning will never catch up with the development of new technology , Will feel that they will not be more and more things , This is actually a kind of technical anxiety .
What is the source of anxiety ? anxious , In fact, it is a kind of irritability caused by excessive worry about some bad things . This fear comes more from “ Can't see ” Or rather, “ Unknown ”, Human instinct is to have inexplicable fear of the unknown . such as , I didn't do well in the exam when I was a child , Taking the report card home is the most anxious time , Because I don't know if my parents will beat me up when they see my grades . After the report card is handed to my parents , Even if I was beaten , No more anxiety , Of course, ass pain is another thing .
For technical anxiety , What you are worried about “ Bad things ”, In fact, I'm worried that my technological growth can't keep up with the development speed of the technological environment . It's like a race , The track is a myriad of roads , All the people are running desperately on different roads , You don't know where other people are , I don't know how far to finish , It's strange that you don't worry . The solution to anxiety is , Give you a navigation , You can see where you are , What is the road ahead , How to get there , The anxiety is relieved .
Measures to alleviate technical anxiety “ Navigation ” What is it? ? If you can jump out , See the whole technical system , Know the location of your own technology stack in this technology system , Know your strengths and weaknesses , And I'm not worried anymore .
We can understand the whole technical system as a super large inverted cone , Big up and small down . This cone , The more up, the more application oriented , Or focus on business , The lower down , More emphasis on basic technology and theory . The whole structure of technical knowledge is such a pattern , Each technology point constituting this technology model also presents such a state . For example, message queuing , It's a small part of the whole technology system , It is also an inverted cone .

At the top is the message queuing ecosystem , There are so many technologies involved in this , Including how to coordinate with flow calculation , How to cooperate with microservice , How to realize cloud nativity and so on . One more level down , It's all kinds of message queuing products , Any of these message queuing products , If you want to master it , It takes a lot of energy .
The cone goes down , The less technology involved . for instance , The implementation principle of message queue , We have almost covered the whole course . The underlying technology it uses , It's asynchronous 、 Concurrent 、 Locks, etc. . Until the tip of the cone , Just a data structure , It is also the theoretical basis of all message queues :“ queue ” This data structure .
Back to the macro level, this big cone , Although it's getting bigger , however , Where are the new parts ? Are they all on it ? in other words , The big pie on the big cone is bigger and bigger , But the bottom part , In fact, there is little change . Although computer related science is only decades old , however , In the last two decades , There is hardly any breakthrough in basic theory , That is to say, the tip of the big cone , It hasn't changed in 20 years . My undergraduate courses more than ten years ago , Compared with the courses currently studied by college students , Basically nothing changed , Or compiling principle 、 Graph theory these classes .
See the whole technology system , Let's look at yourself as an individual . For the whole technology system, this super cone , What each of us can master , It's your personal technology stack , Only a small part of it .
You may have learned a lot of technology , Including the basic theoretical knowledge taught in the University 、 The main working programming language and some frameworks 、 For an interview , Brush a lot of architecture and algorithm problems . Do you feel , These three parts have nothing to do with ? College courses have long been forgotten , Because I can hardly use ; What we use every day in our work is this framework, addition, deletion, modification and search , Well done , There's no challenge ; The algorithms are just for interview .
What's the reason ? Because your technology stack hasn't been built into a system yet , It's fault . This knowledge is actually connected , No matter what application you develop , What programming language to use , It's necessary to use some basic components or storage system , Some design patterns are necessary to implement these basic components 、 Various algorithms , So these patterns and algorithms , Its theoretical basis is the graph theory you learned in College 、 The knowledge involved in these courses, such as the principle of computer composition . So , It's not that you can't use the knowledge , It's your knowledge system that's not built .
That's a good one 、 What kind of technology stack should be ? Should be ,“ Deep foundation , Dabble in a wide range of , interconnect ”.
Put your personal technology stack in the big cone , It should be like a squid with its head upside down . We all know , Squid's head is big and sharp , The whiskers are many and long . Turn the squid over , Its head should be as full as possible at the bottom of the big cone , in other words , You need to master most of the basic knowledge at the bottom .
A lot of tentacles going up , Represents the top of the whole technology system in many fields , There are several areas you should also master . also , From top to bottom , It's better not to have faults , You can't just float on the surface , It's about going deep enough , Go deep and connect with the underlying technology you have , Your knowledge system is connected .
for instance , For example, you wrote a piece of code , Write a piece of data into the database . The program you wrote , How does it store and transmit this data at runtime ? How data is passed from your program to the database ? How data is processed and stored in the database ? How does the database save data to disk ? In what form is data saved on disk ? If you can answer these questions , That means your knowledge system has been opened up from top to bottom .

What are the benefits of such a personal technology system ? Every application you have mastered , They are the most common things in your work , You have enough depth to , The technical scheme designed or the code written is of higher quality , It's not hard for you to meet the relevant problems . There is a very good foundation , You can learn new application technology very quickly , Because you just need to learn the upper part of it , Many of the underlying technologies are interlinked .
It's like 《 Master class of message queuing 》 special column , We use it 30 Time of class , From the application of message queuing to the principle of implementation 、 And then the underlying technology . then , We are developing in practice RPC Frame time , You will find that it is the same as many underlying technologies used in message queuing , Then you will learn easily and quickly . about RPC Frame this knowledge system , You have mastered many basic technologies , What you really need to learn , New knowledge will be less .
that , How should we build our own technical knowledge system ? Here I give you some advice .
Most of our programmers are growing on the same trajectory . Those computer courses in College , Apart from the programming language you learned , After graduation of other professional courses, the rate is probably useless . as a result of , These technologies are in the whole technology system , Basically at the bottom . And after we graduate , Whether it's doing Web Development 、 do APP Development or machine learning , In the technology cone structure are the top application technology , It's too far from the underlying technology , Can't get in touch .
My advice for you at this stage is , Try to expand your technical scope in a technical field . such as , You do Web Developed , You can try to learn and use various related technologies , Like all kinds of Web frame 、HTTP agreement 、JSON、 Database application 、 Related middleware and components . You don't want to learn today Spring, Tomorrow I will learn machine learning , I'll learn Android the day after tomorrow , It's too big a span to build a system .
When you have enough technical breadth in a technical field , To what extent ? You can use all the techniques commonly used in this field , Any technology , You all know , Or even if you don't know , It's easy to see , Know what kind of technology this technology is in this field , At least some technology you know is similar to it
This is the time , You can go deep , Purposefully look for the core technologies in the field , To learn its implementation principle and underlying technology in depth . such as , You do Web Developed , You can learn something Web Implementation principle of framework , Study Web How the container works 、 Learn the storage structure of database and so on . When you study most of the technologies in this field deep enough , To be able to connect , Your personal technical system in this technical field will be established , Your first one “ Squid ” Formed .
It's hard to start everything , This step is actually the hardest , But as long as we get past this threshold , The later process is relatively simple . You little squid may be very small , There are not many whiskers , It's not deep enough , But it doesn't matter , As long as the knowledge system is established , These are not the key issues , We can grow up gradually through continuous learning .
After setting up the first squid , You can choose to continue to expand the breadth and depth of your knowledge system , Fatten up the squid . You can also change a new technology direction , Raise a new squid . As the breadth and depth of your technology increases , These isolated squid , It's always connected somewhere on the ground floor , Become a big squid . When your personal technical system is full enough , Most new technologies are just a squid for you . You know the technology panorama , Then build your personal technical system , Naturally, there is no more anxiety .
So-called ,“ The greatest truths are the simplest , Easier said than done ”. It always sounds simple , Really understand the truth , Fall into practice , It's still very difficult . In the process of practice , There may be a lot of fussy 、 Trivial problems need to be solved by you . I hope you are in the process of building your own knowledge system , Can settle down , Keep learning 、 Practice and trial and error . There is no other way of diligence , In Youheng , May you and I share .
Reference material
Geek time - Master class of message queuing : https://time.geekbang.org/column/article/152654
边栏推荐
- Blue Bridge Cup Eliminate last one (bit operation, code completion)
- 如何访问kubernetes API?
- APP页面分享口令Rails实现
- Blue Bridge Cup Winter vacation homework (DFS backtracking + pruning)
- 【C 题集】of Ⅴ
- The web version of xshell supports FTP connection and SFTP connection
- ~91 rotation
- kubernetes资源对象介绍及常用命令(四)
- pyqt图片解码 编码后加载图片
- How to center the positioned text horizontally and vertically
猜你喜欢
What is it that makes you tremble? Those without fans can learn
[CV] Wu Enda machine learning course notes | Chapter 12
*C语言期末课程设计*——通讯录管理系统(完整项目+源代码+详细注释)
Technical solution of vision and manipulator calibration system
"New programmer 003" was officially launched, and the cloud native and digital practical experience of 30+ companies such as Huawei and Alibaba
It is said that this year gold three silver four has become gold one silver two..
MySQL learning record (8)
腾讯三面:进程写文件过程中,进程崩溃了,文件数据会丢吗?
VictoriaMetrics 简介
[shutter] shutter layout component (wrap component | expanded component)
随机推荐
Oriental Aesthetics and software design
treevalue——Master Nested Data Like Tensor
"New programmer 003" was officially launched, and the cloud native and digital practical experience of 30+ companies such as Huawei and Alibaba
MySQL learning record (8)
kubernetes资源对象介绍及常用命令(四)
Basic IO interface technology - microcomputer Chapter 7 Notes
B.Odd Swap Sort(Codeforces Round #771 (Div. 2))
Official announcement! The golden decade of new programmers and developers was officially released
[shutter] shutter layout component (physicalmodel component)
Riding the wind of "cloud native" and stepping on the wave of "digitalization", new programmer 003 starts pre-sale
[shutter] shutter layout component (wrap component | expanded component)
[leetcode] sword finger offer 04 Search in two-dimensional array
MySQL inserts Chinese data and reports an error. Set the default collation
Research Report on market supply and demand and strategy of China's plastic trunking industry
[shutter] shutter page Jump (route | navigator | page close)
Servicemesh mainly solves three pain points
一周生活
Gbase8s database type
关于PHP-数据库的 数据读取,Trying to get property 'num_rows' of non-object?
How do I access the kubernetes API?