How to delineate the most important 20% in an unfamiliar field or book? How to identify trivial details?
I hadn’t deeply contemplated these methodologies in my previous reading and studying, thinking they were merely empty talks. However, I now feel that mastering a suitable technique is like having a sharp blade in hand, allowing one to navigate obstacles with ease.
Without further ado, let’s directly describe the problem: It’s like I’m a complete beginner picking up a book on learning a programming language. I don’t know whether to start with basic syntax, conditional/loop control, functions, classes, etc. These form the main framework of a language, and mastering these can help understand most of the code logic, which provides a good cost-to-knowledge ratio for the same amount of time spent. However, since I don’t know these are important, I just keep reading sequentially, and coincidentally, the book also contains the entire language’s features, standard library usage, and implementation principles. This requires a lot of time but it’s impossible to utilize all parts, which isn’t a high cost-to-benefit ratio. Additionally, the chapter order in some books may not have a strong dependency requiring strict sequential reading. If I don’t have a god-like perspective on approaching something new, how can I judge which part is most important and which is less important? How to reasonably plan the pace of learning? One mustn’t blindly pursue rough, fast, and intense learning but should instead take a slow, precise, and thorough approach?
I think this is a very awkward and difficult question to answer. It’s impossible to realize which parts are key based on personal power before one has a comprehensive understanding of something. There will always be a need for seniors to share life experiences that can serve as guiding principles (though usually rare).
I believe knowledge can roughly be divided into two parts: distinguishing between theory and practice. It’s about recognizing whether the knowledge belongs to How (how to use it?) or Why (why to do it this way? (implementation)). The knowledge obtained from the How part typically has the highest cost-to-benefit ratio (and is usually the most broadly useful but consists of basic knowledge).
For example, basic syntax and standard library usage of a programming language belong to How, while the implementation of the standard library pertains to Why. Upon receiving a requirement (what I want to achieve), first ask How? Then, systematically delve into the details that can be broken down, prioritizing achieving the desired outcome. Once the foundational goals are completed, one can consider turning back to delve deeply into the Why part. When reading books, one should broadly understand the key parts they want to know through the table of contents.
For instance, when I read the TCP/IP protocol, I believe the most important chapters of the entire book are chapters 17 to 24, while the earlier chapters serve as groundwork. However, these foundational elements are too complex and aren’t what I want to focus on, yet they intersperse some concepts. If I skip them and directly read the important parts, I won’t understand when those concepts are mentioned. I think this belongs to Why. Because when involving theory, this book needs to be read thoroughly and an index should be maintained to locate knowledge points quickly.
On the other hand, when I read APUE, a significant portion discusses system interfaces, and the chapter order is not highly correlated, belonging to the How section. However, this is a troublesome aspect because it not only introduces the usage of interfaces but also comprehensively discusses many situations regarding how the system processes things (Why). It’s like an iceberg; simple on the surface but with hidden complexities below. If I read through the entire book, it would waste a lot of time (I think at least 1/3 of it is not currently useful), but skimming will lead to missing the bigger picture and can lead to confusion when problems arise. In such cases, should I first read through to get a general understanding and then read specific parts more thoroughly as needed? Previously, I would try to tackle the whole book at once. Alas, there are too few books like Effective C++ that grasp the essence and act as guiding principles.
Before learning a new knowledge or reading a book, it’s best to seek some lofty advice that can highlight key points and grasp the core.
I believe the correct approach is: 1. For theory-heavy books, read thoroughly. 2. For practice-heavy books, read broadly to gain a general understanding of the overall knowledge, then based on actual needs, read the necessary parts thoroughly. What’s important is to remember to establish an index while reading for quick location.
After carefully organizing my reading thoughts, such questions should be explored to find suitable methods for oneself. Previously, I might have been too eager to want to achieve too much at once, as if in a rush to learn everything at once, without formally considering how to learn more effectively. It affirms that saying, “One who studies alone and has no friends is likely to become ignorant.”
Articles and Advice on Guiding Principles
First look at the table of contents, radiating knowledge centered around work content; dig deeper into work and invest little energy in things outside of work. Don’t try to read everything; it’s impossible.