Giovanni's Diary > Subjects > Reading >

My Favourite Readings

In this note I will try to collect the most influential and edicational readings I have had. This is in continuous evolution as I discover (or remember) things.

Operating systems

  • Modern Operating Systems, Andrew Tanenbaum: This is a great general introduction to operating systems, highly recommanded. If you want the best experience, get an old version of the book as it includes many not-so-politically-correct jokes here and there that were redacted in later editions, it makes for a better read. Other introductionary books are all mostly equivalent in terms of knowledge so you can just pick the one that you fancy most honestly.
  • The Development of the C Language, Dennis M. Ritchie: this is not "The C programming language" book which you have already read (right?), but rather a focus on its history and design choices, narrated by the man itself.

Graphics

  • learnopengl.com: this is how I started with 3D graphics, which eventually became Brenta-Engine. It may not be the best guide out there, but I would totally recommend it to anybody that wants to start working with 3D graphics. The books covers the basics of OpenGL and graphics programming in straightforward, blog-length lessons that you can follow in a couple of hours. After getting throught the book (after one week or two) you will have a 3D scene with some lighting, a camera, movement, textures and models. It is a good base to continue on your own with more advanced tutorials or by yourself.
  • The Book of Shaders, Patricio Gonzalez Vivo, Jen Lowe: "This is a gentle step-by-step guide through the abstract and complex universe of Fragment Shaders".

General Culture

Misc

  • Intel® 64 and IA-32 Architectures Software Developer’s Manual: the reference for the Intel architecture. I have nothing else to say, this is such a monumental book that tells you how to use the CPU. Super important for writing an operating system on Intel.
  • stb: collection of header only libraries. This inspired me to write my own micro-headers and to enter this "sub-genre" of header only, easy to reuse libraries.
  • learncpp.com: the absolute best resource to learn about c++, other than the great cppreference. This made me appreciate the language greatly and motivated me to program more and more. C++ conferences on youtube are great too.
  • the linuxfromscratch book: compiling and maintaining my own Linux system from scratch has been one of the best educational projects I have ever done. I became much more competent and, I have to say, fearless when it comes to compiling programs / dependencies and customizing the Linux kernel.

Travel: Reading, Index