Monday, July 27, 2009

The Passionate Programmer: Creating a Remarkable Career in Software Development

Author: Chad Fowler Format: Paperback, 200 pages Publisher: Pragmatic Bookshelf (May 28, 2009) ISBN-10: 1934356344 ISBN-13: 978-1934356340 First of all, I like the sax on the cover. I like jazz music and especially tenor sax, so a little cool jazz on a hot summer's day works for me, and keeps me calm as I'm commuting to work, but I digress. The Passionate Programmer isn't exactly about programming. It's about the career of programming. Most Pragmatic books I review in this area, teach some programming language, how to program in general, or "tips and tricks" of some programming method. Chad Fowler's book addresses the larger context of entering into a programming career. More than that, the context can be applied to many other creative careers where the creative person conceptualizes their "product" within his or her thoughts and imagination, and then generates the result. How do you proceed into such a career path? Keep reading and find out. Most people who select a programming career don't think about the career part of it. If you're "passionate" about programming, you likely are passionate about the process of programming; the actual doing of it. Fowler tosses around terms like business and entrepreneur, which may be words at least odd, if not completely alien to some coders. Aren't entrepreneurs those people who own their own businesses and are heavily into "wheeling and dealing"? What's that got to do with being passionate about programming? Do you have to eat to live? Do you need clothing and shelter? Would you like to go out with your friends on Friday night for dinner and drinks (and be able to pay your own way)? If you said "yes" to some or all of those questions (especially the first two), you need money. Sorry, but that's the harsh reality of life. Being a talented programmer is one thing, but sooner or later, if you want to make money by leveraging your coding skills, you'll need to pay attention to programming as a career. That means more than just putting together a resume, posting it on various online job sites, and hoping for the best. It means developing a vision and a plan. It means keeping your skills current, not just in terms of the current technology, but in terms of your current marketability. It's not surprise (at least to me) that the book preaches personal responsibility. After all, you're the product, not just what you do. Paying attention to your career is paying attention who you are, and to your employment and career environment. As the Borg sometimes say "We will adapt". The employment situation won't adapt to you. You're the one who needs to do the adapting. Wishful thinking doesn't build a career, but wishing is the beginning step. That said, a "wish" must progress into a clear and realistic vision, and then into concrete activities. The book reads like a series of short essays that are linked together by a common theme. The themes are collected into a number of Parts in the book. Each "essay" or chapter is capped by an "Act on It!" section designed to direct the reader into an activity based on the chapter. If this were an actual "coding" book, these would be the "exercise" sections. Reading the conceptional parts of each chapter may not seem so shocking, but behaving on them could be. Actions like keeping up with trade magazines (which you probably do anyway) and scheduling lunch with a business person (which you may never have done), are just two examples. They are also at the heart of this book's philosophy of doing your career, not just thinking or hoping about it. I wasn't kidding before when I mentioned jazz. Among his other talents, Fowler is a musician and at the beginning of Chapter 4, he mentions "legendary jazz guitarist" Pat Metheny as giving a piece of advice "passionate programmers" should follow. I also wasn't kidding when I said that programming as a career has at least something in common with many other creative careers. That means the path, at least in general, for programming careers has many models from which to learn. The Passionate Programmer, although easy to read, isn't a book that you should just shoot through in an afternoon or over a weekend. Yes, you could read the material in a short period of time, but you couldn't effectively practice it. This book is a guide to the practice of building a programming career, so actually walking the steps in the territory takes longer than reading the map. The book requires a proactive reader, not a passive audience. The book won't be worth the price you paid to buy it, if you don't actually respond to what it's teaching. It's like taking the time and trouble to learn all of the methods and techniques of programming in Java, Perl, or Python, or taking a full degree in Computer Science. If you don't actually put into practice what you've learned, what was the point of spending the time and money? No book can promise to make you a success at anything. In the current economy, we are all a bit more concerned about our jobs and our careers than perhaps we once were. Reading The Passionate Programmer won't keep you from being laid off next week if that was going to happen anyway. However, reading and practicing what Fowler has to offer, will make you much more involved in your own career process and direction. You can choose to be adrift in the river's current or you can pick up an oar, set a direction, and start rowing. Your choice.