Roadmap: Summary

This page summarizes the roadmap of learning focuses within the next 8 to 12 months.

Contents

Rationale

Fields of Interest

The interest of studies generally lies in the following fields:

Motives and Actions

Linux Kernel

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

System administration and performance optimization are extremely relevant to my job.

I will read SPEC.

System Programming

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

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.

Python

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.

System Architecture

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.

Miscellanea

The x86 assembly language is essential for learning the Linux kernel, system programming, and security.

I will read x86 assembly and x86 disassembly.

Notes Methodology

  1. Systematic: on a regular basis, read the major chapters (possibly unordered) of the entire books.
  2. Ad hoc: read a specific chapter, section, or topic.
  3. Timer: set a timer when reading and note-taking to ensure efficiency.

Pros and Cons

Pros
  1. Perseverance: making notes guarantees long-term, persistent learning paths.
  2. Selective and readable: well-structured, focus-highlighted notes help memorization and internalization.
  3. Available for lookups: the notes are powerful resources for future reference.
Cons
  1. Time-consuming: formatting texts, adding images and sorting out information takes about 1/3 of the overall time spent on learning.
  2. Tedious: the notes can sometimes be lengthy and pointless.