Skip to main content
Background Image
  1. Posts/

Personal Technical Knowledge Management Solution

Cayden
Author
Cayden
Independent developer sharing daily experiences, challenges and growth in the journey of building products
Table of Contents

Life is finite, but knowledge is infinite. To pursue the infinite with the finite is dangerous. — Zhuangzi, “The Way of Life”

As a programmer, you need to recharge and learn every day to maintain continuous growth. However, blind learning is definitely a waste of time. You need to master certain methods and techniques to achieve twice the result with half the effort. In the era of information explosion, knowledge is endless.

As the saying goes, “Learning without thinking is labor lost; thinking without learning is perilous.” It is very important to efficiently and rationally identify the knowledge you need to learn and absorb it, then establish your own knowledge system. The purpose of learning is to see the world clearly and live better in this world, not to turn yourself into a mobile hard drive to store a large amount of garbage files.

Learning methods are very important. The following is my technical learning solution. I am not a top student, so it’s for reference only.

Personal Knowledge Management Solution

My knowledge learning process is divided into three stages: Collection, Organization, Absorption

Collection
#

As can be seen from the above figure, the collection process mainly has three aspects:

Content Aggregation
#

As the name suggests, content aggregation is a platform for gathering information and knowledge, reducing the difficulty of knowledge acquisition. The main content aggregation platforms I currently use are Deep Blue Reading (RSS), Weibo, Zhihu, and Github.

RSS is a very old technology but really very practical. Most websites and blogs support RSS subscription. There are many technical article aggregation platforms on the Internet, such as Juejin, Developer Headlines, etc. However, the technical articles on these platforms are published by others. What others publish or what’s most popular will appear on them. They cannot acquire technical articles according to your preferences, and there are many homogeneous articles. RSS can subscribe to the technical articles and news you want, making the aggregation scope more controllable. In fact, these two forms have no absolute good or bad, just like one is TV and the other is the Internet. TV content is what the TV station broadcasts, while Internet content requires you to search and subscribe yourself. But the latter is more suitable for people who know what they need.

Weibo is also an aggregation platform where you can subscribe to active developers in the community and other non-technical bloggers. Weibo is different from other news applications (actually not news applications). The biggest feature is that its information is real-time, which can monitor the latest trends in technology faster. So, I use this aggregation platform as my main source of technical news information. However, Weibo content is very brief, and more detailed information may be lacking. Fortunately, Zhihu makes up for this shortcoming.

Zhihu is also my main platform for acquiring technical information and knowledge. Not only can you learn a lot of technical knowledge and industry trends from many Q&As, but more importantly, because Zhihu is a discussion (debate) platform, things become clearer through debate. You can gain a lot of knowledge that you can’t learn from books from a large number of discussions, making you learn to view technology more objectively.

Github is also an aggregation platform and social platform. As the saying goes, “the world’s largest same-sex dating website,” you can follow some technical experts’ accounts and discover many great projects from their stars, forks, and comments, learning others’ project ideas and code, opening your eyes to the world.

Project Practice
#

Project practice is a very important way for programmers to acquire experience and skill learning. Armchair strategizing can never write good programs. Practice is the only way to test truth. So, whether it’s personal projects or company projects, they are the best methods for personal learning. You might not know anything at first, but in the development process, solving problems by consulting materials is much more efficient and effective than directly reading materials to learn.

Technical Books
#

The above knowledge acquisition processes are somewhat “superficial.” The knowledge obtained through aggregation platforms and project practice is only methods and experience for solving problems, and even much information is excerpted from books. So if you want to know why to solve problems this way, why this way of solving problems is better, you still need to read books. Reading books can make your knowledge more systematic and give you a deeper understanding of what you’re doing.

Through the above methods, I can acquire most technical knowledge, but there’s so much knowledge, how to organize this knowledge?

Organization
#

Bookmark Collection
#

The knowledge acquired daily through aggregation platforms is massive. Some are knowledge you need to understand, some are knowledge you’ll need to use in the future. So generally, I save knowledge (web pages) that I’ll use in the future to Chrome bookmarks. Chrome has a very good feature: when you search in the address bar, the search box’s alternative options will match the titles of bookmarks you’ve previously saved, so you don’t need to search through Google again. A small tip: when saving bookmarks, you can copy the web page’s main text as the title, so next time you search, as long as you match a word from this article, it will appear in the alternatives. If you like using Pocket, Evernote and other software for collection, you’ll find that in the end, you’ll pile up mountains of content without looking at them. For this, Evernote has a plugin called “Clip” that provides displaying matched notes in search results, but after experiencing it, I found that Chinese matching is too poor, and the displayed results are on the search results page, not in the search box’s alternative options.

Technical Notes
#

Knowledge is very fragmented. To organize all knowledge, some people suggest Evernote or WizNote, but after experiencing many note-taking software, I feel that organizing notes after each record is very annoying - whether to organize by notebook or by single note, or use tags. After finishing organizing, it’s hard to form a good structural system, so I later used Workflowy.

workflowy

It can more conveniently define your knowledge structure. The hierarchical structure can be adjusted at will with unlimited classification. In fact, much knowledge is like this, sometimes with very deep levels. If using ordinary notes, it’s hard to control and reflect this relationship. The disadvantage of this software is that it’s similar to Markdown but doesn’t support Markdown. It’s only suitable for recording pure text knowledge. Chrome has plugins that provide Markdown-related functionality, but after experiencing it, I feel it’s average. Another problem is that domestic access is relatively slow, but there’s also a similar domestic software called “Mubu” that I’m currently using. Its features are fast speed and support for previewing mind maps, allowing you to view your knowledge system in graphical form.

Blog Summary
#

Blogs can write about your project experience, knowledge summaries, some thoughts, etc. Writing blogs is a process of in-depth research on a certain topic. When in school, whenever explaining problems to others, you’ll find you have a deeper understanding of that problem. Writing blogs is the same - while writing blogs, you’ll have a deeper impression of what you’re writing. So sometimes, knowledge I can’t remember, I’ll make myself remember by writing articles and publishing blogs. Through writing blogs, you can summarize old knowledge and also derive your own views. More importantly, writing blogs is also a process of knowledge sharing.

Absorption
#

After structured notes and blog summaries, you’ll form your own knowledge system in this process and have a deeper understanding of knowledge. The purpose of our learning is to apply it in projects, so applying learned knowledge in projects will improve your project development capabilities. Then, your experience in projects will form part of your knowledge system through summary, thus forming a positive cycle of knowledge.

The above is my personal knowledge management solution and understanding of learning. Because everyone’s environment and learning methods are different, what I describe is not completely “correct” and is for reference only. If the above verbose description is helpful to you, I’m deeply honored. 🐶