This page summarizes the roadmap of learning focuses within the next 8 to 12 months.
Fields of Interest¶
The interest of studies generally lies in the following fields:
- Operating Systems
- System Programming
Motives and Actions¶
I'm interested in Linux and it's useful to learn the internals of the Linux kernel.
I have read the majority of LKD; I need to read the rest of the chapters, along with UTLK as a supplement and reference.
System administration and performance optimization are extremely relevant to my job.
I will read SPEC.
I'm highly interested in UNIX system programming, and have read most chapters of APUE and a few chapters of UNP, but lack hands-on experience in implementing low-level programs.
I will keep reading the remaining major chapters of APUE and UNP, and start reading LSP and TLPI, which provide more extensive and in-depth knowledge.
Go and Ruby¶
I believe that Go is a well-designed, modern language for system programming, and that Ruby is handy and commonly-used in DevOps.
I will read GOPL and TWGR as the stepping stones to these languages.
C is the foundation language of the UNIX systems and is essential for kernel development and system programming. I'm weak in C and lack programming experience.
I will read CSN to brush up the concepts and learn PIC for some basic development techniques.
I have some experience with Python, but still need to learn in-depth knowledge and advanced usage.
I will read PER for extensive coverage.
Networks and Security¶
I'm fairly interested in computer networks and security, but lack a lot of knowledge in the related fields, such as TCP/IP and cryptography.
For networks, I have read some chapters of TCPv1, so I need to continue reading it, along with TCPIP as a supplement and reference. To learn cryptography, I will read CNSPP. To learn security techniques, I will read HTAE.
Large-scale distributed systems are highly relevant to my job.
I have read the most part of DevOps. In addition to finishing with DevOps, I will read BD.
The x86 assembly language is essential for learning the Linux kernel, system programming, and security.
I will read x86 assembly and x86 disassembly.
- Systematic: on a regular basis, read the major chapters (possibly unordered) of the entire books.
- Ad hoc: read a specific chapter, section, or topic.
- Timer: set a timer when reading and note-taking to ensure efficiency.
Pros and Cons¶
- Perseverance: making notes guarantees long-term, persistent learning paths.
- Selective and readable: well-structured, focus-highlighted notes help memorization and internalization.
- Available for lookups: the notes are powerful resources for future reference.
- Time-consuming: formatting texts, adding images and sorting out information takes about 1/3 of the overall time spent on learning.
- Tedious: the notes can sometimes be lengthy and pointless.