Forgot your password?
typodupeerror
Image

Coders At Work 207

Posted by samzenpus
from the read-all-about-it dept.
Vladimir Sedach writes "Aside from authoring narrowly focused technical books, teaching university courses, or mentoring others in the workplace, programmers don't often get a chance to pass on the knowledge of the practise of programming as a profession. Peter Seibel's Coders at Work takes fifteen world-class programmers and distills their wisdom into a book of interviews with each of them." Keep reading for Vladimir's review.
Coders at Work
author Peter Seibel
pages 632
publisher Apress
rating 8
reviewer Vladimir Sedach
ISBN 978-1430219484
summary How the best programmers in the world do their job
The list of coders interviewed includes some geek household names like Donald Knuth and jwz, but also some not so well-known ones such as Bernie Cosell (one of the programmers behind the ARPANET IMP, the first Internet router) and Fran Allen (compiler pioneer). The full list of people interviewed is available on the book's website. The eras embodied by the interviewees range from the very beginnings of software as we know it today, to the heyday of the Internet boom, when people like Brad Fitzpatrick made their mark.

Seibel himself is a coder and author (having the well-received Practical Common Lisp under his belt). It is then no surprise that the interviews are packed with technical details, which (with one exception, explained below) restricts the intended audience of the book to those already familiar with programming.

Coders at Work manages to communicate the wisdom of programmers of bygone eras, while simultaneously being heavily colored by very contemporary issues. JavaScript, its consequences and its discontents, is a topic recurring throughout the book. More than just a recounting of history, Coders at Work should inspire readers to learn about the wider context of their craft and stop the reinvention of the proverbial wheel decried by several of the interviewees in its pages.

Given the related subject matter, the people interviewed in Coders at Work who played a role in creating major programming languages (Armstrong, Eich, and Steele), and close publication dates of the two books, inevitable comparisons will be drawn between Coders at Work and Federico Biancuzzi and Shane Warden's Masterminds of Programming (I previously reviewed Masterminds of Programming on my blog). There is a lot of common ground between the two books in terms of technical areas covered, but Coders at Work clearly comes out on top.

Part of the reason has to do with the fact that Seibel's choice of interviewees is stellar. Masterminds of Programming's niche focus on programming language designers meant that its authors had a tougher job than Seibel, but details like the omission of Alan Kay (creator of Smalltalk and one of the most influential programming language designers in the field's history) from Masterminds are nothing short of dumbfounding.

Just as important to making Coders at Work a good book is the fact that Seibel is a great interviewer. Seibel's questions felt more open-ended than those in Masterminds, and the resulting interviews have a flow and narrative that makes them engrossing to read and gives the programmers interviewed a chance to explore details in-depth.

A refreshing aspect of Coders at Work are the interviewees who don't shy away from strong opinions or humor, as shown in this remark by Peter Deutsch, "I think Larry Wall has a lot of nerve talking about language design--Perl is an abomination as a language." One aspect where Coders unintentionally shines is as a guide to finding and hiring programming talent. Even non-technical managers will benefit greatly by reading those excerpts of the interviews concerned with hiring programmers.

Another unexpected aspect of the book is the breadth of topics discussed — everything from debugging machine code to women's issues in computing workplace and education.

One area where Coders could stand improvement is in its length. Not all of the coders interviewed possessed the gift of brevity, and many interview answers could have been edited to reduce their length without affecting the message.

In her interview, Fran Allen makes an interesting assertion — programming and computer science need to become more socially relevant. Other scientific and engineering fields are filled with well-known personalities, described in prominent interviews, biographies, and major Hollywood films. The only "software people" to appear in the public spotlight are the CEOs of major software firms. Ultimately, its role in helping programming assert its status as a socially relevant profession may be the most important contribution of Coders at Work.

You can purchase Coders at Work from amazon.com. Slashdot welcomes readers' book reviews -- to see your own review here, read the book review guidelines, then visit the submission page.

*

This discussion has been archived. No new comments can be posted.

Coders At Work

Comments Filter:
  • Microserfs (Score:5, Interesting)

    by proslack (797189) on Wednesday September 02, 2009 @02:01PM (#29288595) Journal
    I still think "Microserfs" is the best book about coders, ever. I worked as a programmer in Seattle for a year back in the late 90's and it was pretty much dead on.
  • by line-bundle (235965) on Wednesday September 02, 2009 @02:21PM (#29288881) Homepage Journal

    How does the info in this book compare to Code Complete (2)?

  • by doom (14564) <doom@kzsu.stanford.edu> on Wednesday September 02, 2009 @02:32PM (#29289047) Homepage Journal

    A refreshing aspect of Coders at Work are the interviewees who don't shy away from strong opinions or humor, as shown in this remark by Peter Deutsch, "I think Larry Wall has a lot of nerve talking about language design--Perl is an abomination as a language."

    Yes, it must be refreshing all right, listening to aging Computer "Scientists" reciting crap that's been stale for years. It certainly is courageous for an ACM member to continue the smear campaign against perl. His friends in the gentleman's club will be shocked at his outspokeness.

    You might think that the obvious utility of perl, the fact that perl and perl derived languages remain tremendously popular with people writing actual code, might blunt the man's opinion that it's an "abomination". Is it at all possible that Larry Wall got a few things right, and that the CS field's decades-long obsession with elegance and reductionism was somewhat misplaced?

    (And if you want to take the line that the CS attitude is correct, how would you prove that it's correct? Writing working code is evidently not relevant. And if you can't prove it, then what does the "S" stand for in "CS"?)

  • Re:Socially relevent (Score:5, Interesting)

    by Beardo the Bearded (321478) on Wednesday September 02, 2009 @02:49PM (#29289287)

    Same goes for engineers. Name a well-known ... engineer. I'll wait ...

    Rowan Atkinson has a Master's in Electrical Engineering.

  • Re:Socially relevent (Score:1, Interesting)

    by Anonymous Coward on Wednesday September 02, 2009 @03:00PM (#29289501)

    Dolph Lundgren, Master's in Chemical Engineering.

  • Re:Socially relevent (Score:3, Interesting)

    by SigILL (6475) on Wednesday September 02, 2009 @03:27PM (#29289907) Homepage

    Name a well-known (outside of engineering) engineer.

    Mahmoud Ahmadinejad (president of Iran), who has a doctorate in civil engineering and traffic transportation planning.

  • Why Donald Knuth? (Score:0, Interesting)

    by Anonymous Coward on Wednesday September 02, 2009 @03:32PM (#29289993)

    That guy is a relic of another age, and certainly not a coder; he's purely an academic in theoretical computer science.
    He's good at making algorithms, but certainly not at coding.

  • He's right! (Score:2, Interesting)

    by Invisible Now (525401) on Wednesday September 02, 2009 @04:05PM (#29290469)
    If working down on the corporate cube farm has shown me anything - it's that non-technical managers produce atrocious applications. Unbelievably expensive. Too slow to be used in spite of the cost. Rejected by users, because they are seldom part of the development team.

    I can predict, fairly accurately, the outcome of a corporate development effort from the answer to these questions:

    Is the business sponsor and the user team deeply involved in an Agile/Iterative way throughout the development effort?
    Is the actual technical side of the development led by a technical manager with real authority?
    Does he or she have their choice of tools and technology without interference from above or corporate IT's "Best Practices"?
    Are requirements managed flexibly, with early deliverables of basic functionality followed up be newly discovered needs?

    The biggest breakthrough in coding, reflected in the biographies of the coder interviewed, is a return to smaller teams, guided by involved end users. In other words, rediscovering earlier practices and respect for the lessons of the Mythical Man Month.
  • "Agile" happened. (Score:5, Interesting)

    by Animats (122034) on Wednesday September 02, 2009 @04:13PM (#29290577) Homepage

    Whatever happened to Q/A? Whatever happened to analysts who have a clue?

    "Agile programming" happened. No need to figure out the requirements up front, they're going to change anyway. No need to architect the system, we'll just use a "framework" and add features.

    This works OK for web sites in PHP, but don't try to do hard real time or database internals or secure software that way. Agile programming will give you a set of loosely coupled features, but for many user-facing applications, that's good enough.

  • by VirginMary (123020) on Wednesday September 02, 2009 @04:17PM (#29290641)

    If the popularity of a programming language were a sign of it being a "good" language, then how come there is so much COBOL and FORTRAN? This reminds me of an old saying: "Eat shit, 10 billion flies can't be wrong!" I'd also like to point out that most programmers are hacks. I don't doubt that languages like Perl are useful for small scripts but I think it is not a language that scales up very well. Google for example uses C++ and Python and they try really hard to hire only the best programmers they can find. Many languages are culturally assimilated. I come from a physics background and most physicists used to, and may still, program in FORTRAN, yet FORTRAN is a terrible programming language. But guess what, if challenged on this, most physicist programmers might have replied that they can readily solve any problem of interest to them in it. I'm sure the same is true of the armies of Perl programmers. But, using the popularity of anything as a measure of its quality is questionable.

  • Re:Why Donald Knuth? (Score:3, Interesting)

    by wdavies (163941) on Wednesday September 02, 2009 @04:27PM (#29290811) Homepage

    Interestingly, I do wonder how Knuth would be rated in these days of massive (have you seen Java recently?) APIs, agile, test-driven development ? One thing that seems in common with all these guys is that they have written code which is of the old-school low-level infrastructural variety. His algorithm code is awesome, but a little spartan on the variable naming conventions. This is coming from someone who has an autographed set of TaoCP (and attended his occasional rare seminars).

    Does the book actually have interviews with the front-liner programmers who have to deal with product management and managers in their day to day development work on web apps?

    Winton

  • by lgw (121541) on Wednesday September 02, 2009 @06:10PM (#29292265) Journal

    Real software developers code. Sure, they do other important work as well, but code is the work product. Every single person I've ever worked with who denied this was a crap coder who could write a clear design doc (but great at PowerPoint, or Project, or other busywork).

  • by Anonymous Coward on Wednesday September 02, 2009 @07:25PM (#29293069)

    This is one of those funny things about software. Software is so valuable, people are willing to use it even when it's buggy. No one wants to go back to the manual way once they are shown the automated way. It is often less work to workaround the defects than to go back to no software.

    Combine that value proposition with the fact that software demand way outstrips supply, and you get a lot of marginal software.

    Cars were like this once before too. MG owners know what I am talking about. Cars used to be far less reliable than buggy software from a major vendor. No one remembers anymore, cause the Japanese cleaned their clocks, and they are all gone now. (Miata anyone?)

    Next time you see an MG, ask the driver how many parts cars he has in his garage to keep that one running. My uncle used to have 2 parts cars for every running MG.

    But if I said that 2/3 of your software would basically not run, and you'd have to harvest DLL's from 2 of them to keep the third one running, you'd go nuts. But that's how cars were for a long long time. Just like software is now. /shrug. Move along, nothing to see!

  • by fm6 (162816) on Wednesday September 02, 2009 @10:59PM (#29295057) Homepage Journal

    I have mixed feelings towards the people cited as "all-time great programmers and computer scientists", at least the ones I know anything about.

    Ken Thompson. The one, absolute no-brainer for inclusion, because he's the most influential programmer ever, without exception. His minimalistic approach to OS design and API specification has had a profound effect on how people think software platforms. I started to study programming before Unix became widely used, and the sheer baroqueness of pre-Unix OS's is far beyond what younger programmers can imagine. Even if you've never read anything this guy has written, you've been influenced by his ideas. We all owe him big time.

    Donald Knuth. His contributions are pretty major. But the paradigms he uses to talk about programming are thoroughly obsolete. And I do not understand his obsession with finishing an unfinishable book.

    Josh Bloch. I've had the pleasure of actually working with him. Brilliant dude, and certainly someone all programmers should listen to. (And he doesn't get enough credit for his contributions to the design of Java.) But calling him a programmer is a bit like calling Frank Lloyd Wright a "builder".

    Jamie Zawinski. I don't know that much about the guy, but what I do know makes me unwilling to accept his opinion on anything. I'm informed mainly by the config files for early versions of Netscape Navigator. JWZ's comments in these files were the only documentation I could find for making the browser work with PC keyboards under Linux. These were short of useful information and long on rants about the supposed shortcomings of various hardware vendors. These would have been stupid and unprofessional, even if they hadn't been arrogant and poorly informed. (No Jamie, Alt and Meta are not the same thing.) And isn't his main claim to fame his contribution to the Netscape code base? Most of which was simply abandoned as unmaintainable when NS's projects got taken over by Mozilla and Sun.

"Consistency requires you to be as ignorant today as you were a year ago." -- Bernard Berenson

Working...