Wednesday, March 08, 2006

Good vs. Great Developers: Part 1

I'm a firm believer in the theory that "cargo cult programming" is the surest path to worthless software. We've all seen the following:

//I have no idea why, but the next line is required to make such and such work
<some code line that makes no sense>

Comments like this are a clear sign that you are cargo cult programming. If you ever find yourself writing this comment, STOP! Really, you will thank me later. Figure out why this is needed (or at least put up a reasonable guess). The "I have no idea" comment means that you are too lazy to care about what this line of code is accomplishing. That sets a poor precident about your ambition, skills, and re-enforces a poor habit.

Don't copy code you don't understand. Great programmers started as horrible programmers just like everyone else. The difference is drive. The drive to improve is what makes them great. I've never met a great developer who was happy with the code they wrote last year. They are always embarassed by that code, because they have learned more in the mean time.

The difference between great programmers and just good programmers is that great programmers try to understand everything about everything that matters (see below), not just their code. They understand their code, the code of the framework they execute in, the overarcing design, the minute design of each interface, and everything in between. They are the people who actually pay attention in code reviews and give you back useful comments about both high level API design and the fact that you are calling function X with a one-off parameter error.

In short, they are the people you want on your team.

0 Comments:

Post a Comment

<< Home