2020 Reading List2020 读书清单
Published at发布于:: | PV/UV: / | Reading阅读:: 4 min
It’s the end of the year again — time to compile this year’s reading list. 2020 was a truly extraordinary year, and I didn’t read all that many books. Most were related to my field, and several were rereads from undergrad. Those classics always yield something new on each reading.
Humanities
This year’s humanities reading centered on understanding the history of computing in the last century — software history covering UNIX, Linux, and the free software movement, and hardware history covering the rise and fall of microcomputers. I spent some time on these books, ordered from most to least recommended:
- The Art of UNIX Programming
- The Design and Evolution of C++
- UNIX: A History and a Memoir
- The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary
- Free as in Freedom: Richard Stallman’s Crusade for Free Software
- Fire in the Valley: The Birth and Death of the Personal Computer
The best way to understand this history is to hear it from the people who lived it. I’ve gradually assembled a YouTube playlist — probably incomplete, but I’ll keep adding to it.
Engineering
I read very few engineering books this year. Specific engineering practice is not a major part of my day-to-day life — I’m not spending time solving engineering problems per se; instead I spend much of my time reading research papers. The one engineering book I did read:
The reason this caught my attention: one of the chapters was contributed by Russ Cox. Guess which one? Dependency management, of course.
Technical
This year, because of teaching responsibilities, I took on two foundational courses: Computer Graphics and Geometry Processing.
For the first course I reread several graphics books from undergrad:
And also read these rendering books on ray tracing and physically-based rendering for the first time, getting a more systematic grounding in physical rendering, materials theory, and color science:
- Physically Based Rendering: From Theory to Implementation
- Ray Tracing Gems: High-Quality and Real-Time Rendering with DXR and Other APIs
- Color Imaging: Fundamentals and Applications
For the Geometry Processing course, closely aligned with my research, I read these systematically to prepare course materials:
The mathematics used in geometry processing research looks formidable, so I filled in gaps from undergrad in differential geometry and PDEs:
Finally, early in the year, while writing Go Under the Hood, I speed-read these two:
Review and Further Reading
Overall, I didn’t read many books this year, and most were technical. The reason is that most of my reading time went to research papers — I checked just now, and since starting my PhD the papers on my hard drive already exceed 1,000. But they’re too specialized to list here; perhaps someday I’ll start a paper reading series.
Beyond books, I also came across many high-quality open courses from North American universities:
I’m always struck by the quality of education resources available to students today. When I was an undergraduate, so much was hidden away — the most accessible things were MIT OCW and a handful of Yale open courses, and the truly high-quality material was only available once you were inside those institutions. That was a big part of why I chose to study abroad. It’s different now.
Though I imagine every generation has its own struggles: in this age of information overload, discerning and filtering high-quality content is its own challenge. But that’s a topic for another day.
If you’re interested in previous years' reading lists: Reading List Archive.


























