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
- Hackers: Heroes of the Computer Revolution: great historical book about hacker culture and the beginning of computing. A wonderful and informative read, it made me familiar with the legendary names that shaped the computer world.
- The Art of Computer Programming, Donald Knuth: this books needs absolutely no introduction, nor the author.
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.