27

How can you determine objectively, over time, that you are getting any better at producing code? For example, I may sit here and feel that "I know <language> now, and I use <technique> now, so I must be better." But this does not account for my own bias, or the fact that I may be getting better at a slower rate than intended, or I may actually suck at <technique> and not realize it. What methods are available for one to objectively rate one's own abilities? What about to objectively compare them to their peer groups?

GWLlosa
  • 1,159
  • 8
  • 14

3 Answers3

30

You can take a look at the Programmer Competency Matrix and see where you are on that and where there might be room for improvement.

Getting involved with the local development scene can be beneficial as well, since you'll be in a position to compare yourself against developers from different environments (i.e. not just your co-workers).

To see what your options are for finding fellow local developers, you can start by looking for a user group in your area. Some are focused on a particular languages, some are more general. For example, where I live, there's a .NET user group, a recurring demo camp, a Perl group, etc. Dev House Waterloo is an example of a more general interest group in my area. I found these first by Googling for a .NET user group (I was primarily a .NET developer at the time) and then through talking to people there to find out what else was happening in the area. If all else fails, you can always try getting a group going yourself.

Adam Lear
  • 31,939
  • 8
  • 101
  • 125
9
  • Get a patch accepted to a major open source project. Your code will be scrutinized and will not be included if it's crap.
  • Review the Programmer Competency Matrix
Ryan Michela
  • 2,072
  • 2
  • 16
  • 14
7

As I age, I become less satisfied checking off items from lists of skill, technologies, and concepts. These days, what really matters is what I ship. Is my ability to ship improving?:

  • Can I produce more in less time?
  • Is my software becoming more reliable?
  • Is its usability improving?
  • Am I always reaching a little further, doing more than what I thought was possible yesterday?
  • Do my clients trust me and expect more and more from me?
  • Do I make the people working with and around me more productive?
  • Am I shipping bigger, more complex, and more important products?
  • Can I ship using any technology the client requires?

It doesn't matter how many checks you have on your list if you don't ship.

Scant Roger
  • 9,038
  • 2
  • 29
  • 47