Resources

Published on 2021-12-31. Modified on 2023-11-08.

Some resources I find valuable or useful for one reason or another (in no particular order). I am not affiliated.

Books

Coders at Work: Reflections on the Craft of Programming

Based on nearly eighty hours of conversations with fifteen all-time great programmers and computer scientists, the Q&A interviews in Coders at Work provide a multifaceted view into how great programmers learn to program, how they practice their craft, and what they think about the future of programming.

Peter Seibel interviews Jamie Zawinski, Brad Fitzpatrick, Douglas Crockford, Brendan Eich, Joshua Bloch, Joe Armstrong, Simon Peyton Jones, Peter Norvig, Guy Steele, Dan Ingalls, L Peter Deutsch, Ken Thompson, Fran Allen, Bernie Cosell and Donald Knuth.

The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

— Joe Armstrong (creator of the programming language Erlang)

Modern programming scares me in many respects, where they will just build layer after layer after layer that does nothing except translate.

― Ken Thompson (designed and implemented the original Unix operating system)

Understanding the Digital World

In Understanding the Digital World Brian Kernighan explains how computer hardware, software, and networks work. Topics include how computers are built and how they compute; what programming is; how the Internet and web operate; and how all of these affect security, privacy, property, and other important social, political, and economic issues. Kernighan touches on fundamental ideas from computer science and some of the inherent limitations of computers, and new sections in the book explore Python programming, big data, machine learning, and much more. Numerous color illustrations, notes on sources for further exploration, and a glossary explaining technical terms and buzzwords are included.

The Art of Unix Programming

The Art of Unix Programming attempts to capture the engineering wisdom and philosophy of the Unix community as it's applied today — not merely as it has been written down in the past, but as a living "special transmission, outside the scriptures" passed from guru to guru. Accordingly, the book doesn't focus so much on "what" as on "why", showing the connection between Unix philosophy and practice through case studies in widely available open-source software.

This book is a MUST read!

Online versions: HTML, PDF

The Pragmatic Programmer

The Pragmatic Programmer: From Journeyman to Master is a book about computer programming and software engineering, written by Andrew Hunt and David Thomas and first published in October 1999. It is used as a textbook in related university courses. For the book's 20th anniversary a 2019 release was made with major revisions and new material reflecting changes in the industry over the last twenty years.

The book does not present a systematic theory, but rather a collection of tips to improve the development process in a pragmatic way. The main qualities of what the authors refer to as a pragmatic programmer are being an early adopter, to have fast adaptation, inquisitiveness and critical thinking, realism, and being a jack-of-all-trades.

While I do recommend this book, I also recommend that you use your common sense and don't follow this book religiously! Some of the advice, especially in the 2019 edition, has unfortunately been affected by the so-called "modern industry standard" which is mainly hyperbole.

Michael W. Lucas books

Michael W. Lucas has written a lot of great IT related books and I can highly recommend all of them.

Operating systems and related

Miscellaneous