

Ask HN: What are the signs that you are a Good, Better, or Best programmer? - edw519

With all due respect to the earlier post, "Signs that you're a bad programmer", I thought I'd add a post of my own about how to tell if you're a Good, Better, or Best programmer...<p><pre><code>    Good: You help your users write their specs.
  Better: You write what you anticipate your users want.
    Best: You users figure out what they want after seeing your prototype.

    Good: When someone asks you what a variable means, you answer quickly.
  Better: No one asks you what your variables mean.
    Best: Others compliment your variable naming.

    Good: When questions arise, you look at your code and answer them.
  Better: When questions arise, you answer them without looking at your code.
    Best: Questions don't arise.

    Good: You are deft at using your favorite IDE.
  Better: You use an IDE with the colors turned off.
    Best: You don't use an IDE.

    Good: You are an expert at debugging.
  Better: Your error conditions anticipate problems before you need a debugger.
    Best: What's a debugger?

    Good: There are no bugs.
  Better: There are no bugs and it runs fast.
    Best: It generates code with no bugs that runs fast.

    Good: Common logic is consolidated into common code.
  Better: Common code is consolidated into parameter-driven common code.
    Best: All code is parameter-driven common logic.

    Good: Your code is easily copied and changed by others.
  Better: Your code is easily used by others through your API.
    Best: Others read your code in order to learn how to do it.

    Good: The next programmer can easily debug any run time errors.
  Better: There are no run time errors.
    Best: Your program fixes itself when it encounters run time errors.

    Good: Your app has many good data base access routines.
  Better: Your app has several good data base access routines.
    Best: Your app has one good data base access routine.

    Good: You can easily add special processing logic at any point.
  Better: You have hooks to easily access any special processing logic.
    Best: Your built in Boolean logic already handles any special processing logic.

    Good: Your code runs so well you have time to lurk at Hacker News.
  Better: Your code runs so well you have time to participate at Hacker News.
    Best: You hang out at Hacker News while your code generators crank away.</code></pre>
======
macwarlock
"Best: What's a debugger?"

Run for your life.

Glad to see that the examples touched on the fact the being a good programmer
has as much to do with interacting with people as it does code. Whether you're
chained to a desk in the basement or working one on one with clients (or
both?), I think the key is the programmer's flexibility.

The ability to think quickly and adapt smartly to sudden
bugs/conflicts/requests can really help sort out the code monkeys from the
wizards.

The 'Best' category kind of irks me; programming is an ongoing learning
process. Always try to be a better programmer, never try to 'the best'.

~~~
billswift
Did you actually read his "Best" descriptions? Most of them are literally
impossible for a real programmer to actually achieve - most are sort of
transcendental goals to keep working toward.

------
wwalker3
If your code has no bugs, the problem you're attacking is too easy for you.

The best programmers are working on problems that no one knows how to solve
yet.

------
yannis
Based on a test I ran on a number of people there is a linear correlation
between IQ and Programming skills!

IQ100->belowGood IQ110->Good IQ120->Better >IQ120->Best

You raise some very good points though. I am not sure about the 'no bugs'
though.

~~~
billswift
It's a LOT more than IQ; IQ is more a limiting factor, without enough
intelligence you cannot reach a particular level. You also need LOTS of
specific knowledge and LOTS of practice; I'm 156 but nowhere near a good
programmer (yet).

