Archive for category Career

Book Review: The Passionate Programmer

The Book

Title: The Passionate Programmer

Author: Chad Fowler

Publisher: The Pragmatic Bookshelf


This is the second edition of the book that was titled as 'My Job Went to India (And All I Got Was This Lousy Book): 52 Ways to Save Your Job' in the inaugural edition. As the author admitted in the first few pages of the book, that title gave some impressions that the book is only about how to merely save the job.

The title for the second edition is more apt considering the intent of the author. If you read Andy Hunt's books on Career Development, this book by Chad Fowler falls into the similar genre.

The key emphasis of the book is --

Think of your career as if it is the life cycle of a product that you are creating. That product is made up of you and your skills.

From My Notes

There are a lot of useful tips and sound advice in the book, just want to touch on a few of them --

How to choose a technology stack to work with and how to choose a business domain is discussed. I completely agree with the author's view on how many of us end up doing whatever comes our way. In the author's own words -- "Our career is one big series of undirected coincidences".

Fowler says that both ends of the technology adoption curve might prove to be lucrative. I see where he is coming from, although I haven't seen many people intentionally taking up gigs to work on old/outgoing technology. Even the ones who take up such jobs, they are doing so because they can do only that.

These kind of folks they may call themselves specialists, but Fowler says that too many of us seem to believe that specializing in something simply means not knowing about other things. A very good case is made in the book why you want to be a generalist and at the same time being a specialist!

Fowler (being a musician in his past life) says it may be a good thing for being the worst guy in every band you are in -- which translates to work and hang around with people who are smarter than you. Great advice, I can attest to that from my own experiences, especially from the early phases of my career.

Simply being good at programming alone is not good enough. You ought to make sure that you understand the business domain well enough. Without understanding the business domain is it even possible to do justice to the job -- either making or saving money for the business.

One of the suggestions was to practice coding and read the open source code to learn new tricks of the trade. Great advice, but open source community is not immune from bad code, so choose your projects wisely!

There are some execution tips -- productivity boost from do-it-now mentality, push yourself to accomplish something every day, working towards a team goal (your managers' successes are your successes), don't panic. Another important aspect is to question yourself are you adding enough value to justify your worth. Author suggests that there will be many opportunities that you can spot if you ask such questions.

Fowler explains why marketing one's skills is important -- If you kick ass and no one is there to see, did you really kick ass? Who cares? No one. Perceptions do matter and it's not a wrong thing to manage perceptions. Build your brand (this concept is also explained well in Career 2.0 book by Jared Richardson. Richardson explains quite well the importance of writing and public speaking activities as a part of brand building).


The book is organized into short chapters under five broad categories / sections -- Choosing your Market, Investing in your Product, Executing, Marketing, Maintaining your Edge. Each chapter ends with an 'Act on It' section. Author suggests a few items in this part of the chapter on how you can act based on the content discussed. Although they are nice, the real "act on it" is on the readers, coming up with the action items that is more specifically tailored for them.

You may actually finish reading this book in a few hours, perhaps in one sitting. I'd rather suggest taking your time, and go with a cycle similar to:

read_a_chapter --> introspect --> prepare_a_plan [act_on_it, of course]


As Chad Fowler suggests, this book isn’t about struggling to maintain the level of mediocrity required not to get fired. It’s about being awesome. It’s about winning. I remember Uncle Bob saying -- you employer is not your mom. True. You have to make your choices and treat your job as a career, and develop the skills needed to keep you up-to-date. If you are currently looking for some inspiration or not so passionate about your career, then this book is for you.

Tags: ,

Career 2.0: Take control of Your Life

Lots of good advice here. Take control of your life -- that is precisely the theme of the talk that Jared Richardson presented at Twin cities JUG.  He addressed the key point of whether your career is a random product of your manager's whims or companies needs, and provided some proven strategies to take control of your career. My notes from the presentation:

  • You may be a model employee, and perhaps the best employee that your employer might ever get. You work day-in and day-out on the proprietary software and that is your whole universe. Let's say you get laid off, unfortunately, how much ever smart you are you may struggle to find a new job. Reason: your skills are so specific to your employer's home-grown framework and not up to the standards of what market expects from you.
  • Who picks your skill set? Your manager assigns you work and you try to learn something out of it OR do you take extra effort to pick your own skill set. There is nothing wrong with the first option, but you should never rely on your company alone to keep your skills current and marketable.
  • Invest in your career
    • Regular deposit of knowledge: Keep learning, learn something new every day.
    • Pay yourself first: Learning and keeping skills current should be your top-most priority.
    • Diversify: Don't put all your eggs in one basket, like depending on only one language or framework will not cut.
  • Set goals. Better come up with short term and specific goals, rather than longer term and vague goals. LOTY (in the spirit of pragmatic programmers) -- Learn a new technology this year or learn one new language this year.
  • There are various ways you can improve the skill set:
    • Take that extra effort and learn the new technology or new tool after work, Jared calls it sanity hacking.
    • Contribute to open source. Tons of projects out there pick that interests you.
    • Join user groups (like JUGs) or clubs to learn and share knowledge.
    • Start a blog and share your thoughts and in turn learn from it.
    • Speak and present your ideas about topics that you are passionate about.
  • Blogging
    • It is too easy not to do! You can create a blog with absolutely no monetary investment (you may start small with Blogger).
    • On a daily basis you learn something or look up a resource that helps you solve a problem. Write about it, there are so many people out there desperate for solutions who will find your blog.
    • You are unique (no kidding!), you have your own experiences and perspectives. Share them, so as to get useful feedback. Bottom line is learning.
    • Post frequently (frequency may depend on your niche), and provide value.
    • Link to other people's blogs. Knowledge is all around, don't worry about losing visitors by outgoing links.
    • If you read books, then write a review.
    • Write tutorials or how-to articles. Even one page article could provide a great value.
    • DON'T blog about any proprietary stuff that you use at work.
    • Track blog statistics (using Google Analytics) so that you can understand what resonates with your audience and perhaps write follow-ups on popular articles. That is an opportunity for you to delve bit more deeper into the topic.
  • Writing Tips
    • Mind maps are an excellent way to brainstorm your ideas.
    • Use a wiki to jot down your ideas. There are portable wikis that you can carry in a USB drive, if that is your preference. JSPWiki is Jared's favorite.
    • Hipster PDA (yes, a small notebook), keep that with you all the time to write down your ideas right at the moment.
    • Write every day even if it is only few paragraphs of the article. Keep the habit going.
  • Speaking: Give presentations or speak about a topic in your company or outside.
    • It makes you go deeper into the topic.
    • Start lunch-n-learn groups at work.
    • To overcome fear of public speaking and improve speaking skills sign-up for Toastmasters.
    • Video tape yourself and review it.
    • Practice, practice, practice.
  • In speaker's own words -- learn to lead with in your company and then stretch out to far greater influence outside, building your reputation as you go. From coding to writing to speaking, from each step you will gain new skill sets, gain confidence and get visibility which goes well beyond your resume. Most importantly, you will be in a position of having options and take control of your career.

P.S: What an advancement in the technology! Jared streamed his talk via his iPhone. Provided the broadcast link on Twitter and I happily attended from the comfort of my home, some 1200 miles away from the venue. Here is a direct link to the video that he recorded.

Tags: ,