HACKER Q&A
📣 techstrategist

Whats the best book on your favorite programming language or topic?


I’ve been enjoying Fluent Python and started looking for a nice book on SQLite, which made me wonder what great books there are in other areas that could help me be a more well-rounded developer.


  👤 throwaway124567 Accepted Answer ✓
The Little Schemer is a mind bender and short read. I would highly recommend it to any programer as something you should read ASAP. You’ll regret not reading it sooner if your unfamiliar with the concepts.

Structure and Interpretations of Computer Programs is very good. It was MITs old CS textbook, it’s still highly relevant. It takes a while to get through and you probably would get the most value out of it if you already have a lot of programming experience.

I also recommend Programming in Haskell by Graham Hutton 2nd Edition (Don’t get the 1st edition). It will warp you mind to think in a functional way. I would put it up there with K&R in terms of how well written it is.

I’m a student at a “Java school,” reading these has made me far better than my peers at programming.

Paul Graham has a lot of good essays on programming too, as well as life stuff.


👤 HeckFeck
The C Programming Language by Kerningham and Ritchie.

If you're interested in something closer to the hardware than Python, why not read about the language that implements Python?

It's a programming classic, very concise, easy to read and informative. It'll take you from basic control statements to eventually writing a memory allocator.


👤 pepper_sauce
Designing Data-Intensive Applications by Martin Kleppman. It's the other half of software engineering as far as I'm concerned.

👤 Dowwie
For learning Rust: "The Rust Programming Language".

Available for free online [1] and hard copy [2]

https://doc.rust-lang.org/stable/book/

https://www.amazon.com/Rust-Programming-Language-Covers-2018...


👤 devinmcafee
I actually think that books which cover software engineering practices, rather than language specific books, have helped me the most. This is due to the fact that the concepts and principles you learn can be applied to many languages.

Two I've enjoyed are: "The Pragmatic Programmer" by Andy Hunt and Dave Thomas "Clean Architecture" by Robert C Martin

That being said, no harm in deep diving individual languages. Secrets of a JavaScript Ninja by John Resig was an excellent introduction to JavaScript!


👤 davidgould
"Project Oberon: The Design of an Operating System, a Compiler, and a Computer" by Niklaus Wirth and Jürg Gutknecht

I have the orginal hardbound 1992 edition [0], but it looks like there is a 2013 revision available as a collection of pdfs [1]

[0] https://www.amazon.com/Project-Oberon-Design-Operating-Compi... [1] https://inf.ethz.ch/personal/wirth/ProjectOberon/index.html

You are unlikely to encounter Oberon in the wild, but this book is the clearest and most elegant exposition of a systems design I have seen. They walk through the code for a complete operating system from hardware drivers to file system, compiler, graphic user interface and everything else in less than 10,000 lines of code. The focus on modularity and minimalism is very refreshing.


👤 hrgiger
Thanks for Fluent Python, is this one [1]?

Java: Even for an early version I still revisit [2] Kathy Sierra SCJP 6 book beside of new ones, a great reminder for core concepts and basics, also 'effective java' by Joshua Bloch

C: As HeckFeck mentioned it was fun to follow C Programming Language by Brian W. Kernighan, Dennis Ritchie

[1] https://www.amazon.com/Fluent-Python-Concise-Effective-Progr...

[2] https://www.amazon.co.uk/Certified-Programmer-Study-Guide-CX...


👤 thekdude
I've really enjoyed Programming Rust by Jason Orendorff and Jim Blandy as a good overview of Rust for an intermediate level programmer with experience in other languages.

Herlihy and Shavit's The Art of Multiprocessor Programming was fantastic for learning about parallel/concurrent algorithm and data structure design


👤 jyu
When I'm stuck on a problem at work or when there's down time, I find myself reaching for The Algorithm Design Manual.

👤 potta_coffee
I've been enjoying Practical Common Lisp. I don't think I'll ship any Lisp code for business purposes but it's been a lot of fun to tinker with and it's conceptually interesting. I think my Python programming ability has grown somewhat indirectly through learning more about Lisp programming.

👤 _peeley
Learn You a Haskell For Great Good (http://learnyouahaskell.com/). Despite Haskell's reputation for its difficultly due to its strictness and fundamental differences with mainstream imperative languages, the book manages to smoothly introduce the purely functional paradigm with tons of effective and concise examples. The book ends just where the infamous Monad is introduced and doesn't touch any of deeper capabilities of Haskell's type system, but still serves as a wonderful introduction to the language and pure functional programming. A lot of people mention SICP as the book that made them rethink/rediscover computer science, for me this book had the same effect.

👤 74ls00
Type-Driven Development with Idris. It’s a great introduction to dependently typed programming languages and type-driven development. Some knowledge of Haskell may be beneficial but isn’t required.

👤 diehunde
If you are learning Scala, then the red book.

👤 Gnarl
"Coding" by Jonathan Locke, on software development in general. Short and surprizing. https://www.goodreads.com/book/show/12625166-coding---on-sof...

👤 noso
The Java Black Book was my favorite a long time ago - https://www.amazon.co.uk/Java-Black-Book-Steven-Holzner/dp/1...

I learned React using Stephen Grider online courses.


👤 raztogt21
Secrets of the JavaScript Ninja by Resig. My favorite to learn the intermediate level for JS.

👤 amirathi
"The well grounded Rubyist" is a fantastic book to learn Ruby. Right balance of theory and practice. Easy to read and still offers a lot of depth about the internals of Ruby.

👤 george_ciobanu
Check out Programming pearls by Jon Bentley. Reads like a novel, teaches phenomenal foundations.