

Ask HN: Computer science neophyte needs a book recommendations - jasondrowley

Alright, so I'm the non-technical half of a small Chicago startup, and I want to learn to code. I have fought my way through Programming PHP and JavaScript: In A Nutshell, and HTML: The Definitive Guide, (not in that order), and I'm beginning to think that I'm not the type of person to just learn things piecemeal. I'm looking for a book which explains (in words, as opposed to diagrams) the architecture and operations of a computer from the hardware on up. I want to know what causes a parse error, and where this lies in the hierarchy between the CPU and what gets rendered in the GUI.<p>Seriously, this is the most curious I've been about something since I wanted to be a marine biologist when I was six.<p>Can anyone recommend a comprehensive, rigorous explanation of computing and computer programming? I'd be much obliged.
======
JoeCortopassi
_Code Complete 2nd edition_ \-- Every good programming practice and why to use
it.

 _Structure and Interpretation of Computer Programs_ \-- the book explains
core computer science concepts, including abstraction, recursion, interpreters
and metalinguistic abstraction, and teaches modular programming. Also what MIT
used to use as their intro to CompSci textbook

 _Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)_ \-- Explains
various algorithms and their benefits/drawbacks

 _The Mythical Man-Month_ \-- What project management for software looks like
when done right (and wrong)

 _Head-First Design Patterns_ \-- Head First series is a little goofy, but you
_will_ remember how an Observer pattern works after going through their goofy
examples. Gang of Four's design pattern book will put you to sleep.

~~~
jasondrowley
Thanks, Joe.

I'm making my way through another HN user's recommendation, Code. I've heard
good things about The Mythical Man Month (especially from my more technical
startup-involved friends), so I think that might be next on my list. As for
SICP, I'm a tad intimidated, but it seems approachable enough.

Regarding the other suggestions, they too will be read. Thank you for these.

------
matmann2001
I've always found understanding the lower-level workings of computers to be
very enlightening. After I finished with this text, programming and syntax
made perfect sense. You may never need the bits on Assembly language, but the
knowledge itself of the transition from hardware instructions to programming
languages is extremely beneficial.

<http://highered.mcgraw-hill.com/sites/0072467509/>

------
kenjackson
If you want to learn it from the bottom up, read Code.

[http://www.amazon.com/Code-Language-Computer-Hardware-
Softwa...](http://www.amazon.com/Code-Language-Computer-Hardware-
Software/dp/0735611319)

It's a page turner and you'll know more about computers than many developers.
You still won't be a programming guru from this, but its a great holistic
approach that you can then supplement.

~~~
jasondrowley
Thanks. I've seen Code at my local B&N (and of course, on Amazon), and I've
come close to buying it.

I'm getting it tomorrow.

------
belial
I would recommend "Structure and Interpretation of Computer Programs"
<[http://mitpress.mit.edu/sicp/>](http://mitpress.mit.edu/sicp/>);

This book is a classic in Computer Science and it explains, discusses various
programming concepts ... mainly from the compiler/interpreter point of view.

~~~
jasondrowley
Thanks.

