Live data from Hacker News

What is the single most influential book every programmer should read?

stackoverflow.com

91–100 of 100 posts

Re: What is the single most influential book every programmer should read?

#91
post #37
post #21

Earlier quoted context omitted.

Going through the list: Code Complete: First ed 1993 Prag Prog: 1999 SICP: 80s? K&R C: ditto CLRS: 1990 Refactoring: 1999? GoF DP: 1994 Mythical Man Month: late 70s, 80s? TAOCP: Decades ago, and not a serious suggestion Dragon book: 1986 GEB: 80s was it? Programming Pearls: 1999 CODE: 1999 Off the top items in that list, only two have them have been published in the last TWELVE years, which in our industry is at leas…

Given that JavaScript and Python are very mainstream now, we need some sort of text that covers functional techniques for the average programmer in scripting languages. SICP is dated and doesn't really match what modern languages can do. Mark-Jason Dominus' "Higher-Order Perl" is fantastic, but unfortunately specific to a language that's most programmers are not choosing in 2011. There was an attempt at a JavaScript…

> SICP is dated and doesn't really match what modern languages can do.

You really need to elaborate on that. Especially given how Guido could have used reading SICP when implementing Python and how Brendon was thoroughly inspired by Scheme (and I assume SICP) for Javascript.

Re: What is the single most influential book every programmer should read?

#92
post #88

For me it's not even a programming book... which is what I felt the people who have answered have artificially limited themselves to. For me, it's: http://www.amazon.co.uk/dp/0195019199 Pattern Language It's about architecture, buildings, towns. How to make them work, to serve all the needs of them, and how to allow them to grow. What is important to me and influenced me heavily is the thinking behind it. All parts o…

What is this sudden feeling? It is like a thousand HN readers cringed simultaneously.

Re: What is the single most influential book every programmer should read?

#93
post #19

I'm not sure that all those people on Stackexchange have read the question properly. The question is "What is the single most influential book every programmer should read?" I.e. given the set of books that every programmer should read, which one is the single most influential? As a programmer, lets consider the answer to the question, as parsed logically (regardless of intent). Typing 'most influential books' into G…

"I'm not sure every programmer should read Elements - maybe, but its a little abstract these days."

I don't understand the "these days". Does Geometry decay? Or logic? What is the half-life of a Pythagoras' right-triangle theorem?

Re: What is the single most influential book every programmer should read?

#94
post #37
post #21

Earlier quoted context omitted.

Going through the list: Code Complete: First ed 1993 Prag Prog: 1999 SICP: 80s? K&R C: ditto CLRS: 1990 Refactoring: 1999? GoF DP: 1994 Mythical Man Month: late 70s, 80s? TAOCP: Decades ago, and not a serious suggestion Dragon book: 1986 GEB: 80s was it? Programming Pearls: 1999 CODE: 1999 Off the top items in that list, only two have them have been published in the last TWELVE years, which in our industry is at leas…

Given that JavaScript and Python are very mainstream now, we need some sort of text that covers functional techniques for the average programmer in scripting languages. SICP is dated and doesn't really match what modern languages can do. Mark-Jason Dominus' "Higher-Order Perl" is fantastic, but unfortunately specific to a language that's most programmers are not choosing in 2011. There was an attempt at a JavaScript…

> SICP is dated and doesn't really match what modern languages can do.

I always think SICP as math applied to CS and math never gets old :)

I am reading it after 9 years as a professional programmer and I am having so much fun! It is giving me new ways (o reminding me forgotten ways because my first language was Scheme) to think about problems and I am totally using those skills in my job. I will recommend SICP to any beginner that wants to become a serious programmer, maybe not because the language and programming style but the way it teaches how to attack problems.

Sometimes the journey is more important than the destination :)

Re: What is the single most influential book every programmer should read?

#95
post #19

I'm not sure that all those people on Stackexchange have read the question properly. The question is "What is the single most influential book every programmer should read?" I.e. given the set of books that every programmer should read, which one is the single most influential? As a programmer, lets consider the answer to the question, as parsed logically (regardless of intent). Typing 'most influential books' into G…

"I'm not sure every programmer should read Elements - maybe, but its a little abstract these days." I don't understand the "these days". Does Geometry decay? Or logic? What is the half-life of a Pythagoras' right-triangle theorem?

Fair comment: if the geometry is done right, the geometry should be timeless.

But whether the particular presentation is worth reading, can change. 150 years ago, every person hoping to do anything vaguely mathematical should probably have read Elements.

But now, there is so much other material to pick from, I'm not sure it'd be a good use of time - it might now be a little on the abstract side, to recommend it to all modern programmers.

Thats what I was trying to get at; I should have phrased it better.

Re: What is the single most influential book every programmer should read?

#96
post #19

I'm not sure that all those people on Stackexchange have read the question properly. The question is "What is the single most influential book every programmer should read?" I.e. given the set of books that every programmer should read, which one is the single most influential? As a programmer, lets consider the answer to the question, as parsed logically (regardless of intent). Typing 'most influential books' into G…

If we're assuming an America-centric question and your abstract definition then you can summarize it with just one book: 1. The Bible. Closely followed by whatever the first book that people in stackoverflow's demographic read whilst learning to read.

Certainly, it is very influential - but is it a book that all programmers (even western ones) should read?

I'm not sure - it is very long. Its probably worth reading some subset of, but I'd be more certain about 1984 and even The Prince, depending on whether we mean 'read all the way through'.

Re: What is the single most influential book every programmer should read?

#97
post #87

Don't waste your time reading books. Read code from good programmers and program yourself. You will get way more from this.

>Don't waste your time reading books

I strongly disagree. A lot of algorithms have to be introduced in order to be properly learnt. For instance, I don't think you would understand properly a neural network just by reading an implementation of it. And if you haven't read SICP you should at least to see an example of what a good book can give you than just code can't.

At some extend, I agree that you would learn good habits by reading clever code and that would replace a lot of "teach yourself" books.

Re: What is the single most influential book every programmer should read?

#98
post #31

The ranking of this list is extremely suspect. Code Complete is a fine book. The Pragmatic Programmer is okay. But neither book holds a candle to Introduction to Algorithms for career-long usefulness. For that matter, neither one holds a candle to Design Patterns for the ability to expand your mind and improve your ability to think about code (I read both at the same time, and Design Patterns is the only one whose le…

It is SICP for me.

Design Patterns are only needed if your language is not powerful enough.

In assembler subroutines and classes are design patterns.

Re: What is the single most influential book every programmer should read?

#99
post #82
post #77

Earlier quoted context omitted.

"Design Patterns needs to be read with the understanding that the patterns are for specific types of languages and are not universally applicable." Not really. I've found a use for design patterns in just about every language I've used. They're not all equally useful, but that was never the book's claim. It's become a little fashionable to be cynical about Design Patterns, but most of them have held up well. A few of…

> trivially implemented in newer languages Well this is just wrong! I would call them good languages but that just my opinion. I have never really found it helpful to think about these patterns. Witch one do you find helpful to think about?

A lot of them are still useful abstractions (for vocabulary, if nothing else). In particular, I see Strategy patterns used all over the place (but not referred to as such), as well as Adapters, Bridges, Decorators, Facades and Proxies...but most people who have claimed to have read the book couldn't tell you the differences between those ideas.

Lots of people seem to independently "re-invent" the Observer and Visitor patterns (badly), which is a shame, because there's lots of room for subtlety in their implementations. And of course, Ruby makes use of Interpreter all over the place, and frameworks like Rails use Command, Chain of Responsibility, Mediator, Template Method, and so on...but don't really call them by their names. Blargh.

Re: What is the single most influential book every programmer should read?

#100
post #37

Earlier quoted context omitted.

Given that JavaScript and Python are very mainstream now, we need some sort of text that covers functional techniques for the average programmer in scripting languages. SICP is dated and doesn't really match what modern languages can do. Mark-Jason Dominus' "Higher-Order Perl" is fantastic, but unfortunately specific to a language that's most programmers are not choosing in 2011. There was an attempt at a JavaScript…

> SICP is dated and doesn't really match what modern languages can do. I disagree. There's over 200 pages before they even introduce mutation and impure functions. Later they touch on the thorny problems that mutation creates when they touch on concurrent programming. There's sections on building lazy streams which are core parts of Clojure and Haskell. And I don't think there's a more accessible intro compilers and…

> I disagree. There's over 200 pages before they even introduce mutation and impure functions.

That's kind of the point. I tend to be the one defending SICP on this board, but only for someone who wants the very particular kind of education SICP brings.

Meanwhile, over in languages people are using, you don't have the option of living without mutation. Time to learn how to protect yourself, or not, with closures.

Recursion has a bigger speed and space penalty. You need to tell people when to use maps and folds and when not to.

SICP doesn't really do combinators, and they are very useful in JS.

Also, a lot of libraries in JS use chaining, so a grounding in their theory (maybe even a discussion of monads à la Haskell) might be very fruitful. SICP has nothing like that.

Callbacks are everywhere in JS programming, so a discussion of how to avoid spaghetti would be good.

Latency is a much bigger deal for JS -- how to balance very fast local resources with potentially never-returning remote resources -- and techniques for beating that are not to be found in SICP, as far as I remember.

And of course there's no discussion at all of UI or media in SICP.

Post reply on HN