Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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?

share|improve this question
add comment

4 Answers

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.

share|improve this answer
1  
That's a pretty nifty chart there :) –  GWLlosa Jan 13 '11 at 21:57
    
Beat me to it! :) –  Ryan Michela Jan 13 '11 at 21:58
    
@Ryan: I know what you mean. ;) –  Josh K Jan 13 '11 at 21:59
    
How does one locate a "local development scene"? I'm completely unfamiliar with that concept. –  GWLlosa Jan 13 '11 at 23:09
2  
The meetup website meetup.com helped me find local Python, Ruby and other software development related groups. –  DarenW Jan 14 '11 at 7:02
show 2 more comments
  • 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
share|improve this answer
add comment

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.

share|improve this answer
add comment

Here's a formula i devised for calculating how good of a programmer you are

years of programming experience * 1/(1+how good you think you are)

where how good you think you are is a scale from 1 to 5.

The more experienced you get the less you realize you know and the better programmer you are, warning though that knowledge of this rule might severly lower your skill.

share|improve this answer
2  
I afraid to apply this formula on myself in case I enter some sort of feedback loop. –  nakedfanatic Jan 14 '11 at 3:11
1  
Twenty years of experience or one year of experience repeated twenty times? –  DeadMG Jul 12 '11 at 19:30
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.