
Ask HN: What Programming Book would you buy right now (if it existed) - plinkplonk
Whacked from reddit (http://www.reddit.com/r/programming/comments/8aixn/programming_books_that_you_would_buy_right_now_if/?sort=new), but I would love to hear HN users's opinions.<p>I would buy "Inside The Python VM", (replace Python with Erlang or Lua or V8) and "A Hacker's Guide to Hadoop Internals"
======
stonemetal
Software engineering in functional languages. Pretty much every programming
book I have read found about functional languages has been about learning a
language with examples that are less than a page. I am curious what thought
patterns and structures you use to build something larger.

~~~
utnick
[http://www.amazon.com/Real-World-Functional-Programming-
Exam...](http://www.amazon.com/Real-World-Functional-Programming-
Examples/dp/1933988924/ref=sr_1_1?ie=UTF8&s=books&qid=1239127812&sr=1-1)

I came across a blog excerpt from this book that looked pretty neat. It isn't
out _yet_ but could be good.

~~~
plinkplonk
"I came across a blog excerpt from this book that looked pretty neat. "

<http://tomasp.net/blog/functional-net-update.aspx>

has the table of contents. I am not sure if it has any insights on functional
programming in the large, but it does look neat.

~~~
utnick
Found the blog post I was referring to:

[http://www.markhneedham.com/blog/2009/04/04/functional-c-
the...](http://www.markhneedham.com/blog/2009/04/04/functional-c-the-hole-in-
the-middle-pattern/)

Also has a link to buy a pre-release version of the book

------
bryanalves
"The definitive guide to dealing with Huge MySQL databases"

~~~
xenoterracide
it's called don't use mysql for that. (sorry i'm a trolling postgres user,
please don't mark me below -1)

in a non trolling way, I'd like to see a PostgreSQL for MySQL, SQL Server, and
Oracle users.

------
juliend2
Why's (Poignant) Guide to C.

~~~
gamache
Typeset in lovely, 50-column ASCII.

------
halo
'The Design and Implementation of Virtual Machines' or 'Theoretical Computer
Science by Example'.

~~~
brl
> 'The Design and Implementation of Virtual Machines'

Oh that book already does in fact already exist, and it's amazing:

[http://www.amazon.co.uk/Virtual-Machines-Versatile-
Platforms...](http://www.amazon.co.uk/Virtual-Machines-Versatile-Platforms-
Architecture/dp/1558609105)

------
RWilson
It's not a programming book but... "The Dream Machine: J.C.R. Licklider and
the Revolution That Made Computing Personal"

It's an awesome book about the history of computing, human-computer
interaction, and all sorts of things you're familiar with but may never have
known where they came from or how they evolved.

[http://www.amazon.com/Dream-Machine-Licklider-Revolution-
Com...](http://www.amazon.com/Dream-Machine-Licklider-Revolution-
Computing/dp/014200135X/ref=sr_1_1?ie=UTF8&s=books&qid=1239139092&sr=8-1)

------
macmac
Programming Clojure (<http://www.pragprog.com/titles/shcloj/programming-
clojure>) - it semi-exists - presently only available as pdf beta book.

~~~
jm4
The book appears to be very close to release. I've been downloading each
release for the past few months and the latest one is great. It was also a
nice surprise to see that in addition to PDF the latest update is also
available in epub and mobi (compatible with Kindle) formats.

------
gamache
_Programming Collective Stupidity: Harnessing the Ignorance of Crowds_

------
edw519
"How to Determine Exactly What Users Really Need"

(All programming becomes much simpler after that.)

~~~
ibsulon
They exist in the consultingware/project management mold.
[http://www.amazon.com/Mastering-Requirements-Process-
Suzanne...](http://www.amazon.com/Mastering-Requirements-Process-Suzanne-
Robertson/dp/0201360462) is an example.

~~~
edw519
I'm taking the bait. I'll either love this book or hate it. Either way, it's
on the way from Amazon. I'll let you know later. Thanks, ibsulon.

------
justindz
"Indie MMOs for Small, Distributed Teams"

I wouldn't even mind if it took longer than 21 days.

------
omnipath
Real programming in Prolog. Eiffel system programming. Lua system programming.

I've found books for prolog, but they all start off with logic programming.
It's kind of weird, or is it just me? And the other 2 I've not really seen any
decent books for them. Unless I'm wrong? (A subtle cry for help.)

------
pavelludiq
"How to/not to become a religious zealot of your favorite language"

~~~
lucumo
I'm guessing that will be a favourite to recommend to others, too :)

------
plinkplonk
Some of the suggestions I liked from the reddit discussion ( direct quotes,
see
[http://www.reddit.com/r/programming/comments/8aixn/programmi...](http://www.reddit.com/r/programming/comments/8aixn/programming_books_that_you_would_buy_right_now_if/?sort=new)
for the full list)

\- Plan 9 Unleashed.Or perhaps "Distributed computing with Inferno and Limbo"

\- a book like Gödel, Escher, Bach: Eternal Golden Braid that explores
Church/Lambda Calculus; Curry-Howard

Isomorphism; and Category Theory and Monads. ... "Oleg, Toulouse-Lautrec and
Rachmaninoff: On Type Reasoning".

\- The Complete Lisp Machine."

An in-depth historical and technical guide, with classic papers, discussion,
circuit schematics. Features not only the MIT/Symbolics/TI family, but the
nearly-forgotten Xerox PARC systems. Chapters with deep commentary on the
design decisions by the original designers.

\- The Implementation of Functional Programming Languages, _2nd Edition_ , by
Simon Peyton-Jones

\- Retro Game Programming for the iPhone & iPod touch

\- series of books on specific kinds of general purpose applications and a
discussion of their design and implementation techniques.

For example, the first book could be about writing a graphical word processor.
It would explain some data structures for representing text content, lines,
paragraphs and the like with the tradeoffs between them. Then explains layout
engines, using state machines to model GUI interaction, designing file
formats, and other pure gold of programming :)

Then it would be littered with case studies of both commercial & open source
applications and a huge bibliography referring to important related books and
research papers, preferably with commentary.

\- Programming Factor, Real World Factor and Filthy Rich Client in Factor.

\- Well Explained Solutions To Difficult Graph Problems Done In MapReduce

Non-trivial Recommendation Engines With Practical Concerns Highlighted And
Straightened Out

\- Core GNUstep Programming. \- \- A revised, modern version of Lisp in small
pieces

\- Programming in Octave \- Twisted Network Programming, or any decent
intermediate/advanced book on Twisted.

\- The Complete Haskell. An encyclopedic work that spans the full range from
category theory to network programming, everyday scripting, and distributed
systems. Not for Java programmers; this book doesn't skimp on the theory as
Real World Haskell does -- you'll learn to recognize the algebraic patterns
that allow Haskell experts to distill out an Applicative, a Monad, or an Arrow
from a collection of functions. Sample code (available on the Web site)
includes a persistent distributed MUD server, a set of statistical logs
analysis tools, an email spam filter, and a compiler for GoatC, a small
imperative language.

~~~
sharkbrainguy
yeah, those ones.

Especially a decent book on Factor, I'm trying to learn it form the
documentation but apparently I'm not trying hard enough.

oh and, "The Life and Adventures of Chris Double", that crazy bastard seems to
show up in my google searches for everything sooner or later. TraceMonkey
internals, NDS homebrew, dylan, factor! Is there anything he can't do?

<http://delicious.com/tags/bluishcoder>

------
Hexstream
Relevance of Knowledge for Programmers.

Would give a reasonably detailed, comprehensive overview of all the timeless
theory and techniques (CS theory, math, design, etc), where they come from and
what they're actually useful for.

So many projects are made much harder because a fundamental bit of theory has
to be rederived from first principles for lack of knowledge...

Imagine someone who never heard of a graph:

"Okay, now I know I need a structure that's a bit like a tree except each node
can have multiple parents... Now, how do I find the shortest path between two
nodes?..."

------
jasongullickson
"How to break the iPhone app store rules and still get your app accepted
(every time)".

------
mattjaynes
Anything on Tokyo Cabinet / Tokyo Tyrant

------
lucumo
"Writing a Compiler in 24 Hours"

~~~
mahmud
Write algol languages with sexp syntax and you pretty much cut your compiler
hacking in half (just focus on semantic analysis and code generation.)

You can further cheat and write a short and tidy attribute grammar for a tiny
block-structured and well documented dialect like Oberon, and your grammar
will be 1:1 translation from production rules straight to assembly language.
No optimization, and certainly no intermediate representation. What you're
left with is a clone of the first Turbo C without dynamic memory allocation
(just static allocation with a strict stack discipline)

Then you can run around and say you're a compiler hacker. That's how I started
:-P

~~~
sdp
How would an algol language with sexp syntax differ from scheme?

~~~
mahmud
It wouldn't have any of the following:

First class continuations.

First class lexical closures.

Automatic garbage collection.

An explicit Eval function.

Explicit READER and PRINTER functions for builtin parsing and serialization of
code and data (not sure if Scheme requires these, but they make a lisp Lisp)

A full numeric tower.

Hygienic macros (or any macro for that matter; CPP doesn't count)

Symbols as datatypes.

An interactive REPL.

Tail-call elimination.

Variable-argument procedures (with no kludges; va_list, va_start, va_end is
not the way to do it.)

Delayed evaluation constructs.

Multiple-value returns.

Quoted forms (a sexp syntax does not necessarily mean QUOTE is available.)

We Lisp2 hackers might pick on Scheme for its Algolishness, but that doesn't
make it any less of an excellent language. Scheme is a purists wet-dream come
true and a fine Lisp dialect, albeit an algolish one ;-)

------
durana
A book on learning x86 assembly on recent processors.

------
paulgb
"Thinking in MapReduce"

------
AndrewO
"The Java Environment for Java Haters": covering the JVM, the better web and
GUI environments, essential legacy libraries, tools, and whatever else is
worth carrying over as Clojure and Scala gain traction.

------
jaxn
Right now I wish I knew of a Pickaxe for Python.

Also, I want a MacRuby book.

On a slightly related note, how does the Kindle do with programming books? I
am thinking about picking one up to use primarily as a reference screen.

~~~
smhinsey
if the rumored 8x11 "textbook" model kindle comes out, i think it'll be
perfect. as it is now, its not too great. i thought it would be an ideal
technical library, but don't expect to get a lot out of code examples or
images. the readability of the code examples varies depending on their visual
treatment and the language, with the less verbose languages with subtle design
(i.e. no darker background, giant Courier New, etc) being most readable.

------
Femur
My fictional choice would be "The Oracle Optimizer: A Treatise"

Database related books tend to be too high level and never dig down deep
enough.

~~~
tweaqslug
I would highly recommend Expert Oracle One-On-One. It contains everything you
need to know to use oracle to the fullest extent.

[http://www.amazon.com/Expert-One-Oracle-Thomas-
Kyte/dp/18610...](http://www.amazon.com/Expert-One-Oracle-Thomas-
Kyte/dp/1861004826/ref=sr_1_1?ie=UTF8&s=books&qid=1239131558&sr=8-1)

------
camperman
Calling Useful Java Libraries from Clojure for People who have Traditionally
Despised Java And Know Nothing About It.

------
comatose_kid
Coders At Work (<http://www.codersatwork.com>)

------
christofd
\- a book on learning to trust your intuition, with good and bad programming
and architecture examples

\- a functional language cookbook... like erlang or haskell cookbook

\- a book comparing cultural differences between countries in the work and
education worlds

------
vonsydov
Norvig's Paradigms in AI book - <http://norvig.com/paip.html>

------
metallic_cloud
I would love a book on advanced XNA. Everything around at the moment is for
beginner to intermediate.

------
xenoterracide
a book on postgresql 8.3 (or the to be released 8.4) with some good strong
chapters on various PL languages. I'm thinking one on PL/Perl a few on
PL/pgSQL, one on PL/SQL, one on SQL/PSM (maybe). several on the rest of
Postgres.

------
kjhughes
P=NP: An Illustrated Guide

------
vaksel
Twittering for dummies

------
Evgeny
"Become a R0ck$tar programmer in 21 hours".

------
gamache
_On Clojure_

------
TweedHeads
s/Book/eBook

Get with the times

~~~
gamache
You're at -8 because you forgot the trailing slash.

