33 comments

[ 2.6 ms ] story [ 76.0 ms ] thread
Yet another popular, relevant and useful topic locked on StackOverflow.

What a surprise....not.

There seems to be a pedantic core of people on SO that go around locking topics, rather than contributing in their own area of expertise.

There's a decent chance that's because they have no area of expertise.
Haha, yeah it can be aggravating. In general though, I think it's good that there are people who care about the content so much.
Sadly neither StackOverflow nor Wikipedia have found the "PageRank of Edition".
And now

(a) it's preserved because it has 'historical significance', yet

(b) the bits are rotting as new books are released and old books' information becomes out of date

The first link I clicked on in the list was dead. Admittedly I found the pdf with a trivial bit of googling, but still annoying.
Vim Recipes is a dead link. There's still a pdf and a github out there, though.
SO is neither a wiki nor a forum. If the maintainers have a different vision for it, they're hardly being pedantic by not letting it turn into one of those things. The Internet isn't suffering from a shortage of wikis or forums, so maybe someone should put this page's contents in one of them?
Very nice, thank you =)
(comment deleted)
Structure and Interpretation of Computer Programs! [1]

Read That Book.

[1] http://mitpress.mit.edu/sicp/

As someone fairly new to programming, why should I read that book?
Because the theme music is awesome
To say nothing of the hairstyles
It 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 ^_^

Plenty 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.

If 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

Looks like someone is after their stackoverflow promoter badge;)

On a serious note, this is actually a good resource, and probably an example of a question that wouldn't be allowed on Stackoverflow today but is kept around due to it being so darn popular.

This has been driving in the ~1000 hits per month range to http://eloquentjavascript.net for ages. Since that's just one link in the huge list, I guess lots of people are landing on it.
(comment deleted)
The problem I have with this is that there are so many options , someone looking at this has no real reference as to which books are better, how easy they are to read, etc. Its just a giant list!
Yeah you might as well google "free programming books"
So what do you think I should read from this list? (I have a day off tomorrow and so far haven't planned anything meaningful)