
Ask HN: What are the best programming books for someone in prison?  - syedkarim
A friend of mine went to prison 17 years ago (robbed a bank; first offense; no one was hurt, but they through the book at him). He'll be released in November and is trying to figure out what to do with the rest of his life (he's 39).<p>I told him the only truly meritocratic profession in the world is programming. He's done a lot of VB/Access-work for the prison factory and really enjoys it, so this path is probably a great fit for him. He'd like to use the next 9 months to learn as much as humanly possible about the general fundamentals of computer science and, more specifically, the basics of what is needed to be a web developer.<p>Unfortunately, he is limited to book-learning because, well, it's not like they have a One Laptop Per Inmate program. Additionally, his facility does not allow  actual programming texts to be received/read by inmates. The more technical/instructive/informative a book is, the more likely it is to be returned to the sender. Yes, it sucks. But it is the reality of the situation.<p>He is, however, allowed to receive/read books that are conceptual in nature. Based on these constraints, which programming-oriented books (they must be physical books, as opposed to ebooks and pdfs) do you recommend I purchase for him? Given the constraints, what books do you recommend?
======
revorad
Here's another idea: Since your friend is coming out in 9 months anyway and
there's so much risk involved in trying to sneak in a programming book, he
should probably spend his time developing another equally useful skill:
writing well.

As many other successful programmers have noted (Spolsky, Yegge) and
demonstrated, effective communication, especially through writing, is a very
useful and necessary skill for a programmer. So, maybe you should send him
just some good books on writing well.

In general books, I can think of Strunk and White, On Writing (by Stephen
King). But some examples of good writing about programming could also help:

The Best Software Writing (edited by Spolsky)

Joel on Software (the best articles from his blog)

Steve Yegge's blog posts (others might disagree but I think he is an excellent
writer).

Paul Graham's essays

raganwald's old blog - <http://weblog.raganwald.com/>

James Hague's blog - <http://prog21.dadgum.com/>

Rands in Repose - <http://randsinrepose.com/>

------
tdfx
I would look into donating the books to the prison library. Censors usually
don't go to town on books that are donated, whereas things that are sent in
via the mail to a specific inmate are scrutinized to an unimaginable degree.

~~~
syedkarim
I just double-checked with him about this: The prison library no longer
accepts book donations of any kind. And the Inter Library Loan program has
been shut down. He told me not to try to make any sense of it.

------
chwahoo
I find it shocking that "technical/instructive/informative" books are
disallowed. I can't begin to fathom a reasonable explanation for that.

To be more helpful, a mathy algorithms text, like CLR
([http://www.amazon.com/Introduction-Algorithms-Thomas-H-
Corme...](http://www.amazon.com/Introduction-Algorithms-Thomas-H-
Cormen/dp/0262033844/)) might slip through the censors and be a good option--
depending on whether your friend is comfortably enough with thinking about
code abstractly.

~~~
syedkarim
I was told that staff has explicitly stated to him that the institutional
policy does not encourage inmates to pursue white-collar professions upon re-
entry.

------
pasbesoin
Mathematics is probably "theoretical" enough? A good Discrete Mathematics
text, Perhaps some others. He'll have some mathematics knowledge around which
to orient his programming. And people have been learning math for a long time
-- meaning, long before computers.

Related, a good book on logic, including logic as implemented in circuits.

I recall a fairly intense "computer science survey course" back in college,
that started with and, or, not gates and built up through adders, etc, to an
ACU. Introduced a pseudo assembly language. I forget how far it continued
beyond that. Something like that book I can see doable in good part on paper
and in thinking, and it would provide some fundamental background that many
programmers don't have or don't retain.

It might also be helpful to give him a good, concise book on project
management. So that he has some idea what people are talking about when he
encounters the work environment.

And there are always some of the classics, both for insight and for cultural
orientation. Brooks' "The Mythical Man Month". Kidder's "The Soul of a New
Machine". Some years back, I rather enjoyed "Where the Wizards Stay Up Late",
for it's take on the early development of what we now call "the Net".

If you're sadistic (and willing to risk some bucks against the chance of
censorship), you can always send him Knuth's compendium. ;-)

------
cliffwarden
Not sure if this is the right direction or not. In different ways they are
all, essentially, about programming...

[http://www.amazon.com/Code-Language-Computer-Hardware-
Softwa...](http://www.amazon.com/Code-Language-Computer-Hardware-
Software/dp/0735611319/ref=sr_1_1?ie=UTF8&qid=1328659335&sr=8-1)

[http://www.amazon.com/Elements-Computing-Systems-Building-
Pr...](http://www.amazon.com/Elements-Computing-Systems-Building-
Principles/dp/0262640686/ref=pd_vtp_b_1)

[http://www.amazon.com/Structure-Interpretation-Computer-
Prog...](http://www.amazon.com/Structure-Interpretation-Computer-Programs-
Engineering/dp/0262510871/ref=pd_vtp_b_6)

[http://www.amazon.com/G%C3%B6del-Escher-Bach-Eternal-
Golden/...](http://www.amazon.com/G%C3%B6del-Escher-Bach-Eternal-
Golden/dp/0465026567/ref=pd_vtp_b_12)

[http://www.amazon.com/Pragmatic-Programmer-Journeyman-
Master...](http://www.amazon.com/Pragmatic-Programmer-Journeyman-
Master/dp/020161622X/ref=pd_vtp_b_13)

Good luck!

~~~
syedkarim
This is absolutely the right direction--thanks! The one book on the list that
might get kicked back is "Structure and Interpretation of Computer Programs".
Too bad, since it's probably the most concrete. This is a great starting
point, thanks again.

------
dncrane
Here's a good list of highly-praised books. Most of them look like they could
make it past the censors: [http://stackoverflow.com/questions/1711/what-is-
the-single-m...](http://stackoverflow.com/questions/1711/what-is-the-single-
most-influential-book-every-programmer-should-read)

From those I personally recommend "Structure and Interpretation of Computer
Programs" and "Gödel, Escher, Bach". SICP might not make it through, but GEB
definitely would (although its direct relevance to day-to-day work in web
development may be questionable, it should do a lot to spark an interest in
computer science).

------
sheff
Just a suggestion, but what about books which don't look at all technical but
are full of cartoons and humour, eg "Land of Lisp" (
<http://nostarch.com/lisp.htm> ) , the Head First books and so on ? These
might be acceptable.

Secondly, one of the most common comments on HN is how few programmers are
also any good at design, so perhaps books focused on design, usability and
typography would be another option.

------
jrubinovitz
I have done work at a charity that mails donations of books to prisons called
"Books Through Bars", and I am always excited to get a request for books on
programming. You may want him to send a request to them, there will be some
lag time, but it sounds like he has a bit of time left.

I'd go with "Code: The Hidden Language of Computer Hardware and Software" or a
Donald Knuth book.

------
revorad
If he's already doing VB/Access work for the prison, could you not slip in a
.net book as a means to help him in his work there? Or donating it to the
library (as tdfx suggested) sounds like a good way around it.

~~~
syedkarim
In theory, that's a good workaround. But that's based on our understanding and
what is logical and reasonable to us. My apologies for the tone of that
statement--it's not at all directed at you; you could not believe the
obstruction he has had to deal with as he has put himself through undergrad
and graduate school through mail-in correspondence. He was hoping to pursue a
phd, but the administration would not allow him to pursue his research
project, so he had to stop at a master's. Bettering himself has been no easy
task.

We pursued the option of donating to the library, but the correctional
officers do keep a good watch on what comes as donations, apparently. He has
also tried to order programming books through the Inter Library Loan program,
but no luck. He learned VB/Access through material that was available in the
factory and, of course, just figuring things out through trial and error. But
I'll ask him about this option in more detail.

------
geekytenny
A php mysql book like this may be a good start.

www.amazon.co.uk/gp/aw/d/0470096004/

~~~
syedkarim
As helpful as that book would be, I'm almost certain it wouldn't be allowed.
He's ordered a few of those types of books before and they were all rejected
by the facility.

------
zck
Would you be able to send him photocopies, as "letters"?

~~~
syedkarim
Yes, I could. But I live in Poland, so mailing an ebook (100 pages?) would be
incredibly expensive--and there's still no telling that he would actually
receive the letter. Out of curiosity, what title did you have in mind?

