Home Page

Article by: Ted Kolovos (www.CSharpUniversity.com)

Welcome!  Relax and enjoy yourself as you read this.  May I have your full attention please?

Did you read Part 1 of this series?  If not, find it at /2010/01/14/3-deadly-career-mistakes-programmers-make-and-how-to-avoid-them-part-1/.

Ever wonder why some programmers always seem to get better?  They get the jobs they like.  They become experts.  They develop on fun, rewarding projects.  They make good money.  They fit the definition of success.  Let’s call this the Happy Zone.

Yet other programmers always seem to make little progress.  For some reason the right opportunities are never there.  They feel frustrated about the projects they develop on.  Perhaps they’re not happy about the money they’re making.  Let’s call this the Unhappy Zone.

So, why does this happen?  Why do these vast disparities exist?  Are you in either one of those categories right now?  I’ve been in both of them during the course of my programming career and the Happy Zone is MUCH, MUCH better!

In this series of articles, we’re taking an interesting look at 3 of the common career mistakes programmers make that keep them in the Unhappy Zone.  By looking at these and evaluating your own situation, you will be one step closer to the Happy Zone.  Perhaps if you are already in the Happy Zone, my hopes are that you can get to the Super Happy Zone:)

In the last article (part 1) we talked a bit about motivation and why that’s important to your programming career.  I also gave you a simple exercise to get you thinking about your goals (what you want) and why you want them (the rewards of achieving your goals).  Did you do the practice exercise yet?  Try it.  It just takes a few seconds and it will get you thinking.  I promised to give you some mental strategies to generate tons of motivation.  So here’s a couple of them that you can try too.

Programming Career Motivation Power Strategy 1
The first strategy that I personally live by is: Seek Projects and Opportunities That Are Personally Fun and Gratifying.  Avoid projects or assignments that are boring or without personal satisfaction.  Think about this for a second.  Have you ever taken a job or agreed to work on a project that you knew you probably wouldn’t like?  Perhaps the technology wasn’t something you wanted to learn?  Or it wasn’t the type of application that you wanted to develop on?

The reason that it’s really important to seek programming projects that are fun for YOU is because you need motivation in order to achieve your goals.  If you work on a programming project that you don’t like, you will find it hard to get motivated because of the negative emotions caused by the project.  It’s just natural for people to work hard on things that they like and avoid things that they don’t like (it’s just how our brains are wired).  Think about it.  Do you normally spend your day doing lots of things that you like to do or lots of things that you don’t like to do?

There are many ways that you can practically apply this strategy:

  • Look for jobs that you are really interested in (focus on the ones that seem the most interesting).
  • Take classes for programming topics that interest you (preferably classed that require you to code).
  • Specialize in a niche that you really love.  My specialty is web programming because I love the Internet and web applications.  I became much more motivated to work harder and I achieved much more when I transitioned from desktop programming to web programming many years ago.  Say for example that you love mobile applications.  You might want to consider specializing in developing mobils apps for the iPhone or BlackBerry.  What you do love?

Programming Career Motivation Power Strategy 2
The second strategy is to: Challenge Yourself With Your Own Difficult Extra-Curriculur Programming Projects.  Give yourself a challenge outside of work or school.  Think of a programming technique or technology that you always wanted to learn and then create a project that gets you some experience working with the technique.  Make the project difficult.  Preferably you should make it something that is a little above your experience level.  This is so that you can grow as a programmer.

Challenges are good!  Challenges are necessary!  You need challenges to grow and thrive as a programmer.  The desire to complete a difficult challenge is a powerful emotion!

Conclusion and What’s Next
Do you have a desire to improve any part of your programming career?  Then try some of this tips that I’ve given you!  Remember, you are the best person to motivate yourself.

Stay tuned for part 3 where I’m going to reveal the Second Career Mistake Programmers Make and How To Avoid It.

In the meantime, do you seek projects that are fun?  Do you challenge yourself outside of your work or school environment?  What are the things that you wanted to learn but never did?  Quickly leave a comment.  I’d love to hear from you!


  1. I’m a former Tier A (mainframe) programmer who was very interested in transitioning my career to web programming because that is where I believe my employer should move to. When my boss offered me an opportunity with a user request that came up, I leaped at it, even though I had absolutely no prior experience with enterprise-class web development projects. That was, in many ways, a mistake for me. I didn’t appreciate just how difficult it would be to become involved in the design of a project, and also learn the skills I needed (such as Java) as quickly as possible. Yes, I have developed very small web applications before. But not at the enterprise level, following a project management path such as the Enterprise Life Cycle. And I feel flat on my nose because I had zero experience at the enterprise level and took on too many learning challenges.

    What I am thinking now is that an enterprise which has a management training and mentoring program for those interested in becoming managers should also have technical mentoring programs for technicians like me who would like to learn the skills needed to do enterprise-class development and have schooling in those skills, plus get the chance to practice the new skills in a sandbox environment that can be used for trainees. So just as an enterprise trains and nurtures its management trainees, so it should also train and nurture its technicians who show an interest in career changing.

    I still do challenge myself with new projects, but I do the learning at home and at my own pace. I’m just getting seriously interested in embedded systems now, and I recently ordered a Beagleboard. That will be a difficult but rewarding project.

    Comment by Bob Cochran — January 16, 2010 @ 11:03 am

  2. Before I continue discussing the mistakes I made in the above project, let me say that some really good things did come of it. I met a great person, Ted, and took one of his classes. The class introduced me to another really great person, Jean. And there was an interesting fellow whose name I’ve forgotten but who wanted to become a programmer; he had a tough time expressing himself in English but he sure tried hard! I think Ted and Jean have both had very strong, positive influences on me. I am definitely blessed to know them. As to the fellow wanting to become a programmer…he teaches me to keep trying. In a very competitive market that is a good idea.

    Comment by Bob Cochran — January 16, 2010 @ 11:46 am

  3. What about Object Oriented Databases? Is that going anywhere ?

    Comment by Doyle — September 16, 2011 @ 3:22 pm

RSS feed for comments on this post.

Leave a comment