Fabien Sanglard

Fabien Sanglard deverves his own section here. He published 3 amazing, beautiful books: Game Engine Black Book: Wolfenstein 3D, Game Engine Black Book: DOOM and The Book of CP-System.

I didn't read these books — I devoured them.

The first two cover the history of idSoftware, including some fun facts about John Carmack, John Romero and other members of the company; and then dig deep into the software of Wolfestein 3D and DOOM, the two games that completely revolutionized 3D graphics in PCs and the First Person Shooter genre.

Book of CP-System covers the history, software and hardware of Capcom's famous arcade machines and their games.

You can download them for free as PDFs or buy them from Amazon, TheBookPatch and PlayStore.

He also accepts donations.

If you like these, there's a book that is, in a way, closely related: Michael Abrash' Graphics Programming Black Book — for free at GitHub.

Verbatim from Sanglard's Wolfestein 3D book:

In the early 90s, Michael Abrash’s writings were one of the rare sources of high quality information when it came to computer graphics and assembly programming.

He published two highly regarded books ("Zen of Assembly Language" in 1990 and "Zen of Code Optimization" in 1994) but it is through his column "Ramblings in Realtime" published monthly in Dr. Dobb’s Journal that he achieved notoriety.

In 1997 most of Michael Abrash’s work plus new articles about the Quake engine were compiled into the Graphics Programming Black Book. The title and dimension of this book are an homage to Mr Abrash’s masterpiece.

Many game programmers of that era, including John Carmack, learned a few techniques from Michael Abrash.

Most of these tricks have little to no value in a world of vertex and fragment shaders, but their historical significance cannot be overstated.

Linux, Unix and GNU

Love it or hate it (but honestly, who could not love it!), Linux and GNU came to completely change the world.

Rebel Code — The Inside Story of Linux and the Open Source Revolution

This book is amazing. It's purely prose. Nothing technical here. No code. Just history.

It goes over the entire history of Linux, Free Software, Open Source, from nothing to being the most used OS, running on almost every device on earth, and exploding into a billion-dollar industry.

It's available at Amazon.

A Quarter Century of Unix

Another history book, this time focused on Unix exclusively. 100% recommend it.

It's available for free on Unix Heritage Wiki.

The Linux Bible by Christopher Negus

Chris Negus is a principal technical writer for Red Hat, Inc. In more than a decade with Red Hat, Chris has taught hundreds of IT professionals to become Red Hat Certified Engineers (RHCEs), and he has written scores of documents on everything from Linux to virtualization to cloud computing and containerization.

This book starts by introducing Linux basics to newcomers, moves onto becoming a Linux power user and then a sys admin, and finally digs into cloud development (such a AWS and OpenStack), virtual machines, containers, Ansible and Kubernetes.

The Linux Programming Interface by Michael Kerrisk

This book is widely regarded as one of the best in the Linux ecosystem, and it was recommended, among others, by the famous Lennart Poettering in a FOSDEM interview in 2011, for his then-upcoming talk, systemd, beyond init.

So, get yourself a copy of The Linux Programming Interface, ignore everything it says about POSIX compatibility and hack away your amazing Linux software.

Poettering is the author of Avahi, PulseAudio and systemd.

Although this book is a bit old, having been published in 2010, back when the most recent version of the Linux kernel was 2.6, it still stands relevant.

Because the developers of both the Linux kernel and glibc are committed to maintaining ABI compatibility, virtually all of the details provided in TLPI should remain accurate in the future.

The author maintains a list of changes introduced to the kernel and glibc since the book was published at Linux and glibc API changes.

Linux Device Drivers

The 3rd edition of this book is the de-facto standard reference book for building kernel modules. It's available under the terms of the Creative Commons Attribution-ShareAlike 2.0 license.

You can download it for free from LWN.net.

LDD3 is current as of the 2.6.10 kernel, which is definitely dated.

The Linux Kernel Module Programming Guide

Another freely available book on kernel development. This one is modern, and might make a good replacement for LDD3.

Home Page | GitHub | PDF

Cryptography

Applied Cryptography by Bruce Schneier and Cryptography Engineering by Niels Ferguson, Bruce Schneier and Tadayoshi Kohno are definitely a bit old (published in 1993 and 2010!), but great resources nonetheless.

The Joy of Cryptography by Mike Rosulek, available for free, and David Wong's Real-World Cryptography, are two modern and friendly books. Both published in 2021.

Architecture

You can't go wrong with Clean Code by Robert C. Martin.

Blockchains / Cryptocurrencies

The "Mastering" series by Andreas M. Antonopoulos is probably the best resource in this field.

You can get the these for free at GitHub:

Mastering Bitcoin is pretty technical, focusing on low-level aspects. If you'd only read one of these three, go for this one.

Mastering Ethereum focuses more on developing smart contracts and the Solidity programming language rather than the low level details.

Mastering Lightning seems to be somewhere in the middle in complexity.

A newsletter for programmers

Yo! This is Taro. I've been doing JavaScript for years and TypeScript for years. I have experience with many programming languages, libraries, frameworks; both backend and frontend, and in a few company roles/positions.

I learned a few things over the years. Some took more effort than I wish they had. My goal with this blog and newsletter is to help frontend and backend developers by sharing what I learned in a friendlier, more accessible and thorough manner.

I write about cool and new JavaScript, TypeScript and CSS features, architecture, the human side of working in IT, my experience and software-related things I enjoy in general.

Subscribe to my newsletter to receive notifications when I publish new articles, as well as some newsletter-exclusive content.

No spam. Unsubscribe at any time. I'll never share your details with anyone. 1 email a week at most.

Success!
You have subscribed to Taro's newsletter
Shoot!
The server blew up. I'll go get my fire extinguisher — please check back in 5.