Jessie Young's Reviews > Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software
by
by

I was told that this book should be interested to just about anybody. I would edit that to say that it should be interesting to just about anybody who is interested in software more generally. I think I got a lot out of it because I am actually developing software, but the language is non-jargony and the stories are great for getting a sense of the history of programming.
Favorite bits:
"Time really does seem to behave differently around the act of making software. When things go well, you can lose track of passing hours in a state psychologists call "flow." When things go badly, you get stuck, frozen between dimensions, unable to move or see a way forward. Either way, you've left the clock far behind. You're on software time." -pg. 4
"It's difficult not to have a love/hate relationship with computer programming if you have any relationship with it at all." -pg. 5
"Their work is one percent inspiration, the rest sweat-drenched detective work; products are never finished or perfect, just varying degrees of "less broken." -pg. 10
"Adding manpower to a late software project makes it later." -pg.17
"…each time you add a new member to a team, the veterans must drop what they are doing to bring the latecomer up to speed, and everyone needs to pause to reapportion their tasks to give the newcomer something to do." -pg. 18
"much of the work in creating software also suffers from 'sequential constraints' that limit how far you can go in splitting up tasks: One task must be completed before the next can be tackled." -pg. 18
"Proponents of open source like to draw the distinction between 'free as in free beer' and 'free as in free speech:' Not all open source software products cost nothing, but all open source software is fee to be examined, adapted, and reused." -pg. 22
"Perhaps the idealist most programmers shear is a direct consequence of the toil and frustration of programming. If you're going to have to wrestle with daunting abstractions or squash armies of bugs, big ambitions can help pull you through the slog." -pg.22
Linus Torvalds: "In science, the whole system builds on people looking at other people's results and building on top of them. In witchcraft, someone had a small secret and guarded it–but never allowed others to really understand it and build on it. Traditional software is like witchcraft. In history, witchcraft just died out. The same will happen in software. When problems get serious enough, you can't have one person or one company guarding the secrets. You have to have everybody share the knowledge." -pg.41
"To Engelbart, bootstrapping meant 'an improving of the improvement process.'" -pg. 44
"Each computer-based advance in human productivity or convenience or creativity seems to call forth a shadow; our dreams of progress are troubled by crashes and viruses and spam." -pg.47
"If programmers paid too close attention to the legacy of software disasters past, nothing would ever get coded. The likelihood of failure would be too daunting." -pg.53
"'All programmers are optimists,' Frederic Brooks once write in 1975. 'Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists.'" -pg. 53
"If you want to change the world…you need pessimism of the intellect, optimism of the will." - Antonio Gramsci pg. 54
"When we move some aspect on our lives into software code, it's easy to be seduced by novel possibilities while we overlook how much we may be giving up." -pg.57
"'Good programmers know what to write,' Eric Raymond had written in 'The Cathedral and the Bazaar. 'Great ones know what to rewrite (and reuse)'" -pg.60
"For programmers, just as for writers and artists and everyone whose work involves starting with a blank slate, the 'funnest' time of a project often falls at the very beginning, when worlds of giddy possibility lie open, and before painful compromises have shut any doors." -pg.64
"Just as dogs often come to resemble their owners, it seems that programming languages end up reflecting the temperaments and personalities of their creators in some subtle way." -pg.72
"Front ends are supposed to be elegant, intuitive, versatile; back ends are supposed to be invisible, efficient, rock-solid. The front end talks to people; the back end talks to bits." -pg.86
"'most programmers like to program. Some of them would rather program than eat or bathe.. Most of them would much rather cut code than chase documentation or search catalogs to try to figure out some other stupid programmer's idiotic work…Other things being equal, programmers design and build from scratch rather than recycle'" -pg. 98 (Larry Constantine)
- Stories behind name of Yahoo and Spam
"Here is one of the paradoxes of the reusable software dream that programmers keep rediscovering: There is almost always something you can pull off the shelf that will satisfy many of your needs. But usually the parts of what you need done that your off-the-shelf code won't handle are the very parts that make your new project different, unique, innovative–and they're why you're building it in the first place." -pg. 102
"There's an old saying: I can make it for you fast, cheap, or good. Pick any two." -pg.119
"One great irony inherent in the management of software projects is that despite the digital precision of the materials programmers work with the enterprise of writing software is uniquely resistant to measurement." -pg.126
"There is no reliable relationship between the volume of code produced and then state of completion of a program, its quality, or its ultimate value to a user" -pg.127
"Whatever the cause of the rising autism rates–whether Silicon Valley is conducting a vast experiment by inbreeding geeks or unrelated factors are responsible–there is something unsettling about the parallels between the autistic profile and the geek personality." -pg.134
"A celebrated…bit of graffiti from MIT captures this: 'I would rather write programs to help me write programs than write programs.'" -pg.142
"'The question is,' said Mitch Kapor, deep in the middle of a long meeting in a series of long meetings, "How do we sequence things to avoid spending an infinite amount of time before anything useful happens?' 'It's only infinite of you're stuck in a loop,' Hertzfeld replied." -pg.152
"In the annals of software history, Chandler's disappointing pace is not the exception but the norm. In this field, the record suggests that each driver finds a different way to run off the road, but sooner or later nearly all of them end up in a ditch." -pg. 173
"Don't expect me to get anywhere big in any kind of short time frame. I've been doing Linux for thirteen years, and I expect to do it for quite some time still. If I had expected to do something that big, I'd never have started." -pg. 174 (Torvalds)
"The spec is a programmer's bible, and, typical, the programmer is a fundamentalist." -pg.181
"Everybody who has success, especially when it's young, wonders: Was it luck, or was it skill? Well, it's a little of both. If you can do another really great one, it shows the world something." -pg. 207
"dogfooding…had the more modest and pragmatic aim of speeding up bug-finding and big-fixing by shoving developed' noses into their products' flaws." -pg. 209
"When people ask for numbers that far out, the traditional thing that engineers do is make them up." -pg. 219
"programmers are like carpenters or stonemasons–stewards of a body of knowledge gained by experience and passed along by tradition and apprenticeship." -pg. 250 (Brian Hayes)
"The real goal of a methodology is to sell books, not to actually solve anybody's problem." -pg. 257 (Joel Spolsky)
"Software developers are frequently portrayed as foot soldiers on death marches in pitched corporate battles. They take on missions and struggle to accomplish them under rapidly shifting circumstances and fog-of-war-style visibility. And they frequently develop that combination of fatalism and perseverance that has marked battlefield veterans throughout history." pg. 259
"Where you find software success stories, you invariably find people who are good at saying no." -pg. 260
"Flexibility is overrated. Constraints are liberating." -pg. 262 (DHH)
"To believe that we already know all the possible uses for software is to assume that the programs we already possess satisfy all our needs and that people are going to stop seeking something better." -pg. 266
"The 'great shame of computer science' is that, even as hardware speeds up, software fails to improve." -pg. 291
"Of all the things you can spend a lot of money on, the only things you expect to fail frequently are software and medicine." -pg. 292 (Jaron Lanier)
"That little drama is repeated again and again for each of us. We relive the whole history of computer science in our own lives and educations. We start off writing little programs–'Hello World' or whatever it might be. Everyone has a wonderful experience. They start to love computers. They've done some little thing that's just marvelous." -pg. 294
"The road to wisdom?–Well, its plain/and simple to express:/Err/and err/and err again/but lesss/and less/and less." - Piet Hein (pg 306).
"It always takes longer than you expect, even when you take into account Hofstadter's Law." - Hofstadter's law. pg. 331
"When people ask me when something will be finished, I respond, 'It will be ready sooner if you help.'" - Richard Stallman pg. 333
"Software development lacks one key element–an understanding of what it means to be 'Done.'" -pg. 337 (Alan Cooper)
"In the short term we always underestimate how hard things are, but in the long term we underestimate how big changes are." -pg. 353 (Ray Kurzweil)
Favorite bits:
"Time really does seem to behave differently around the act of making software. When things go well, you can lose track of passing hours in a state psychologists call "flow." When things go badly, you get stuck, frozen between dimensions, unable to move or see a way forward. Either way, you've left the clock far behind. You're on software time." -pg. 4
"It's difficult not to have a love/hate relationship with computer programming if you have any relationship with it at all." -pg. 5
"Their work is one percent inspiration, the rest sweat-drenched detective work; products are never finished or perfect, just varying degrees of "less broken." -pg. 10
"Adding manpower to a late software project makes it later." -pg.17
"…each time you add a new member to a team, the veterans must drop what they are doing to bring the latecomer up to speed, and everyone needs to pause to reapportion their tasks to give the newcomer something to do." -pg. 18
"much of the work in creating software also suffers from 'sequential constraints' that limit how far you can go in splitting up tasks: One task must be completed before the next can be tackled." -pg. 18
"Proponents of open source like to draw the distinction between 'free as in free beer' and 'free as in free speech:' Not all open source software products cost nothing, but all open source software is fee to be examined, adapted, and reused." -pg. 22
"Perhaps the idealist most programmers shear is a direct consequence of the toil and frustration of programming. If you're going to have to wrestle with daunting abstractions or squash armies of bugs, big ambitions can help pull you through the slog." -pg.22
Linus Torvalds: "In science, the whole system builds on people looking at other people's results and building on top of them. In witchcraft, someone had a small secret and guarded it–but never allowed others to really understand it and build on it. Traditional software is like witchcraft. In history, witchcraft just died out. The same will happen in software. When problems get serious enough, you can't have one person or one company guarding the secrets. You have to have everybody share the knowledge." -pg.41
"To Engelbart, bootstrapping meant 'an improving of the improvement process.'" -pg. 44
"Each computer-based advance in human productivity or convenience or creativity seems to call forth a shadow; our dreams of progress are troubled by crashes and viruses and spam." -pg.47
"If programmers paid too close attention to the legacy of software disasters past, nothing would ever get coded. The likelihood of failure would be too daunting." -pg.53
"'All programmers are optimists,' Frederic Brooks once write in 1975. 'Perhaps the hundreds of nitty frustrations drive away all but those who habitually focus on the end goal. Perhaps it is merely that computers are young, programmers are younger, and the young are always optimists.'" -pg. 53
"If you want to change the world…you need pessimism of the intellect, optimism of the will." - Antonio Gramsci pg. 54
"When we move some aspect on our lives into software code, it's easy to be seduced by novel possibilities while we overlook how much we may be giving up." -pg.57
"'Good programmers know what to write,' Eric Raymond had written in 'The Cathedral and the Bazaar. 'Great ones know what to rewrite (and reuse)'" -pg.60
"For programmers, just as for writers and artists and everyone whose work involves starting with a blank slate, the 'funnest' time of a project often falls at the very beginning, when worlds of giddy possibility lie open, and before painful compromises have shut any doors." -pg.64
"Just as dogs often come to resemble their owners, it seems that programming languages end up reflecting the temperaments and personalities of their creators in some subtle way." -pg.72
"Front ends are supposed to be elegant, intuitive, versatile; back ends are supposed to be invisible, efficient, rock-solid. The front end talks to people; the back end talks to bits." -pg.86
"'most programmers like to program. Some of them would rather program than eat or bathe.. Most of them would much rather cut code than chase documentation or search catalogs to try to figure out some other stupid programmer's idiotic work…Other things being equal, programmers design and build from scratch rather than recycle'" -pg. 98 (Larry Constantine)
- Stories behind name of Yahoo and Spam
"Here is one of the paradoxes of the reusable software dream that programmers keep rediscovering: There is almost always something you can pull off the shelf that will satisfy many of your needs. But usually the parts of what you need done that your off-the-shelf code won't handle are the very parts that make your new project different, unique, innovative–and they're why you're building it in the first place." -pg. 102
"There's an old saying: I can make it for you fast, cheap, or good. Pick any two." -pg.119
"One great irony inherent in the management of software projects is that despite the digital precision of the materials programmers work with the enterprise of writing software is uniquely resistant to measurement." -pg.126
"There is no reliable relationship between the volume of code produced and then state of completion of a program, its quality, or its ultimate value to a user" -pg.127
"Whatever the cause of the rising autism rates–whether Silicon Valley is conducting a vast experiment by inbreeding geeks or unrelated factors are responsible–there is something unsettling about the parallels between the autistic profile and the geek personality." -pg.134
"A celebrated…bit of graffiti from MIT captures this: 'I would rather write programs to help me write programs than write programs.'" -pg.142
"'The question is,' said Mitch Kapor, deep in the middle of a long meeting in a series of long meetings, "How do we sequence things to avoid spending an infinite amount of time before anything useful happens?' 'It's only infinite of you're stuck in a loop,' Hertzfeld replied." -pg.152
"In the annals of software history, Chandler's disappointing pace is not the exception but the norm. In this field, the record suggests that each driver finds a different way to run off the road, but sooner or later nearly all of them end up in a ditch." -pg. 173
"Don't expect me to get anywhere big in any kind of short time frame. I've been doing Linux for thirteen years, and I expect to do it for quite some time still. If I had expected to do something that big, I'd never have started." -pg. 174 (Torvalds)
"The spec is a programmer's bible, and, typical, the programmer is a fundamentalist." -pg.181
"Everybody who has success, especially when it's young, wonders: Was it luck, or was it skill? Well, it's a little of both. If you can do another really great one, it shows the world something." -pg. 207
"dogfooding…had the more modest and pragmatic aim of speeding up bug-finding and big-fixing by shoving developed' noses into their products' flaws." -pg. 209
"When people ask for numbers that far out, the traditional thing that engineers do is make them up." -pg. 219
"programmers are like carpenters or stonemasons–stewards of a body of knowledge gained by experience and passed along by tradition and apprenticeship." -pg. 250 (Brian Hayes)
"The real goal of a methodology is to sell books, not to actually solve anybody's problem." -pg. 257 (Joel Spolsky)
"Software developers are frequently portrayed as foot soldiers on death marches in pitched corporate battles. They take on missions and struggle to accomplish them under rapidly shifting circumstances and fog-of-war-style visibility. And they frequently develop that combination of fatalism and perseverance that has marked battlefield veterans throughout history." pg. 259
"Where you find software success stories, you invariably find people who are good at saying no." -pg. 260
"Flexibility is overrated. Constraints are liberating." -pg. 262 (DHH)
"To believe that we already know all the possible uses for software is to assume that the programs we already possess satisfy all our needs and that people are going to stop seeking something better." -pg. 266
"The 'great shame of computer science' is that, even as hardware speeds up, software fails to improve." -pg. 291
"Of all the things you can spend a lot of money on, the only things you expect to fail frequently are software and medicine." -pg. 292 (Jaron Lanier)
"That little drama is repeated again and again for each of us. We relive the whole history of computer science in our own lives and educations. We start off writing little programs–'Hello World' or whatever it might be. Everyone has a wonderful experience. They start to love computers. They've done some little thing that's just marvelous." -pg. 294
"The road to wisdom?–Well, its plain/and simple to express:/Err/and err/and err again/but lesss/and less/and less." - Piet Hein (pg 306).
"It always takes longer than you expect, even when you take into account Hofstadter's Law." - Hofstadter's law. pg. 331
"When people ask me when something will be finished, I respond, 'It will be ready sooner if you help.'" - Richard Stallman pg. 333
"Software development lacks one key element–an understanding of what it means to be 'Done.'" -pg. 337 (Alan Cooper)
"In the short term we always underestimate how hard things are, but in the long term we underestimate how big changes are." -pg. 353 (Ray Kurzweil)
Sign into Goodreads to see if any of your friends have read
Dreaming in Code.
Sign In »
Reading Progress
August 4, 2012
–
Started Reading
August 4, 2012
– Shelved
September 12, 2012
–
Finished Reading