Book Review:The Passionate Programmer

“The Passionate Programmer” (ISBN: 978-1-934356-34-0) was written by Chad Fowler. According to the back cover the book is a revised edition of “My Job Went to India: 52 Ways to Save Your Job.” Surprisingly, I didn’t really find anything in the book regarding jobs being outsourced. Chad has included a collection of informative exercises titled “Act on it” at the end of each chapter which generally have lengths under five pages.

I haven’t programmed professionally very long ( < 4 years), still there are so many things that just make sense found in the book. Throughout The Passionate Programmer, Chad’s underlying theme is we should always be working with better programmers, choose the places we work carefully, carefully choose associates because they have such a strong influence on the quality and passion you have while at work. Currently, I feel that i am stagnating because of a situation similar to what Chad discusses in the book: many of my coworkers are very negative, and the other programmer is extremely careful how much of the code he documents / shares so that he has built in job security.

Feeling irreplaceable or creating your own job security as Chad discusses really means that you are probably performing tasks in a way that others can’t do them and that doesn’t necessarily mean you as a software developer are a genius. Unmaintainable code really does end up painting your back with a bright red bulls eye because you are likely not a very good team player, and probably it would prevent you from moving up the hierarchy into a better job.

My favourite chapter of the book is titled “Learn to Love Maintenance” and this is because Chad has shown a different perspective. Chad encourages the reader to use the time doing maintenance to interact directly with customers, create a large base of advocates, and to use it as a time to truly learn the inner workings of the business because business rules are so heavily encoded in important software.

Overall, I would say that “The Passionate Programmer” is an excellent read and that I feel I have learned more about myself than I would have ever thought. I would never say that it is the next Code Complete or Code Craft, but it can definitely help you develop a meaningful career.

Questions to Ask In An Interview

I’ve been involved in interviewing people, and like everyone I have also been interviewed. I believe that when you are interviewing for a company, it is a time for both parties to determine if you will fit into the corporate culture so everyone should ask questions. I strongly believe that if something really bothers you in an interview that you should walk away if you have any doubts.

I usually ask at least these four questions, although sometimes I will ask more to clarify something I’m concerned with or to show that I don’t quite understand but would like to understand.

Do programmers have quiet working conditions?
This question really determines if I will be able to get into a really productive mind set or if I will struggle most of my day getting in and out of the zone. I believe that there’s no harm with a programmer sharing an office with someone else, but it wouldn’t be very logical to put a programmer beside someone else that is always on the phone.

On average, how long does an employee remain with your company?
You should never suggest or use the phrase “turnover” because you will probably just receive a simple response like “low.” Obviously, if the company is younger or a startup this question might be completely meaningless. Ideally, you will hear that there are some programmers that have been with the company for several years.

Could you explain to me how the development process works here?
I don’t usually expect much of a response to this question if the person works in Human Resources, but hopefully you will hear about processes being documented.

How do you track/follow bugs/issues?
This question is used to probe how organized the development and maitenance processes are. Ideally, the team will be highly organized which should make your time used effectively and software released with fewer bugs.

Slider by webdesign