Not Limiting Yourself In Your Programming Career

I was watching an interesting conference video by Trisha Gee at the Goto Conference where she was giving lots of career advice, and one bit really struck a chord with me as it essentially outlined my philosophy on my career progression.

What Trisha talked about was not limiting your career by being type cast into one particular area or discipline, and she gave examples where she switched from web development and went into server side development across multiple business domains, and this is exactly what I have done. I did this because I believe it opens your eyes to different ways of thinking, new technologies, and working with different types of people.

My career has gone from Junior Developer Roles, to Developer, then Senior Developer, Lead Developer and then a departmental Development Manager, but I have done this via 3 different business domains. These are Computer Games and Games Middleware Tools, Financial Institutions both online and retail, and then (where I am now) into Pharmacy and Healthcare for a large Retail and Distribution operation.

By working across all these different business domains and effectively switching gears multiple times it has allowed be to diversify my skills yet pick up new specialisms over a 16 year period. This includes working in C and C++ and then moving on to C# where I have worked on multiple projects doing WinForms desktop applications, ASP.NET websites, ASMX and MVC back end web services, and be in-charge of designing different high availability deployment architectures.

As I progressed through the programming ranks I have picked up invaluable people and soft skills as-well as technical skills As I have developed, I have really enjoyed working with and mentoring developers to pass on skills and help with their career progression.

The key to this story is not to box yourself into a corner with your career and, like with one of the key tenets of Agile Development, Embrace Change, by switching gears every now and again.  If you feel like you are getting stuck in a rutt with what you are currently doing, learn a new technology, run a pet project or open source project until you can show good competence in your new technology. Then change jobs, possibly into a new business sector. It can be quite scary doing this, but ultimately it is very rewarding and it gives you a very well rounded and broad CV which is very appealing to future employers as it shows you are prepared to take chances as-well as invest in yourself.

Perhaps it is time to look at where you are in your career, see if you are happy, and potentially start planning for the next chapter in your life.

This entry was posted in General and tagged . Bookmark the permalink.

18 Responses to Not Limiting Yourself In Your Programming Career

  1. exim says:

    > Computer Games and Games Middleware Tools, Financial Institutions, Pharmacy and Healthcare

    Although, the opposite direction would be quite hard – getting into game industry as an experienced engineer but in different domain. Other than entry level jobs, they all require previous industry experience.

  2. Stephen Haunts says:

    I was quite fortunate in that I started my career in computer games which is very hard to get into. My route into it was that I wrote a lot of games as a teenager and had publishing deals which got me exposure in the press. Some might argue that I approached my business domains in the wrong order, but I am happy with the order I did it :-)

  3. Reda says:

    I often hear that if you don’t specialize in something in particular, you can never obtain high level skills in what you do. Because there’re so many technologies and it evolves very fast, it is quite hard (or time consuming) to be very good at several disciplines or technologies at once. Don’t we say “jack of all trades, master of none” ? Of course i’m not talking about you in particular, just curious about how you handle this.

    • Stephen Haunts says:

      “Don’t we say “jack of all trades, master of none” ”

      This can be true, but in my case I am talking over a 16 year period. You do need to think carefully about where you specialize. I always encourage my developers to specialize in one area, but be a generalist in lots of area. This is especially important when you work in an agile environment and expect there to be a level of collective code ownership across your team(s).

      You can learn to specialize in new areas though outside of your office life. If you truly love what you do, then you might have a pet project or contribute to an open source project. I have a very busy job and home live with 2 kids, but I still find time to try out new things and learn. A nice long train commute really helps with that :-)

      • Spencer elliot says:

        what do you mean about “A nice long train commute really helps with that”,

      • Stephen Haunts says:

        With the comment about the train commute I mean that I read, code, or watch pluralsight videos on my commute to work. I spend about an hour and twenty minutes each way on the train. I prefer doing this and being productive than sittingin traffic in the car during rush hour.

    • I would agree somewhat that it can be more challenging for a generalist to be highly skilled in one or a few specific areas.

      To go back into yesteryear with AD&D, you had the multi-class option where a character could share 2-3 different classes (wizard / thief, fighter / cleric / thief, other combos) in addition to single-class specialists. The former would have less potential for advancement and less expertise than a single “pure” class, but they’d have at least some competency in the classes they present.

      I’m in the atypical situation of having started out in tech support and only dabbling in programming along the way, to becoming a report writer and database administrator, then being promoted internally within a company that likes to promote from within as a full-blown software developer.

      In my journeys I have the distinct advantage of having tech support and network administration knowledge which has more than once helped my solely programming-based colleagues out of sticky situations in those areas that they were foundering with. However, I don’t have the deep knowledge in the frameworks I code in that some of my whizzes of colleagues have, with both formal training and more years of experience in the trenches.

      I don’t feel comfortable embracing any particular framework to the extreme that I live and breathe it. Quite honestly, I’m content to learn what I need to as I go based on the task that needs to be done rather than keep my brain chock full of the deep knowledge and language or platform idiosyncrasies that my aforementioned specialist colleagues do.

    • darthcontinent says:

      I would agree somewhat that it can be more challenging for a generalist to be highly skilled in one or a few specific areas.
      To go back into yesteryear with AD&D, you had the multi-class option where a character could share 2-3 different classes (wizard / thief, fighter / cleric / thief, other combos) in addition to single-class specialists. The former would have less potential for advancement and less expertise than a single “pure” class, but they’d have at least some competency in the classes they present.
      I’m in the atypical situation of having started out in tech support and only dabbling in programming along the way, to becoming a report writer and database administrator, then being promoted internally within a company that likes to promote from within as a full-blown software developer.
      In my journeys I have the distinct advantage of having tech support and network administration knowledge which has more than once helped my solely programming-based colleagues out of sticky situations in those areas that they were foundering with. However, I don’t have the deep knowledge in the frameworks I code in that some of my whizzes of colleagues have, with both formal training and more years of experience in the trenches.
      I don’t feel comfortable embracing any particular framework to the extreme that I live and breathe it. Quite honestly, I’m content to learn what I need to as I go based on the task that needs to be done rather than keep my brain chock full of the deep knowledge and language or platform idiosyncrasies that my aforementioned specialist colleagues do.

  4. Stephen Haunts says:

    This post has whipped up quite a debate over on Reddit. Here is the link if you want to join in.

    http://www.reddit.com/r/programming/comments/29n7e6/not_limiting_yourself_in_your_programming_career/

  5. Amir says:

    What about “Not Limiting Yourself To ANYTHING”..
    I actually opened the article with the wish to read something more inspiring…
    Believe it or not, changing from frontend to backend (or vice versa) just keeps you LIMITED..
    Try doing something else, shut down the f***ing computer for one month and try to do some painting.. learn piano.. go for cooking :-)

  6. Frank says:

    The question is not to limiting ourself, it’s more than H.R. sometime limit ourself.
    I have 29 years experience on different technologie (Client/Server, Web, Database, Telecom, compiler, business apps. C/C++,C#,Java, Java, Javascript etc…) but there still some persons continue to answer me that I don’t have experience in a specific field with a specific knowledge, if I apply for a new job.

  7. soulfiremage says:

    I managed to unlimit myself as I found the standard career progression world just too frustrating to get into. Sick of gatekeepers and people wanting “safe” ordinary tick box pleasing candidates, I’ve found myself taking Amir’s advice by chance and spend very little time in front of a computer now, instead I make things from wood, steel, marble, whatever or I polish and restore stuff-often on boats. It’s all new to me and multiple skills are needed-again all new. It’s made me realise that yes, I might be able to learn serious coding skills in a short time period but will it make me happy to keep playing Don Quixote in an industry that is determined that one MUST fit the standard whiz kid from teen OR hard working multi decade achiever mould? I doubt it, life is too short, the world too big, to live in front of a screen all the time.
    This after two decades of varied square eyed experience.

  8. ephraimmower says:

    Great that you picked up invaluable people! There is no reason a successful career should preclude romance.

  9. Pingback: 程序员,你的职业不要固步自封 - IT新闻

  10. thought you meant: do some non IT stuff!

  11. Pingback: 编程无极限 | 我爱互联网

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s