5 ms·
Structure and Interpretation of Computer Programs! [1] Read That Book. [1] http://mitpress.mit.edu/sicp/ http://mitpress.mit.edu/sicp/
by AlexanderDhoore 13y ago
Structure and Interpretation of Computer Programs! [1]
Read That Book.
[1] http://mitpress.mit.edu/sicp/ http://mitpress.mit.edu/sicp/
- bestieshoe6 13y agoAs someone fairly new to programming, why should I read that book?
- anaphor 13y agoBecause the theme music is awesome
- pandeiro 13y agoTo say nothing of the hairstyles
- 6d0debc071 13y agoIt contains a lot of, fairly well developed, underlying theory on how to write good programs. The maths in the first couple of chapters may be a little off putting - there's an old idea that people write books that concern the problems they're interested in even when trying to teach you something else - but you don't really have to understand the mathy bits to benefit from the book. If you've only done imperative programming before then it should be pretty eye-opening. If you've done functional programming before then it's not quite as O_O inducing, but still worth a read. Also, it's effectively free so you can easily have a look yourself ^_^
- jgg 13y agoPlenty of people who are good programmers don't read the book and are fine. Lots of people cargo-cult it and themselves don't understand it, which turns people off. However, it focuses very much on the principles of programming from a high-level, and has challenging exercises that keep you engaged. It's a programming book written from a Computer Science perspective. It uses Scheme, a dialect of Lisp, which frustrates some. However, I think Scheme works best for the book, and replacing Scheme with something "useful" like Python would be the equivalent of taking a linguistics course that uses Latin as a generic vehicle to explain various grammatical constructs, and suddenly replacing Latin with Latin American Spanish - sure, Latin isn't "practical", but that's not the point. I did not read it knowing "nothing", as some people suggest you should. I already knew how to get around in C++ and Python, and then read it on my own. You don't really get Concrete Skill X from reading the book (and working through the exercises). It's a high-level work. What I got from it was a high-level perspective on languages, algorithms and abstraction techniques. I learned to see imperative, OO, functional and other programming paradigms as tools in a toolbox that have advantages and disadvantages, not as the One True Way to program. I also learned to, in general, think about the literal and not-so-literal implications of my code. The latter half of the book is more about language implementation, and culminates in implementing Scheme, among other things. MIT phased out the book in its introductory course because, "Understanding the principles is not essential for an introduction to the subject matter anymore." Take from that what you will.
- SkyMarshal 13y agoIf god came down out of heaven and told you you could only read a single programming book, that would be among the top five choices and arguably the #1 choice. Dense but well written, teaches you how to think. And for someone new to programming, it's worth reading Paul Graham's explanation of the value of Lisp [1] if you haven't already. [1]: http://paulgraham.com/avg.html http://paulgraham.com/avg.html
- ihnorton 13y agoStrongly seconded. If you have an ereader, this reformatted version may be more pleasant: http://sicpebook.files.wordpress.com/2012/11/sicp-marginless.pdf http://sicpebook.files.wordpress.com/2012/11/sicp-marginless...