如何构建自己的知识体系?

Learning is like rowing upstream; not to advance is to drop back. This is especially true in the field of CS, where new technologies and frameworks are developing rapidly, and the technical iteration on the business level is very fast. You may become familiar with a technology only to see it quickly become obsolete. Therefore, only by continuously engaging with, understanding, and learning new knowledge and skills can one continually expand their programming career.
This article is a reflection on the technical accumulation I’ve made over the past few years while blogging. Originally intended as a record of the notes revision, I now feel it’s appropriate to separate it into a standalone article. I rarely write reflective pieces, thinking that methodologies are too abstract, but if one has the self-discipline to turn theoretical guidance into action, methodologies are indeed necessary. I hope I can accomplish this as well.

From the perspective of personal technical advancement, one should not confine themselves to only technology related to the business. It’s better to delve deeper into research, as changes in business technology are not a bottom-up disruption, but rather changes in high-level abstraction. Therefore, if one can gain an in-depth understanding of the underlying principles of technology, they can adapt to changes without losing themselves in the pursuit of new technologies.

I divide the learning process into the following five stages:

  1. Discovering requirements
  2. Collecting information
  3. Hands-on experimentation
  4. Summarizing findings
  5. Expanding and innovating

These stages are often not strictly linear; one might find other points of contemplation extending from a particular stage. The discontinuity of knowledge over time and space often leads to forgetting newly learned information after a period without use. The key issue is how to maintain the continuity of knowledge.

I believe the most important aspect is recording. Documenting the thought processes and implementation methods, summarizing the patterns within the knowledge system, and connecting current knowledge points with others. During the learning process, one often has this feeling: sometimes you look at something and don’t really understand it, but after a period, you suddenly realize that these knowledge points are interconnected. Understanding the relationships between them can greatly deepen impressions and lead to a more profound understanding of specific knowledge points.

The learning process is similar to learning a natural language. The key is to have a substantial amount of input and output. Reading, viewing articles, and hands-on practice are all input processes. How to accumulate what you’ve learned is the reason to consistently write notes. The recording process is actually a means of processing, rethinking, and recreating knowledge, which reinforces deep memory while uncovering points that may have previously gone unnoticed.

I assess whether I truly understand a piece of knowledge by asking: can I record it in a simple and straightforward manner, and can I answer questions posed by individuals who don’t understand it? Viewing knowledge through the lens of those who do not understand it is actually the best approach. They tend to pose surprisingly unusual questions, and the ability to answer those questions clearly tests one’s true understanding of the knowledge. Furthermore, explanations for non-experts should not involve highfalutin terms. I strongly disdain articles that are filled with fancy technical jargon yet fail to convey the content clearly. Thus, explaining technical issues in the simplest language is a test of both technical and linguistic ability.

The learning process is also about transitioning from how to do something to why we do it. Initially, one might only want to know how to quickly fulfill their needs, while in-depth study requires exploring why things are done this way. I enjoy looking at the historical evolution of technology. For instance, with the C++ standard, new standards always include content that is deprecated and newly added. Understanding why the old was deprecated and what needs the new features are addressing is, essentially, a quest for the why. This allows one to grasp the pulse of technology and understand its evolution, leading to a more profound comprehension of the technology.

The purpose of writing a blog is to document the thoughts and materials collected during the learning process. On one hand, it can help others with similar needs, and on the other hand, it aids in organizing and accumulating one’s own knowledge system, thus facilitating an output process in learning. Most importantly, one should cultivate the habit of recording, summarizing promptly. Often, I list a bunch of FLAGs but fail to implement them for a long time, and I should plan my time better to avoid this.

Having said all this, it’s mostly about methodology. In fact, methodology alone is useless; only when it can be put into practice does it have value. Because if one merely discusses methodologies while neglecting the implementation process, it is impractical. The implementation process requires habitual perseverance. If one is inconsistent, like catching fish for three days and sunbathing for two, they will not accomplish their tasks. It’s crucial to cultivate a persistent habit. I need to reflect on myself as well; I haven’t done well enough during this time, and I should appropriately adjust my work and study rhythm to avoid tipping the balance too far in one direction.

In a nutshell: I believe the accumulation of learning lies in the combination of theory and practice, with input and output complementing each other. The summarization of knowledge is not merely recording but a process of recreation.

Recently, I made some changes to my blog’s organizational structure. Previously, my blog’s organization involved placing all my notes in notes, and every so often, I would extract content that could be expanded into standalone blog posts. However, this led to an overwhelming accumulation of notes across various fields, making retrieval cumbersome. Additionally, loading a large number of graphic and text notes on a single page was very slow. Therefore, I organized the blog’s notes according to knowledge categories for easier management, allowing access to specific modules from the top navigation bar. I also created a module for non-technical notes, essay, to document some of my thoughts from daily work life, as well as book notes and reflections.

The article is finished. If you have any questions, please comment and communicate.

Scan the QR code on WeChat and follow me.

Title:如何构建自己的知识体系?
Author:LIPENGZHA
Publish Date:2020/10/10 10:08
World Count:5.5k Words
Link:https://en.imzlp.com/posts/29551/
License: CC BY-NC-SA 4.0
Reprinting of the full article is prohibited.
Your donation will encourage me to keep creating!