Saturday, February 11, 2006

The Pragmatic Programmer

I finished reading The Pragmatic Programmer a couple weeks ago. (And have been meaning to mention it, but kept forgetting). The book outlines an approach to software development summed up by its first "tip": Care About Your Craft - Why spend your life developing software unless you care about doing it well?

What you learn in school tends to be either aspects of Computer Science or the syntax and features of various programming languages. Both are useful, but developing software and working with complex systems have many other facets, many of which are best learned though experience. The book is a collection of short chapters that discuss what the authors' have learned about the later.

The engineering process - creating maintainable and testable software, design, documentation, and debugging - receives a lot of coverage. But other engineering topics and skills, including tools, architecture, communication, scoping and estimation, as well as career development, are discussed. The writing style is clear and full of examples, but concise (in a good way).

I highly recommend this book as it will (likely) introduce many new and helpful ideas as well as solidifying things that you may have learned along the way but aren't quite sure how to articulate or reason about.

3 comments:

Anonymous said...

Cool. I've been meaning to pick it up for a long time. I think Ju-lian has read it and liked it as well.

Anonymous said...

Would you recommend the book only to software designers, or would it also be of use to those who may sell technology as well. I don't mean the the snotnosed sales clerk at Best Buy, but do you think it would be of use to someone in the computer industry as a whole? For example, someone selling servers and switchs and routers and IP technology? Just curious. Have a great week... :-)

Ryan said...

It's probably only useful/interesting if you're directly involved somehow with developing software. (i.e. Software developer/engineer, QA, project management, etc. or a manager of the above).