
Ask HN: Whats the best book on your favorite programming language or topic? - techstrategist
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
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.

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

~~~
whytaka
I spent the summer reading this book cover to cover. (I am not a particularly
fast reader.) I absolutely adored it. Now I am eager to put what I've learned
into practice.

------
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.

------
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://doc.rust-
lang.org/stable/book/)

[https://www.amazon.com/Rust-Programming-Language-
Covers-2018...](https://www.amazon.com/Rust-Programming-Language-
Covers-2018/dp/1718500440/)

------
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...](https://www.amazon.com/Project-Oberon-Design-Operating-
Compiler/dp/0201544288) [1]
[https://inf.ethz.ch/personal/wirth/ProjectOberon/index.html](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...](https://www.amazon.com/Fluent-Python-Concise-Effective-
Programming/dp/1491946008)

[2] [https://www.amazon.co.uk/Certified-Programmer-Study-Guide-
CX...](https://www.amazon.co.uk/Certified-Programmer-Study-Guide-
CX-310-065/dp/0071591060/ref=sr_1_10?crid=2GCHKVVFHB7QH&keywords=kathy+sierra&qid=1573592180&s=books&sprefix=kathy+si%2Cstripbooks%2C152&sr=1-10)

~~~
techstrategist
Yes that’s the book, although I got it very cheap through the Humble Python
bundle which I think recurs periodically.

------
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/](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.

~~~
hderms
Second this. Don't be dissuaded if it seems a bit esoteric. It's really
fascinating and has an eye towards pragmatism.

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

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

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.

