Ask HN: What's the best technical eBook you have read? - davidshariff
======
brickcap
Two books

1\. Learn you some erlang
([http://learnyousomeerlang.com/](http://learnyousomeerlang.com/))

Why?

Because it is written in a style in which technical books are rarely written.
It has cartoons, jokes, references to pop culture but still it conveys the
core subject exceedingly well. I understand that this is written in style of
learn you some haskell so I am going to read that as well at some point. The
best part is you can read the book second or third time and still have fun.

2\. Joe Armstrong's
thesis([http://www.erlang.org/download/armstrong_thesis_2003.pdf](http://www.erlang.org/download/armstrong_thesis_2003.pdf))

Yes it is another erlang book but it is written so well! I don't read thesis
(or to be perfectly honest I try reading them but I can't understand most of
them and lose interest after some time) but somehow I Joe's thesis made sense
to me. It might be because of his clear writing style I can't say. But every
time I read this book I find a certain phrase that sticks with me while I am
writing programmes. Joe is a quote machine :)

3\. Essays in the art of writing by R.L stevenson
([http://www.gutenberg.org/files/492/492-h/492-h.htm](http://www.gutenberg.org/files/492/492-h/492-h.htm))

Just read the opening paragraph and see for yourself if you don't want to read
any more :)

~~~
signa11
thanks for the pointer to the thesis. stared in '81 and submitted in 2003,
wowza !!!

------
daveloyall
This book profoundly changed how I look at computers (and other things).

[http://www.charlespetzold.com/code/](http://www.charlespetzold.com/code/)

Petzold's style is narrative, but make no mistake: every sentence is carefully
chosen. I recommend resisting the urge to skim, lest you have to backtrack
later...

~~~
daveloyall
NB the diagrams weren't legible in the Kindle version I paid for (some years
ago; hopefully it's been updated). The diagrams were fine in the PDF version
that I found somewhere.

------
nnx
Eloquent Javascript : A Modern Introduction to Programming by Marijn Haverbeke
[http://eloquentjavascript.net](http://eloquentjavascript.net)

Imho, the first chapter is a must-read for anyone in the industry, even and
maybe especially if not a developer.

"When a program works, it is beautiful. The art of programming is the skill of
controlling complexity. The great program is subdued, made simple in its
complexity."

... and also, maybe not as "mindblowing" as Eloquent Javascript, but really
good for diving deep in a low-level land (yet made very accessible in this
book) that is probably overlooked by most of us when optimizing a web app for
speed :

High-Performance Browser Networking by Ilya Grigorik
[http://chimera.labs.oreilly.com/books/1230000000545/index.ht...](http://chimera.labs.oreilly.com/books/1230000000545/index.html)

------
cageface
Surprised it hasn't been mentioned yet. Hands down the most eye opening
technical book I've read is SICP.

[http://mitpress.mit.edu/sicp/](http://mitpress.mit.edu/sicp/)

[http://sicpebook.wordpress.com/ebook/](http://sicpebook.wordpress.com/ebook/)

~~~
mgmeyers
Also, you can go through the UC Berkeley SICP course for free: [http://www-
inst.eecs.berkeley.edu/~cs61a/fa13/](http://www-
inst.eecs.berkeley.edu/~cs61a/fa13/)

I'm going through it now, on my own, and it's an awesome course.

~~~
daveloyall
Also, this: [http://www-inst.eecs.berkeley.edu/~cs61a/su14/](http://www-
inst.eecs.berkeley.edu/~cs61a/su14/)

...It started in late June and the Final is in August.

~~~
arityfn
Are there any video lectures to this?

------
_nh_
The Pragmatic Programmer. My suggestion: don't read another book until you've
read this.

~~~
prezjordan
About to finish Snow Crash and looking for a new book. I think I'll make it
this one.

------
kasbah
The Architecture of Open Source Applications series is a great read. It is
mostly written by project creators and contributers and freely available on-
line: [http://aosabook.org/](http://aosabook.org/)

~~~
ApiM
The Early Preview of '500 Lines or Less' by AOSA:
[https://github.com/aosabook/500lines](https://github.com/aosabook/500lines)

------
Erwin
I enjoyed "Advanced Programming in the UNIX Environment" back when there we
had multiple UNIX operating systems and probably more versions of standards
than operating systems. Stevens carefully documented every detail (in a way
where you could learn about what was going on; I also had the POSIX standards
at the time which were not readable).

The book had some nice typesetting which I believe was done in the mystery
language also used for man pages.

~~~
zokier
> I enjoyed "Advanced Programming in the UNIX Environment" back when there we
> had multiple UNIX operating systems and probably more versions of standards
> than operating systems.

You were bit ahead of your time if you were reading ebooks back then.

------
baumbart
Well thats an interesting question. Among the best is certainly "How to design
Programs", [http://htdp.org/](http://htdp.org/) It's about Scheme. It does a
better job than SICP I think, even though it still needs some endurance to get
through.

Generally, there are plenty of good books, you get some ideas usually by
combining knowledge from different books...

Even though this may sound a bit old-fashioned, simply in terms of quality and
self-containedness, "The C Programming Language" by K&R is by far the best
technical book I've read. You can certainly download it as PDF somewhere.

------
ivan_ah
I'm not sure if it counts as a book, but the Django docs are amazing. I
learned a lot about web-dev by printing out the docs (500pp at the time) and
reading them cover to cover.

~~~
hangonhn
I second your praise of Django docs. They're a good example of how technical
docs should be written. I think the team behind Django even wrote an article
on how to write good docs. My gut feeling is that the docs is part of the
reason Djangos is so popular because anyone new to web frameworks would find
it easiest to pick up Django.

------
r4um
All the books by W. Richard Stevens[1], especially the TCP/IP Illustrated
Volumes. No one covers theory with actual illustration and real world examples
like Stevens does in his books.

[1]
[http://en.wikipedia.org/wiki/W._Richard_Stevens](http://en.wikipedia.org/wiki/W._Richard_Stevens)

------
adricnet
A Sane Approach to Database Design by Mark Johansen

[http://www.electrictactics.com/book/sanedb.html](http://www.electrictactics.com/book/sanedb.html)

The book is really accessible and helpful. SaneDB helped me survive a
development project when I was new to many things and beat some sense into me
about what databases (and DBAs) are for that still comes in handy every week.

------
binarymax
Technically a paper, not an ebook - but "Out of the Tarpit".

[http://shaffner.us/cs/papers/tarpit.pdf](http://shaffner.us/cs/papers/tarpit.pdf)

------
d4mi3n
Working Effectively With Legacy Code: [http://www.amazon.com/Working-
Effectively-Legacy-Robert-Mart...](http://www.amazon.com/Working-Effectively-
Legacy-Robert-Martin-ebook/dp/B005OYHF0A/)

------
jacinda
Dive Into Python -
[http://www.diveintopython.net/](http://www.diveintopython.net/)

Some of the examples are a bit dated now, and this type of immersive learning
at intermediate/advanced levels is increasingly common (e.g. the Head First
series, Codecademy, etc) but when this book came out it was rare to have this
learning method presented for anything other than the most beginning levels of
a language.

------
anilmujagic
Dependency Injection in .NET by Mark Seemann:
[http://www.amazon.com/gp/product/1935182501](http://www.amazon.com/gp/product/1935182501)

~~~
Ramp_
Thank you for suggesting this. An excellent book it seems.

------
turnip1979
Scott Chacon used to have a peepcode ebook on Git Internals. That was pretty
awesome. Not sure if there is a legal way to get that anymore after peepcode
got acquired :(

~~~
adambware
Pluralsight has kept it alive!

[https://github.com/pluralsight/git-internals-
pdf](https://github.com/pluralsight/git-internals-pdf)

------
rayalez
> "Artificial Intelligence: A Modern Approach"

I think it is one of the best books written on any topic ever period.

It is kinda advanced but also brilliant, and was a turning point in my
decision to master hacking.

> Now I am reading "Two Scoops of Django" and enjoying it A LOT.

It's closer to a beginner/intermediate level, and it brings me a lot of joy
and excitement about programming.

> Another one is "Hackers & Painters", of course. PG is brilliant, nuff said.

His book "ANSI Common Lisp" is definitely on the top of my reading list, I've
already started and it is great.

> Just to mention, a little less technical book is "Ghost In The Wires" by
> Kevin Mitnick, a famous hacker.

I'm listening the audiobook now and it is really inspiring, entertaining and
fantastic.

~~~
presty
> It is kinda advanced

I disagree. It's used as an introductory book on AI classes and it's a very
broad book covering enough surface on different AI topics. But if you want to
go deep, you have to dig into academic papers

------
memset
Beej's Guide to Network Programming

[http://beej.us/guide/bgnet/](http://beej.us/guide/bgnet/)

------
acjohnson55
Javascript Allongé by Reg Braithwaite was an incredible book, not just for
changing how I viewed Javascript, but it also taught me a lot about
programming as a whole. It taught me a lot of lessons in factoring functions
into orthogonal concerns that have been highly influential on my coding style
in all languages ever since.

Available free in HTML form: [https://leanpub.com/javascript-
allonge/read](https://leanpub.com/javascript-allonge/read)

~~~
Flenser
Seconded! I thought I knew a lot about JavaScript but this book explains some
fundamental things about how JavaScript works that I'd never seen before, not
including all the combinator goodness.

------
thisjepisje
_Surely you 're joking, Mr. Feynman!_

Not very technical, but there's some interesting stuff in there, for example
about working on the atomic bomb in WWII.

~~~
cfeduke
One of my favorite books for certain.

------
lylejohnson
Am I the only one who's curious why the poster specified an "eBook" instead of
just "book"?

~~~
zokier
Technical content tends to be more picky about layout etc than prose, which
can be an issue for e-readers. Also some technical books suffer from the lack
of ability to quickly browse and jump from one page to another.

~~~
infinii
Very good point about jumping around in technical books. I rarely read any
tech books for this reason. eBooks are better suited for casual reading which
is done front to back. Tech/reference books suffer on eReaders due to poor
navigation and insufficient linking.

------
clark-kent
SCIP should always be in the list as one of the best programming books ever
written. Others are 'Simply Scheme: An introduction to computer science',
simply scheme is an alternative to "How to design Programs",
[http://htdp.org/](http://htdp.org/), both books are written for non-
programmers but they provide a gentle introduction to many advanced topics
covered in SCIP. I prefer "Simply Scheme". Another one is the "Little Schemer"
[http://www.amazon.com/The-Little-Schemer-4th-
Edition/dp/0262...](http://www.amazon.com/The-Little-Schemer-4th-
Edition/dp/0262560992).

------
sushpop
"Refactoring: Improving the Design of Existing Code"
[http://www.amazon.com/Refactoring-Improving-Design-
Existing-...](http://www.amazon.com/Refactoring-Improving-Design-Existing-
Code/dp/0201485672)

------
lurcio
Discover Meteor

Multi-Format: epub/pdf/html, great use of Middleman, being internationalised,
interesting & useful videos (but more might perhaps be made of the premium
end)

Content: really well matched to target audience. Ongoing updates.

Design: Very attractive countenance

------
justanotherprof
Without a doubt it is, for me, "Pat & Hen": "Computer Organization and Design"
by Patterson and Hennessy. I was mesmerised by this book as an undergrad and
spent night after night devouring every page. It is a true eye-opener,
explaining why computers are the way they are from the compiler down to the
CPU design. You even get to design a CPU from scratch, i.e., from basic logic
gates (in the older editions, at any rate). Magnificent and enlightening, a
must read for anyone who really wants to know "what's going on under the
hood".

~~~
thibautx
I enjoyed this book as well, and it was the text for my computer-architecture
class. The authors do a great job explaining the underlying mechanisms of
computing hardware clearly and concisely.

------
dedalus
The Little Lisper: [http://www.amazon.com/The-Little-LISPer-Third-
Edition/dp/002...](http://www.amazon.com/The-Little-LISPer-Third-
Edition/dp/0023397632)

~~~
mmozuras
Haven't read the original, but The Little Schemer is a more recent version of
it, and really really good.

------
cheez
Dependency Injection: [http://www.amazon.com/Dependency-Injection-Dhanji-R-
Prasanna...](http://www.amazon.com/Dependency-Injection-Dhanji-R-
Prasanna/dp/193398855X)

------
evandena
Absolute FreeBSD. Found it hilarious
[https://www.michaelwlucas.com/nonfiction/absolute-
freebsd](https://www.michaelwlucas.com/nonfiction/absolute-freebsd)

------
cfeduke
Eloquent Ruby[1] by Russ Olsen

If you are an experienced programmer coming to Ruby this is definitely the
place to start. Especially if you are a Java or .NET EE-indoctrinated
programmer. The people who maintain your code after you will be thankful that
you read this and wrote idiomatic Ruby.

If you just want to learn Ruby or read an excellent technical book as mind
food this book is also a great choice.

(Code by Petzold is actually my favorite technical book, but its already been
picked.)

[1] [http://eloquentruby.com/](http://eloquentruby.com/)

------
eddie_31003
For me, there have been more than one. I'll list them in the order I read
them. I have them all in an eBook form to read in my Kindle App on my Nexus 7.
1) Clean Code 2) Pragmatic Programmer 3) Patterns for Enterprise Application
Architecture

There's some overlap in contents, but I feel they complement each other very
well.

------
poseid
Lately: [http://exploringarduino.com/](http://exploringarduino.com/)

------
nezo
I haven't finished it yet, but Linux Networking Internals was really amazing.
It is a bit low-level, but even though I never really wanted to code low-level
Linux, it taught me a lot about Linux's ways to handle incoming data and
forward data, etc.

------
pbr_rob
Best "learn a language" book I've read was the first edition of Joe
Armstrong's Programming Erlang book.

For a Software Engineering book, it's hard to beat The Pragmatic Programmer.

A good working-with-other-people book is Extreme Programming Explained 2nd ed.

------
wiseleo
There are just so many...

Headfirst series (JavaScript, HTML, jQuery... all of them)

Discover Meteor

Refactoring: improving the design of existing code

Database design for mere mortals

MIT books (SICP, Algorithms)

Oh, and of course... Human Interface Guidelines by Apple. One of the best UX
books on app design.

All books are ebooks for me, so this list is impossibly long.

------
zupa-hu
Code Complete 2nd edition

Super hands-on book. Since reading it, I'm writing better programs faster.

~~~
nstart
This book when combined with "The Clean Coder", and "Refactoring: Improving
the design of existing code" completely changed how I thought about
programming. It "levelled me up" so to speak. Even though I'm as far from
being good as it gets, I still know I improved significantly from reading
these three books.

------
galephico
Hackers in-depth interviews: « Coders at Work »

General topic: « The Pragmatic Programmer: From Journeyman to Master »

Java and more: « Effective Java » 2nd edition

About unit testing with Java tools: « Practical Unit Testing with Mockito and
JUnit »

------
wbsun
Linux Device Drivers:
[http://lwn.net/Kernel/LDD3/](http://lwn.net/Kernel/LDD3/) The best and free
kernel book.

------
mmozuras
Peopleware

Because even the best technology has people behind it.

------
AbelWike
Developing Trust: Online Security for Developers - Written by Matt Curtin

&

Implementing SSL/TLS Using Cryptography and PKI - Written by Joshua Davies

------
phloxicon
Game Programming Patterns:

[http://gameprogrammingpatterns.com](http://gameprogrammingpatterns.com)

------
mmgutz
K&R, the white book. There are few books that match it in conciseness and
elegance.

------
arsalanb
Think Python, by the Green Tea Press.

"How to think like a computer scientist"

------
enrmarc
"Object-Oriented Software Construction" by Bertrand Meyer.

------
issaria
Linux kernel development

------
gyardley
Sandi Metz's Practical Object-Oriented Design in Ruby.

~~~
jconn
+1 for Practical Object-Oriented Design in Ruby. I'm admittedly a relative
novice (my background is in finance, but I've been learning to program through
books and online resources for about a year now).

Reading this book led to many "Aha" moments where I really started to
understand the benefits of OOP. Great read.

------
nimish
The Mythical Man-Month: Essays on Software Engineering

------
presty
edit: forget my answer. I didn't read them as ebooks

for plain books:

Windows Internals by Solomon and Russinovich

AI: A modern Approach by Russell and Norvig

------
pkrumins
The {Little,Reasoned,Seasoned} Schemer

------
programminggeek
Copy Hackers.

------
eugeneionesco
The Art of Software Security Assessment: Identifying and Preventing Software
Vulnerabilities

[http://www.amazon.com/The-Software-Security-Assessment-
Vulne...](http://www.amazon.com/The-Software-Security-Assessment-
Vulnerabilities/dp/0321444426)

