What are your favorite books on programming?

I haven’t seen any mention to " Metaprogramming Ruby 2: Program Like the Ruby Pros (Facets of Ruby)" from Paolo Perrota. I found it very instructive showing minutiae of OOP, and even some functional programming in Ruby.

By the way, does anyone remembers “Advanced Turbo Pascal” ? It was an algorithms book and I’ve lost it after some years… by that time I’ve read it, those basic algorithms were fascinating to me.

1 Like

The book has two parts. The first is written in Java, the second is in C. But I transposed the first part to Ruby as I wrote it and have subsequently done the same transposing to JavaScript and @ErikSchierboom has done the same for TypeSsript, so you can really do the first half of the book in whatever your normal day-to-day go to language is :slight_smile:


To the Eric Raymond recommendation I would add The Art of UNIX Programming (in my view, it’s much more than the title implies).

And I cannot praise The Elements of Computing Systems enough. Available as a MOOC, too.

For me, both were world view-changing books.


@aborla Agree on both, they are incredibly valuable books (in addition to being favorites)

1 Like

Thanks, @iHiD. I’ll take a look at it when I have some time :)


Working Effectively with Legacy Code by Michael Feathers


Programming Language Foundations in Agda is a good read for those interested in type theory and programming language theory


3 posts were split to a new topic: Clean Code - Deeper Dive into it as a resource

Nice find. I’ve recently started learning Clojure. So, I was curious what Rich Hickey had to say about SICP.

I didn’t get the impression he doesn’t like the book. He’s saying this book won’t help much with learning Clojure (or any Lisp), because its focus is on teaching programming concepts.

Could you link to the MOOC you mentioned?

Sure, here it is: Coursera MOOC - Nand2Tetris

I completed it in 2015 when MOOC’s were still experimental (and free !).

All the best.


Yes, in the Crafting Interpreters book, the second interpreter is written in c. However, I’m currently following the book but writing the second interpreter in zig. As long as you can translate it from c to your desired language, you can do it in whatever language you want.
There’s a list on github here that shows lox being written in a number of different languages.


I am yet to find a favorite programming book. I have tried to go through books to learn programming but programming really took off for me when I found interactive sites like these! I do enjoy learning about computing theory, history and software engineering in general so hope I come across a good recommendation here.

1 Like

I usually don’t read a programming book from cover to cover, but I did just read all of Beginning Rust 2021. Not much new about the 2021 edition in it, except for some stuff on iterators. Anyway, I used it to refresh my memory, and it held my interest. Now on to Rust for Rustaceans

1 Like

12 posts were split to a new topic: Squares and Rectangles

My best book as I was getting brought up in Java and Python were:
Effective Java by Joshua bloch

Effective python by Brett slatkin

Wonderful points to hone your skills and keep you engaged :blush:

1 Like
  1. +1 for The Pragmatic Programmer(A Hunt and D Thomas) , This is not a book about a language, nor is is a book about ‘correctness’ or ‘efficiency’. It is about doing things a certain way now, to help yourself (and others) later, and positioned my thinking ‘pragmatically’ but also ‘professionally’.

  2. +1 for William Shotts 'The Linux Command Line. After dying again and again at the command line, and with considerable dejection, just flat out reinstalling when faced with small problems (just as I would have when I was a Win user), This book gave me a series of manageable little exercises that really helped me learn the tools of basic sysadmin. Not a programming book? No it is, really! I learn bash. Sort of is a language… …anyway strong recommend.

  3. No mention yet: Jumping into C++ by Alex Allain. This was really good for new programmers who wanted to learn C++. It really did teach programming paradigms, complex C++ topics like pointers, it was a full intro. The exercises were well placed, but not shirking the heavy things. It got me to use pointers to write and traverse a binary tree and learn about scopes, and the stack. Learning other languages has become much easier because I did this first. Strong recommend.

Thanks to everyone for posting, plenty to be working through!!

Early edition with 14 (supplemental) chapters for the book available for free from William E. Shotts, Jr. at The Linux Command Line

I haven’t ready (m)any of these, but someone else has already reviewed them for you:

Programming book recommendations and anti-recommendations

Philip Wadler says SICP is a dishonest book…