website statistics Coders at Work: Reflections on the Craft of Programming - PDF Books Online
Hot Best Seller

Coders at Work: Reflections on the Craft of Programming

Availability: Ready to download

Peter Seibel interviews 16 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like h Peter Seibel interviews 16 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: http://www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 16 folks who’ve been kind enough to agree to be interviewed: - Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow - Joe Armstrong: Inventor of Erlang - Joshua Bloch: Author of the Java collections framework, now at Google - Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger - Douglas Crockford: JSON founder, JavaScript architect at Yahoo! - L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 - Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation - Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal - Dan Ingalls: Smalltalk implementor and designer - Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler - Donald Knuth: Author of The Art of Computer Programming and creator of TeX - Peter Norvig: Director of Research at Google and author of the standard text on AI - Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress - Ken Thompson: Inventor of UNIX - Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker What you’ll learn: How the best programmers in the world do their job Who is this book for? Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers.


Compare

Peter Seibel interviews 16 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like h Peter Seibel interviews 16 of the most interesting computer programmers alive today in Coders at Work, offering a brand-new companion volume to Apress’s highly acclaimed best-seller Founders at Work by Jessica Livingston. As the words "at work" suggest, Peter Seibel focuses on how his interviewees tackle the day–to–day work of programming, while revealing much more, like how they became great programmers, how they recognize programming talent in others, and what kinds of problems they find most interesting. Hundreds of people have suggested names of programmers to interview on the Coders at Work web site: http://www.codersatwork.com. The complete list was 284 names. Having digested everyone’s feedback, we selected 16 folks who’ve been kind enough to agree to be interviewed: - Frances Allen: Pioneer in optimizing compilers, first woman to win the Turing Award (2006) and first female IBM fellow - Joe Armstrong: Inventor of Erlang - Joshua Bloch: Author of the Java collections framework, now at Google - Bernie Cosell: One of the main software guys behind the original ARPANET IMPs and a master debugger - Douglas Crockford: JSON founder, JavaScript architect at Yahoo! - L. Peter Deutsch: Author of Ghostscript, implementer of Smalltalk-80 at Xerox PARC and Lisp 1.5 on PDP-1 - Brendan Eich: Inventor of JavaScript, CTO of the Mozilla Corporation - Brad Fitzpatrick: Writer of LiveJournal, OpenID, memcached, and Perlbal - Dan Ingalls: Smalltalk implementor and designer - Simon Peyton Jones: Coinventor of Haskell and lead designer of Glasgow Haskell Compiler - Donald Knuth: Author of The Art of Computer Programming and creator of TeX - Peter Norvig: Director of Research at Google and author of the standard text on AI - Guy Steele: Coinventor of Scheme and part of the Common Lisp Gang of Five, currently working on Fortress - Ken Thompson: Inventor of UNIX - Jamie Zawinski: Author of XEmacs and early Netscape/Mozilla hacker What you’ll learn: How the best programmers in the world do their job Who is this book for? Programmers interested in the point of view of leaders in the field. Programmers looking for approaches that work for some of these outstanding programmers.

30 review for Coders at Work: Reflections on the Craft of Programming

  1. 4 out of 5

    Todd N

    One of my many, many areas of deep intellectual insecurity is computer programming. As a kid I remember writing BASIC programs on paper in the backseat of the car during family trips to Florida. I also remember spending hours on my Vic 20 as a kid and even crashing it a few times trying to execute 6502 assembly with POKE and JMP. I whizzed through FORTRAN and Pascal my freshman year at Purdue. Then tragedy struck the next year as I got my first B in college from a microprocessor class based on the One of my many, many areas of deep intellectual insecurity is computer programming. As a kid I remember writing BASIC programs on paper in the backseat of the car during family trips to Florida. I also remember spending hours on my Vic 20 as a kid and even crashing it a few times trying to execute 6502 assembly with POKE and JMP. I whizzed through FORTRAN and Pascal my freshman year at Purdue. Then tragedy struck the next year as I got my first B in college from a microprocessor class based on the Motorola 6809. Later I had to drop a class in C because I could not get my head around pointers. After that I embraced the beautiful equations of Maxwell and Laplace and disdained the impure applied science of computers. A few years later I was in Silicon Valley begging for a job working with computers after seeing the bleak career of an RF engineer as a coop student. It was a smart move, but even after working in high tech for 20 years I still feel sometimes like I'm on the outside looking in. So I was eager to read these interviews with 15 luminaries in computer science and maybe get the answers to questions I was always too embarrassed to ask. It felt very satisfying to read, and I was not disappointed at all. Some of the interviews were dry and scholarly, but most were very interesting and thoughtful. I eventually had to put post-it notes on the inside cover to write down all the names and concepts that I need to follow up on now that I'm done with this book. It's a shame that none of the coders is as famous as the founders interviewed in the very similar book Founders At Work. Ken Thompson and Peter Norvig were the only two I had heard of before reading this book. Some of these interviews, notably with Brad Fitzpatrick and Ken Thompson, made me want to put the book down and do a Wayne's World-esque "I'm not worthy!" genuflection. The biggest surprise in this book is that almost everyone mentioned using print statements as their main method of debugging programs. I always felt like I was cheating when I did this. But hey if it's good enough for them... Other surprises: A lot of these people work for Google and are surprisingly open about the processes used there. Norvig's comments on the hiring process got some news coverage when the book came out. I guess the Google PR people don't harass the big shots as much as the rest of their people. Another surprise was hearing some of these people complaining about C and C++. I dutifully plowed my way through K&R (and may do so again), but I never thought to voice my complaints out loud. Fran Allen in particular has harsh things to say about C. ("We have seriously regressed, since C developed. C has destroyed our ability to advance the start of the art...") Someone else (forget who) said that he never wanted a degree in CS because it was like getting a degree in Microsoft. Equating computer science with trade school was my snobby rationalization for not pursuing computer science, but most of the people interviewed described what they did as a craft. I think that is more accurate. Highly recommended. Now I want to find a copy of Programmers at Work, released more than 20 years before this book, interviewing people like Bill Gates and John Warnock. I wonder what the people in Coders At Work will be doing in 20 years.

  2. 5 out of 5

    Joey

    What felt missing to me, and why this is only 4 stars, was any attempt to pull the interviews together and synthesize something from them. Instead, we get a book where, for example, N-1 coders are asked if they read Knuth right through, or use it for reference, or have not read it; and this is followed by Knuth basically demolishing the foundations of any conclusions you might be able to make from their answers, with a offhand comment that "I sometimes wonder if I can read them." Anyway, this book What felt missing to me, and why this is only 4 stars, was any attempt to pull the interviews together and synthesize something from them. Instead, we get a book where, for example, N-1 coders are asked if they read Knuth right through, or use it for reference, or have not read it; and this is followed by Knuth basically demolishing the foundations of any conclusions you might be able to make from their answers, with a offhand comment that "I sometimes wonder if I can read them." Anyway, this book was a much happier book for me than Beautiful Code. The interview style does mean that you feel you get to know most of the participants, and there is plenty of humbling and inspirational stuff, lots of interesting history, as well as lots of places where these big names show they're only human too -- for example, coder after coder fesses up to using print statements for debugging. Seibel got access to a great set of people, gave some quite good interviews where he managed some impressive followup questions on a wide and historically deep set of topics, and somehow got it to all hold together. Well done.

  3. 5 out of 5

    Michael Scott

    Coders at Work is one long read into the lives of several fantastic computer scientists, the software-writing variety. Peter Seibel interviews sixteen "programmers", among them Joe Armstrong (Erlang), Brad Fitzpatrick (OpenID, memcached), Simon Peyton Jones (Haskell), THE Donald Knuth, Peter Norvig (AI), and Ken Thompson (UNIX). A few of the missing topics: high-performance computing, social networking, peer-to-peer file-sharing, more Internet. Each interview goes over a number of standard questi Coders at Work is one long read into the lives of several fantastic computer scientists, the software-writing variety. Peter Seibel interviews sixteen "programmers", among them Joe Armstrong (Erlang), Brad Fitzpatrick (OpenID, memcached), Simon Peyton Jones (Haskell), THE Donald Knuth, Peter Norvig (AI), and Ken Thompson (UNIX). A few of the missing topics: high-performance computing, social networking, peer-to-peer file-sharing, more Internet. Each interview goes over a number of standard questions, ranging from biographical to technical to philosophical: How did you learn to program? What is the role of documentation? What is the role of testing? What is the worst bug you have faced in your career? What is the best way to debug? What is the role of computer science courses, in particular assembly, in your career? What is the role of math in your career? How big were the teams in which you worked? What is your best achievement? Is your work science, engineering, or art? How does your schedule affect your family and social life? Seibel also tailors questions for each interviewee, knowing well their biography and confronting them about milestones, contacting former professors and current friends, creating ties between different interviewees, etc. The book is very long, but this is because each interview tries to capture not only the answers, but also the essence of the interlocutor. We get to appreciate the kindness and open spirit of Simon Peyton Jones, the non-nonsense attitude of Donald Knuth, the die-hard approach of Joe Armstrong, etc. I found this immensely appealing and well-worth the wordiness. A few of the lessons: - Most interviewees have started programming early, and among their early programs were games; - Most interviewees had a middle-class to rich family and did not have to struggle much in life; - There is no programming language that can do all, but C++ is widely regarded as an abomination; - Modern programming languages include C (performance), Python (prototyping), Erlang (distributed, fault-tolerant); - Assembly is regarded as either still important and relevant as part of computer science curriculum, or completely outdated--in the latter case, it still teaches you how to think about low-level problems; - Math is not seen as important as a whole, but computer scientists should learn parts depending on their branch of work (cryptography, graphics, etc. do require math); - The most difficult to debug programs are related to concurrency, parallelism, multi-users; - The most successful pieces of software are written alone or in small teams; once the team enlarges past, say, ten people, the ability to deliver becomes rare; - Working in this field does not necessarily lead to long hours, but it drains physically and psychically, and affects negatively family and social life; - Often, the best achievement is just shipping. All in all, an amazing book about computer scientists, and an absolute must read for anyone with aspirations for this industry.

  4. 4 out of 5

    Dagmar

    The book was requested by my 20-year old son, who is a computer science major studying programming language, for his birthday. I browsed through it, found it interesting and ended up reading the whole thing. This book satisfied the geek in me. It was self-validating for me to read about others who are passionate about software development - its not something you read about often. Quite a few of the people interviewed were actually quite a bit older than me - so it was interesting to read about t The book was requested by my 20-year old son, who is a computer science major studying programming language, for his birthday. I browsed through it, found it interesting and ended up reading the whole thing. This book satisfied the geek in me. It was self-validating for me to read about others who are passionate about software development - its not something you read about often. Quite a few of the people interviewed were actually quite a bit older than me - so it was interesting to read about the evolution of the craft that I've seen come and go. It would have been interesting to include more (and younger) females in the book - only one was interviewed.

  5. 4 out of 5

    Michael

    Four start with a big asterisk. Overall, this is a fascinating book that any programmer will enjoy. Seibel does a nice job asking questions that are particular to each person, but also trying to get a variety of opinions on the same questions that face all programmers. (E.g., how do you debug? how do you read new code? how do you identify good programmers?) The problem with the book is the interview with Fran Allen. If you look up "women" in the index, you'll find about a dozen pages, all of them Four start with a big asterisk. Overall, this is a fascinating book that any programmer will enjoy. Seibel does a nice job asking questions that are particular to each person, but also trying to get a variety of opinions on the same questions that face all programmers. (E.g., how do you debug? how do you read new code? how do you identify good programmers?) The problem with the book is the interview with Fran Allen. If you look up "women" in the index, you'll find about a dozen pages, all of them in Allen's interview. If gender equality is an important issue in computer science, Seibel should've treated it as such and asked more than just the one woman about it. If not, why is he wasting space on it? As it is, Seibel treats gender equality as an issue for women in engineering to solve, which is the worst possible attitude to have.

  6. 4 out of 5

    Michael

    The best book that I read all year was also the best book I read all year. -m

  7. 4 out of 5

    Amar Pai

    I enjoyed this, but it's something you're only going to care about if you're a programmer by trade. The book is a collect of interviews w/ a lot of programming luminaries, ranging from jwz to ken thompson (unix guy) to the dude who wrote livejournal to the guy who wrote the first "internet-message-processor" (IMP)-- essentially the world's first internet router. a lot of the older dudes recount starting off on punch card machines or time share PDPs.... it's interesting to get their thoughts on ho I enjoyed this, but it's something you're only going to care about if you're a programmer by trade. The book is a collect of interviews w/ a lot of programming luminaries, ranging from jwz to ken thompson (unix guy) to the dude who wrote livejournal to the guy who wrote the first "internet-message-processor" (IMP)-- essentially the world's first internet router. a lot of the older dudes recount starting off on punch card machines or time share PDPs.... it's interesting to get their thoughts on how things have changed. the interviewer asks similar questions to all of them but the questions are pretty good. mostly it confirms what i've always believed, which is that software developers are more like carpenters than engineers or scientists. is programming a young man's game? is provability a worthwhile pursuit? does anybody not debug by inserting a ton of print statements? yes, kinda and no

  8. 4 out of 5

    Simon Eskildsen

    Terrific account of programming adventures and convictions by some of the disciplines stars. My favorite chapters were on Jamie Zawinsky; Netscape, Brad Fitzpatrick; author of Memcached and now working on Go at Google, Douglas Crockford, Joe Armstrong, Simon Peyton Jones, and Peter Norvig. I found most of the other chapters fairly weak, hence the 3-star rating, despite the interviews with the ones named easily being 4-5 stars. It's interesting how a few of them have somewhat quit the disciplines Terrific account of programming adventures and convictions by some of the disciplines stars. My favorite chapters were on Jamie Zawinsky; Netscape, Brad Fitzpatrick; author of Memcached and now working on Go at Google, Douglas Crockford, Joe Armstrong, Simon Peyton Jones, and Peter Norvig. I found most of the other chapters fairly weak, hence the 3-star rating, despite the interviews with the ones named easily being 4-5 stars. It's interesting how a few of them have somewhat quit the disciplines and now live far away from computers. I can see the appeal in that, but, I can't really see myself doing it long-term, which many of them have done. The amount of commonalities in what they've each discovered is great. They alll describe it in slightly different ways, however: solving the problem at the right level of abstraction, not using every feature under the sun, defining data structures before anything else, and encouraging that atmosphere where people have enough slack in their workday to experiment—but also enough direction to be successful and not screw around all day. A phrase that Simon Peyton Jones used a lot I haven't been able to stop thinking about is: "[..] your code should obviously have no bugs rather than having no obvious bugs." I like that a lot. I can really appreciate that from all the code that's come back to bite me where I've said "this is solved now!", where, really, it's band-aid onto a ship rather than taking the ship back to the shipyard.

  9. 4 out of 5

    Mike

    I never read books on programming, or coding, or whatever. Maybe that's a personal flaw. It's been my job for my entire adult life, and a little bit before that. But I grabbed this book after seeing an image of the cover, and I ended up devouring it. The book is a set of interviews with some of the supermen of programming. Sometimes very, very technical. Sometimes funny. Sometimes I felt like an idiot (these people are incredibly, incredibly good) but it also reminded me of the reasons I got into I never read books on programming, or coding, or whatever. Maybe that's a personal flaw. It's been my job for my entire adult life, and a little bit before that. But I grabbed this book after seeing an image of the cover, and I ended up devouring it. The book is a set of interviews with some of the supermen of programming. Sometimes very, very technical. Sometimes funny. Sometimes I felt like an idiot (these people are incredibly, incredibly good) but it also reminded me of the reasons I got into programming in the first place, as a kid, and later on, and it's good to know a lot of the modern developments in the industry that I hate, a lot of these old guys do too. Don't go looking for this to be a practical how-to. I wouldn't suggest it to anyone who hasn't been programming for years already, but I did recommend it immediately to a couple of old friends. It's such a breath of fresh air compared to an endless parade of frameworks and Ruby and Patterns and whatever other vomit-inducing bullshit is the latest development fad. These guys were there, doing the heavy lifting, when computers filled entire rooms, all the way through to now where a sizeable chunk of the interviewees work at Google. It broadens your perspective, not only to see where we started, but some really interesting ways forward. And yeah, some of these guys are legitimate fossils. Diff? Source control? Subroutines? It's still worth it.

  10. 5 out of 5

    Jo Oehrlein

    Favorite quotes: Zawinski: "It's great to rewrite your code and make it cleaner and by the third time it'll actually be pretty. But that's not the point--you're not here to write code; you're here to ship products." Zawinski: "If you don't understand how something works, ask someone who does. A lot of people are skittish about that. And that doesn't help anybody. Not knowing something doesn't mean you're dumb--it just means you don't know it yet." Crockford: "Readability of code is now my first pri Favorite quotes: Zawinski: "It's great to rewrite your code and make it cleaner and by the third time it'll actually be pretty. But that's not the point--you're not here to write code; you're here to ship products." Zawinski: "If you don't understand how something works, ask someone who does. A lot of people are skittish about that. And that doesn't help anybody. Not knowing something doesn't mean you're dumb--it just means you don't know it yet." Crockford: "Readability of code is now my first priority. It's more important than being fast, almost as important as being correct, but I think being readable is actually the most likely way of making it correct." Crockford: "Part of what makes programming difficult is most of the time we're doing stuff we've never done before. If it was stuff that had been done before we'd be reusing something else. For most of what we do, we're doing something that we haven't done before. And doing things that you haven't done before is hard. It's a lot of fun, but it's difficult." Crockford: "Programmers are optimistic. And we have to be because if we weren't optimists we couldn't do this work. Which is why we fall prey to things like second systems, why we can't schedule our projects, why this stuff is hard." Eich: "It's going to take several tries to know what the hell you're doing. And then when you have a design moer firm you'll stick with it and you'll start patching it more, and you'll get to this mature state where we creak with patches. It's kind of an evolutionary dead-end for code." Eich: "You don't want to write too many words, prose or code. In some ways the code should speak for itself at the small level. It's at the bigger level, the big monster function or the module boundary, that you need docs." Bloch: "Engineers have things that they're good at and things they're not so good at. There are people who would like to pretend that this isn't so, that engineers are interchangeable, and that everyone can and should be a total generalist. But this ignores the fact that there are people who are stunningly good at certain things and not necessarily so good at other things. If you force them all to do everything, you'll probably make mediocre products." Bloch: "There's this problem, which is, programming is so much of an intellectual meritocracy and often these people are the smartest people in the organization; therefore they figure they should be allowed to make all the decisions. But merely the fact that they're the smartest people in the organization doesn't mean they should be making all the decisions, because intelligence is not a scalar quantity; it's a vector quantity. And if you lack empathy or emotional intelligence, then you shouldn't be designing APIs or GUIs or languages." Armstrong: "Most of software development goes on in your head anyway." Armstrong: "Over the years I've kind of made a generic mistake and the generic mistake is to not open the black box. To mentally think, this black box is so impenetrable and so difficult that I won't open it....I can't say beginner programmers should open up all these abstractions. But what I am saying is you should certainly consider the possibility of opening them. Not completely reject the idea. It's worthwhile seeing if the direct route is quicker than the packaged route." Armstrong: "And what I've learned is, programming when you're tired, you write crap and you throw it all away the next day." Armstrong: "The really good programmers spend a lot of time programming." Peyton Jones: "I think my default is not to write something very general to begin with. So I try to make my programs as beautiful as I can but not necessarily as general as I can. There's a difference. I try to write code that will do the task at hand in a way that's as clear and perspicuous as I can make it." Peyton Jones: "Programming is such fun. Why would you ever want not to do it?" Peyton Jones: "That's the worst thing about long-lived programs...that they gradually become ugly."

  11. 4 out of 5

    Sai

    I am pretty glad I ended up reading this book. This book is structured as a set of interviews of veteran software developers; some well known: like Don Knuth, Brendan Eich, Ken Thompson and Peter Norvig, while others I had never heard of. The interview asked a similar set of questions to all the people covered in the book, that covered topics such as: their workflow, their thought process while planning system design, philosophical takes on problem solving, and programming as a profession over th I am pretty glad I ended up reading this book. This book is structured as a set of interviews of veteran software developers; some well known: like Don Knuth, Brendan Eich, Ken Thompson and Peter Norvig, while others I had never heard of. The interview asked a similar set of questions to all the people covered in the book, that covered topics such as: their workflow, their thought process while planning system design, philosophical takes on problem solving, and programming as a profession over the years, and some free-form meandering. The breadth of folks covered was pretty valuable. Almost each of the interviewees had something unique to offer in terms of sharing their experience or offering up an insight about their work that they had learned over multiple decades in the profession.

  12. 5 out of 5

    Ben Haley

    Coders at work transcribes 16 some odd interviews of both new and old school programming giants culminating with Donald Knuth. For me it was the right book at the right time. After a year of studying algorithms, languages, and hardware, it was good to hear the voices of experience detailing the struggles of their day-to-days. In some cases their lessons reassured me that I hadn't missed some magic programming spells, in others I felt grossly outmatched by their experience and casual referencing Coders at work transcribes 16 some odd interviews of both new and old school programming giants culminating with Donald Knuth. For me it was the right book at the right time. After a year of studying algorithms, languages, and hardware, it was good to hear the voices of experience detailing the struggles of their day-to-days. In some cases their lessons reassured me that I hadn't missed some magic programming spells, in others I felt grossly outmatched by their experience and casual referencing of computers, languages, and tools that were totally unknown to me. Besides the well-appreciated name drops, the central message of this book was really quite simple: To be a good programmer, program and if you come across a good program read its code. Makes sense in retrospect.

  13. 5 out of 5

    Josh

    Not quite what I expected. I was hoping for more information and less blathering--"I worked here, then here, and then I went back to that one place because they offered more vacation time. Then I quit again because I didn't like it anymore. Then I had a kid. Then I stopped programming." I understand the desire to explore the interviewee's personal backgrounds, but isn't this book supposed to be about the practice of programming? I can't say I learned much from this book, and since the vast majori Not quite what I expected. I was hoping for more information and less blathering--"I worked here, then here, and then I went back to that one place because they offered more vacation time. Then I quit again because I didn't like it anymore. Then I had a kid. Then I stopped programming." I understand the desire to explore the interviewee's personal backgrounds, but isn't this book supposed to be about the practice of programming? I can't say I learned much from this book, and since the vast majority of the important stuff has been discussed at length elsewhere, I suggest reading something else, unless you're really interested in these programmers' curriculum vitae.

  14. 4 out of 5

    Ignacio Torres Masdeu

    Coders at Work is not a technical book: any computing aficionado with curiosity towards computing history will enjoy it and programmers can learn a lot from the first hand experiences of computing legends. This is the second time I have read it from cover to cover but I also pick on some interviews from time to time. The fact that Seibel is a class 1 programmer himself makes the interviews quite enjoyable.

  15. 4 out of 5

    Vladimir

    I loved it. It's light to read, it contains interviews with some of the best programmers/computer scientists/hackers, giving their opinion on many cool topics, usually differing between themselves. It also presents with a good overview of the history of CS. I loved it. It's light to read, it contains interviews with some of the best programmers/computer scientists/hackers, giving their opinion on many cool topics, usually differing between themselves. It also presents with a good overview of the history of CS.

  16. 4 out of 5

    Yevgeniy Brikman

    A fun read to hear the stories of famous programmers and to understand how they think about their specialties. It's inspiring to see that almost all of them come across as normal, humble people that are started like everyone else. Unfortunately, not all the interview questions brought out interesting responses: the questions that focused on the programmer's expertise and history were great; the canned/rigid questions like "how do you read code" or "do high level degrees matter" were less great, A fun read to hear the stories of famous programmers and to understand how they think about their specialties. It's inspiring to see that almost all of them come across as normal, humble people that are started like everyone else. Unfortunately, not all the interview questions brought out interesting responses: the questions that focused on the programmer's expertise and history were great; the canned/rigid questions like "how do you read code" or "do high level degrees matter" were less great, often resulting in "it depends" or vague answers. Some fun quotes from the book: Zawinski: Your competitor’s six-month 1.0 has crap code and they’re going to have to rewrite it in two years but, guess what: they can rewrite it because you don’t have a job anymore. Zawinski: I find that getting something on the screen as soon as possible really helps focus the problem for me. It helps me decide what to work on next. Fitzpatrick: In practice, nothing works. There are all these beautiful abstractions that are backed by shit. The implementation of libraries that look like they could be beautiful are shit. Seibel: any piece of code contains bits of embedded knowledge—little bits of cruft that are hard-won functionality that you don’t think of when you say, “Oh, we can just rewrite this.” Crockford: I haven’t figured out a sufficiently useful way of testing units of JavaScript yet. Eich: While producing a lot of code is still important, what has interested me—and this is something that we talked about at Netscape when we talked about their track for principal engineer—is somebody who isn’t management but still has enough leadership or influence to cause other programmers to write code like they would write without them having to do it, because you don’t have enough hours in the day or fingers. Bloch: when you choose a language, you’re choosing more than a set of technical trade-offs—you’re choosing a community. It’s like choosing a bar. Yes, you want to go to a bar that serves good drinks, but that’s not the most important thing. It’s who hangs out there and what they talk about. And that’s the way you choose computer languages. Over time the community builds up around the language—not only the people, but the software artifacts: tools, libraries, and so forth. That’s one of the reasons that sometimes languages that are, on paper, better than other languages don’t win—because they just haven’t built the right communities around themselves. Bloch: Many customers won’t tell you a problem; they’ll tell you a solution. Bloch: But the fundamental rule is, write the code that uses the API before you write the code that implements it. Bloch: there are some people who, in Kevin Bourrillion’s words, “lack the empathy gene.” You aren’t going to be a good API designer or language designer if you can’t put yourself in the shoes of an ordinary programmer trying to use your API or language to get something done. Armstrong: To me programming isn’t about typing code into a machine. Programming is about understanding. Armstrong: the central core of functional programming is the idea of nonmutable state—that x isn’t the name of a location in memory; it’s a value. Armstrong: Then there’s—I don’t know if I read it somewhere or if I invented it myself—Joe’s Law of Debugging, which is that all errors will be plus/minus three statements of the place you last changed the program. Armstrong: The code shows me what it does. It doesn’t show me what it’s supposed to do. I think the code is the answer to a problem. If you don’t have the spec or you don’t have any documentation, you have to guess what the problem is from the answer. You might guess wrong. I want to be told what the problem is. Armstrong: You were asking earlier what should one do to become a better programmer? Spend 20 percent of your time learning stuff—because it’s compounded. Armstrong: I think the lack of reusability comes in object-oriented languages, not functional languages. Because the problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle. If you have referentially transparent code, if you have pure functions — all the data comes in its input arguments and everything goes out and leave no state behind — it’s incredibly reusable. Jones: This was my main insight about small companies: to be an entrepreneur you need to get energy from stressful situations involving money, whereas my energy is sapped by stressful situations involving money. Jones: when the limestone of imperative programming is worn away, the granite of functional programming will be observed. Jones: One thing that is hard, even for professional software engineers and developers, is to viscerally grok the size of the artifacts on which we work. You’re looking at the Empire State Building through a 1-foot-square porthole, so it’s difficult to have a real feel for how gigantic the structure you’re looking at is. And how it’s interconnected. Deutsch: Language systems stand on a tripod. There’s the language, there’s the libraries, and there are the tools. And how successful a language is depends on a complex interaction between those three things. Allen: Part of it is that there’s the potential for new ideas every day. One sees something, and says, “Oh, that’s new.” The whole field gets refreshed very frequently. It’s very exciting to think about what the potential for all of this is and the impacts it can have. Isaac Asimov made a statement about the future of computers—I don’t know whether it’s right or not—that what they’ll do is make every one of us much more creative. Computing would launch the age of creativity. Knuth: I think that’s a fundamental error made by scientists in every field. They don’t realize that when you’re learning something you’ve got to see something at all levels. You’ve got to see the floor before you build the ceiling. That all goes into the brain and gets shoved down to the point where the older people forget that they needed it. Knuth: I try to give the key ideas and I try to simplify them the best I can, but then what happens is every five pages of my book is somebody’s career. Knuth: The first rule of writing is to understand your audience—the better you know your reader the better you can write, of course. The second rule, for technical writing, is say everything twice in complementary ways so that the person who’s reading it has a chance to put the ideas into his or her brain in ways that reinforce each other. Knuth: Pretty much a constant in my experience, over a long period of years, is that every time I’m exposed to 100 people from some population or other, except majors in computer science, 2 of them are programmers in the sense that they really resonate with the machine.

  17. 5 out of 5

    Sirwan

    I loved it!

  18. 5 out of 5

    Guðmundur

    Great motivation and inspiration. Interesting to learn from the great. This is a great book to pick up and read in short bursts. The book is packed with wisdom.

  19. 4 out of 5

    Nathan Glenn

    This was an awesome read. It contains 15 interviews with programmers of well-known skill, giving their opinion on history, current state and future, sharing their valuable and now unobtainable experience programming with wires, switches and punch cards, and explaining what programming means to them personally. There is a lot of diversity here, spanning the whole theoretical/practical spectrum and including some who left the field for other work (running a bar, composing music). The historical vie This was an awesome read. It contains 15 interviews with programmers of well-known skill, giving their opinion on history, current state and future, sharing their valuable and now unobtainable experience programming with wires, switches and punch cards, and explaining what programming means to them personally. There is a lot of diversity here, spanning the whole theoretical/practical spectrum and including some who left the field for other work (running a bar, composing music). The historical views offered are quite valuable. Many of the speakers have strong negative opinions about technologies that are quite standard now: C/C++, object oriented programming, even API's; this was a valuable exercise in re-examining the basics. The speakers show that sometimes technology has regressed, and they wish they could have back some of the methods used in the 60's and 70's. It's funny to see that if Perl is mentioned, they either hate it or love it. Java gets mostly negative comments, though a number of the authors work in it regularly. Python is mostly positive, I think. The one that stands out is Haskell, which, of those who mention it, mostly adore it (one speaker is cautious, saying that it is not a cure-all, though still an improvement). They share war stories about tracing down bugs; what they think makes a great programmer and how they interview; how they work and how they dive into a new code base; what they think of Knuth, his books, and literate programming; how they started programming and what original sources or texts they recommend to budding programmers; artist, scientist, craftsman or writer; and plenty more. The bibliography is nice, but I can't help but think that many sources are mentioned by the speakers but not provided there. Also, the text does not contain references to the bibliography, which makes it harder to use. Actually, what I really want is an index. Hundreds of topics must be covered, and the speakers kind of blur together in my mind. Without an index, there's no way for me to really go back and review specific points. I just have to read it again (though that might not be so bad). All of the chapters are good, but my favorites are Guy Steele and Bernie Cosell. Guy Steele sort of mesmerizes with his imagination of what might be possible in a programming language. Bernie Cosell is extremely pragmatic about code maintenance, and is known for being a master debugger. However, he believes that this reputation is slightly misplaced: "I had two convictions, which actually served me well: that programs ought to make sense and there are very, very few inherently hard problems. Anything that looks really hard or tricky is probably more the product of the programmer not fully understanding what they needed to do and pounding it with a hammer ’til they got code that looked like it did the right thing." So when there is a bug to be found, he looks at it, finds it too convoluted to understand, and just rewrites it simply the way he understands that it should be done. Then the bug is gone, and he is hailed as the bug squasher. He also explains how when he worked for the government and could never get budget approvals for updating designs, he would just update the software design as part of a bug fix, moving the design closer to what was needed. Siebel asks: "have you heard of refactoring?" "No, what is that?" "What you just described." These old-timers really know what they're talking about, even if they haven't kept up with all of the "recent" terminology! The Knuth chapter also contains the best explanation and motivation of literate programming I've ever read; it really made it click, being at the end of a book containing differing opinions and opines of software writing practices. Knuth also explains that TeX is only Turing-complete because the users required it and he had to force in the additional features "kicking and screaming." He seems generally annoyed that so many things end up being Turing complete.

  20. 4 out of 5

    Andrew Leschinsky

    This is probably the best non-technical book on software I have every read, the interviews are amazing - mostly because the people interviewed are total rockstars. The book provides a great indirect overview of industry as a whole. For me personally, working mostly on the web it's too easy to lose sight of the big picture, how huge the world of software really is, how different the challenges are, and how prominent and brilliant are the industry leaders. Highly recommend this one. This is probably the best non-technical book on software I have every read, the interviews are amazing - mostly because the people interviewed are total rockstars. The book provides a great indirect overview of industry as a whole. For me personally, working mostly on the web it's too easy to lose sight of the big picture, how huge the world of software really is, how different the challenges are, and how prominent and brilliant are the industry leaders. Highly recommend this one.

  21. 4 out of 5

    Tom

    If you are thinking about being a programmer, pick any interview from this book and read it. If, after reading it, you aren't excited about programming, then just stop. This is the best book I've ever read that gets inside the mind of a great programmer. True greats, the pioneers of computer science and industry achievement. I learned things about programming, such as the usefulness of monads and closures, that had been previously under appreciated. I found the interviewees to be extremely candid If you are thinking about being a programmer, pick any interview from this book and read it. If, after reading it, you aren't excited about programming, then just stop. This is the best book I've ever read that gets inside the mind of a great programmer. True greats, the pioneers of computer science and industry achievement. I learned things about programming, such as the usefulness of monads and closures, that had been previously under appreciated. I found the interviewees to be extremely candid, with profound answers to such questions as "do you think programming is a young person's game" (with a variety of answers) and "do you think of yourself as a craftsman, engineer, scientist or artist?" A few attitudes shared by most if not all interviewed: -C++ is not a good choice of language -There is no silver bullet for debugging or reading code written by others -Using puzzles in technical interviews is not the best way to determine who to hire -Don Knuth's "The Art of Computer Science" is tough to get through (even for Don himself!) -Get something easy working first before you optimize it I really enjoyed reading Doug Crockford (of Atari, Lucasfilm, Yahoo and JSON fame) talk about JavaScript. I enjoyed hearing Dan Ingalls (implementer of several versions of Smalltalk) talk about teaching a new programmer by tapping into their inner passions, vs. teaching programming for its own sake. I particularly enjoyed reading the Guy Steele interview. Guy, co-creator of Common Lisp and Scheme, talks about magic and programming (pp360-361): "I think it's not an accident that we often use the imagery of magic to describe programming. We speak of computing wizards and we think of things happening by magic or automagically. And I think that's because being able to get a machine to do what you want is the closest thing we've got in technology to adolescent wish-fulfillment." Reading this book helped to recreate the magic of programming for me. I would recommend it to any programmer, old or new. You don't have to read it all straight through either... feel free to pick and choose, without fear of losing context.

  22. 4 out of 5

    Jim

    A great collection of interviews with fifteen different programmers, conducted by a programmer. It's been a long time since I've read a technical book that really resonated with me, but this is one of them. I picked up this book on the recommendation of a programmer who included it in a small collection of great books about programming that included 'The C Programming Language' and 'Programming Pearls' -- two of my favorites. I wasn't disappointed. The collection of programmers here includes a nu A great collection of interviews with fifteen different programmers, conducted by a programmer. It's been a long time since I've read a technical book that really resonated with me, but this is one of them. I picked up this book on the recommendation of a programmer who included it in a small collection of great books about programming that included 'The C Programming Language' and 'Programming Pearls' -- two of my favorites. I wasn't disappointed. The collection of programmers here includes a number of grand masters, including Donald Knuth, Ken Thompson, Jamie Zawinski, Peter Norvig, Guy Steele and Douglas Crockford. While there is a vast array of opinions here, a few common themes emerge: 1) All of them have something to hate about every programming language commonly in use. Some of them have particular favorites, but everyone hates C++ (as opposed to C). 2) Most of these folks will debug using print statements, rather than source level debuggers. Increasingly so as web applications make debugging more complicated. 3) Not a lot of love for integrated programming environments (such as Eclipse or Visual Studio) 4) Many of the older programmers express alarm at the increasing reliance on libraries or packages ("black boxes"), understanding the need for them, but disliking the increasing knowledge gap that has resulted. The programmer I felt the most affinity for was Ken Thompson, who has long been a hero of mine. I found his willingness to rewrite (an abhorrence for some programmers, who wish to create eternal art) refreshing. I loved Zawinski's paean to the lowly screensaver.

  23. 4 out of 5

    Christoffer Ventus

    This book is made out of interviews with influential and well known people from both the academical side and from the industry of software development. It gives the reader a good glimpse of how these people conduct their work and their history with programming and computer science. It was very rewarding and inspiring at times and also burst some bubbles about these hero coders. A lot of the interviewed people are computer language creators or evangelists (Steele, Armstrong, Allen) and many have This book is made out of interviews with influential and well known people from both the academical side and from the industry of software development. It gives the reader a good glimpse of how these people conduct their work and their history with programming and computer science. It was very rewarding and inspiring at times and also burst some bubbles about these hero coders. A lot of the interviewed people are computer language creators or evangelists (Steele, Armstrong, Allen) and many have some connection with Lisp, which I suppose Seibel is interested in. But there was enough variety not to make it a book on computer language design. One thing that bothered me was that in nearly every interview, Seibel tried to make fun of C++. Some of the people used or liked it, but most didn't. I'm not a great fan of C++ myself, but I found it to be very unprofessional in a book like this. It did not enhance the text in any way. At least there was no vi vs. emacs war.

  24. 5 out of 5

    Bob Grommes

    A must-read for any software developer, this book consists of at-length interviews with top talent in the craft. This book drives home that software development is about clear, literate communication and deep thinking about philosophical approaches to problem solving, as much as it's about tools and techniques. It'll also be eye-opening for some to see some of the popular fads and fetishes that these experts call "BS" on. As s software developer I found this book inspiring, invigorating and valid A must-read for any software developer, this book consists of at-length interviews with top talent in the craft. This book drives home that software development is about clear, literate communication and deep thinking about philosophical approaches to problem solving, as much as it's about tools and techniques. It'll also be eye-opening for some to see some of the popular fads and fetishes that these experts call "BS" on. As s software developer I found this book inspiring, invigorating and validating.

  25. 4 out of 5

    Gabi

    I'm not saying that my code is as good as Bernie Cossell's but, as it turns out, I work like he used to. I try to think many steps ahead, I use any change in the client's requirements as a good excuse to fix things that actually work, then feel guilty about the time spent that way but stay hopeful that the resulting increase in elegance and reliability will somehow pay off someday. I'm happy he approves of doing business that way, though it's discouraging that he gave up on the whole field. I'm I'm not saying that my code is as good as Bernie Cossell's but, as it turns out, I work like he used to. I try to think many steps ahead, I use any change in the client's requirements as a good excuse to fix things that actually work, then feel guilty about the time spent that way but stay hopeful that the resulting increase in elegance and reliability will somehow pay off someday. I'm happy he approves of doing business that way, though it's discouraging that he gave up on the whole field. I'm just getting started, and I have the added burden of impending middle age.

  26. 4 out of 5

    Michael Hirsch

    Very good interviews with well known coders. They were all over the spectrum--from some folks who never graduated college, to Stanford professor Knuth. It was good to see how such a disparate group answered the same questions in such different ways. I liked thinking about whether I would want this or that person, who is a far better programmer than I, in my team. There were some I definitely don't want even while I respect their ability. Very good interviews with well known coders. They were all over the spectrum--from some folks who never graduated college, to Stanford professor Knuth. It was good to see how such a disparate group answered the same questions in such different ways. I liked thinking about whether I would want this or that person, who is a far better programmer than I, in my team. There were some I definitely don't want even while I respect their ability.

  27. 5 out of 5

    Amhed

    A bit long on some of the interviews, but a great insight into the minds of highly skilled programmers and how the get stuff done/learn/improve the field forward. If you're into Computer Science or Programming is a good book to have on the nightstand and come back to it at least once a week to read a chapter. A bit long on some of the interviews, but a great insight into the minds of highly skilled programmers and how the get stuff done/learn/improve the field forward. If you're into Computer Science or Programming is a good book to have on the nightstand and come back to it at least once a week to read a chapter.

  28. 4 out of 5

    Jeroen Vaelen

    Valuable resource for programmers who take their work seriously. Throughout the book, the interviewer asks interesting and practical questions. Learning about the perspective of different coders that have proven their worth gives new insights that can help anyone grow in their own development as a software developer.

  29. 5 out of 5

    Nat

    This book is fantastic. It has easy chunks to get through and each interview is with someone very interesting. You get a view into the lives of people who all experienced computers a different way and helped affect the art of programming.

  30. 5 out of 5

    Joan

    A must read for every programmer.

Add a review

Your email address will not be published. Required fields are marked *

Loading...
We use cookies to give you the best online experience. By using our website you agree to our use of cookies in accordance with our cookie policy.