Hacker News new | ask | show | jobs
by notsosmart 5495 days ago
So aside from K&R, what are some of the best small books?
18 comments

Roberto Ierusalimschy's Programming in Lua[1] comes to mind. (The link is to the freely available first edition. There's a second edition available that covers more recent versions of Lua.) (Whoops - apologies to brianm - he beat me to this, but I didn't notice.)

Maybe also Graham Hutton's Programming in Haskell[2]. It's certainly wonderfully concise and dense (you meet a simple Haskell quicksort in the second chapter, as I recall), but I have to admit that I haven't had a chance to finish it.

One more: The AWK Programming Language[3] by Alfred V. Aho, Brian W. Kernighan, and Peter J. Weinberger, but that's almost cheating since one of the authors is K from K&R.

[1] http://www.lua.org/pil/

[2] http://www.cs.nott.ac.uk/~gmh/book.html

[3] http://cm.bell-labs.com/cm/cs/awkbook/

Expert C Programming, Deep C Secrets by van der Linden (everybody just has to buy this book, even if you're not doing any programming. The jokes and the anecdotes are alone worth it.

I liked most books from Addison Wesley's C++ In Depth Series edited by Stroustrup, they are all thin (around ~300 pages), esp. Exceptional C++.

Just Java by the same Peter van der Linden was also quite good humor-wise, although I haven't read it in years (it was released around the same time as the first JDK). It's significantly thicker, though, since it covers a broader range of topics like networking and GUIs.

The best of the humor is contained in sidebars dubbed "light relief"; I seem to remember a passage indicating the author was not invited to write a specification because the other authors "didn't want any light relief in it" or something to that effect.

Two of my favorites in the "best small books" area are from Niklaus Wirth:

- NW: Algorithms and Datastructures. 179 pages. PDF: http://www-old.oberon.ethz.ch/WirthPubl/AD.pdf

- NW: Compiler Construction. 131 pages. PDF: http://www-old.oberon.ethz.ch/WirthPubl/CBEAll.pdf

Both books are really brilliant and it always fascinates me how much content he packs into the books. Highly recommended. (I like "Project Oberon" too, but it has probably too many pages for this category [>400].)

I really enjoyed O'Reilly's compact "Up and Running with Rails," which I bought because I could never remember the basics after two reads through the default (monster) rails book, "Agile Web Development with Rails."

Sadly, O'Reilly appears to have lost interest in this series; the Rails book dates to 2006 and is too far behind now to recommend. Look no farther than the #2 rated Amazon review ("28 of 29 people found the following review helpful") to find out why: "Given that this book is only 127 pages long without the Appendix, it's a pretty pricey little item.... a $29.99 retail price seems exorbitant... this little book would make a great introduction to a more comprehensive book on Rails. Stand-alone, it feels like a rip-off."

I was also going to recommend "Effective Perl Programming" -- but now I see that the second edition has been bulked up to 500 pages from the original ~200. Ugh.

"Modern Perl".

Well written, covers pretty much everything you should use, good, clear examples.

Available free online: http://onyxneon.com/books/modern_perl/

Yes, that attitude seems fairly prevalent. I read a lot of Amazon reviews suggesting the same idea, that you should basically be paying by the number of pages. What that fails to acknowledge is that distilling ideas down to just the important parts is hard work. It's possible that a short book doesn't cover the topic very well, but I think it's more likely that the author has worked really hard to express their ideas in the fewest number of pages possible.

Lately I have decided that I won't even buy computer books that are more than ~300 pages, and I would prefer if they were more in the 100 to 200 page range. I'll take a short, concise, highly target book over a thousand page monster any day. And I'm more than willing to pay "full price" for the short book.

"Introduction to the Theory of Computation" by Michael Sipser. Was the only computing text I enjoyed reading at university. Sipser explains difficult concepts in a concise and easy to understand way.
Effective Java is the best book for general Java that I know - http://www.amazon.com/Effective-Java-Programming-Language-Gu... It's not a tutorial, but a collection of recommendations that could take you from just-learnt to competent.

Very slim, and very good - Javascript: The Good Parts http://www.amazon.com/JavaScript-Good-Parts-Douglas-Crockfor...

For a C reference, Harbison & Steele is excellent - http://www.amazon.com/Reference-Manual-Samuel-P-Harbison/dp/...

I don't know Harbison & Steele, but both Effective Java and Javascript: The Good Parts are really excellent. Worth noting that they're both really only about the language, not the accompanying libraries/environments.
H&S is what I thought K&R would be, but wasn't. It's an obsessively detailed description of the C language and standard libraries, in readable english, that describes everything from "traditional C" through ISO, to C++ compatible. When I'm working in C I use it as much as I use man pages, to help me keep the code as standard and cross-platform as possible.

"Steele" is Guy Steele, btw - http://en.wikipedia.org/wiki/Guy_L._Steele,_Jr. (author of "Common Lisp, The Language", developer of Fortress, etc etc).

"Programming in Lua" by Roberto Ierusalimschy ( http://www.inf.puc-rio.br/~roberto/pil2/ ) is an absolute gem, in my opinion.
The Little Schemer (196 pages) Programming in Haskell (171 pages) are two that spring to mind.
I thought that Armstrong's _Programming Erlang_ was the best intro-to-a-language book I'd read since K-and-R.
pg's "On Lisp" is probably the book that has expanded my mind the most, and it's pretty short: http://lib.store.yahoo.net/lib/paulgraham/onlisp.pdf
Although probably outdated by now, I learnt Java from a book called "Java a Practical Guide for Programmers" by Sikora. When most Java books weighed in at a 1000 pages it was incredibly refreshing to find one that was 170 pages and assumed you already knew how to program.
After K&R, it was 'Using C on the Unix System' by Dave Curry (~200+ pages).

I also enjoyed the first edition of Learning Perl by Randall Schwartz (~200+ pages). This book introduced me to regular expressions.

Accelerated C++ by Koenig and Moo
I always loved The Perl Cookbook. It's got some in-depth discussion in there about language features, but most of the time what I want from a language book is a bunch of (complete) examples to help me learn the syntax, and probably to show me what the language's benefit is.
Thanks!
"Smalltalk Best Practice Patterns" by Kent Beck (240 pages). K&R weighs in at 274 pages.
I'm working through Erlang and OTP in Action (Manning) and while it's not as concise as K&R it's doesn't strike me as having been gratuitously bulked up at all.
O'Reilly Pocket References. They're not tutorials, but they sure are handy (and cheap).
Manning's books are all quite concise.