
The 5 Stages of Programmer Incompetence - skorks
http://coderoom.wordpress.com/2010/03/19/5-stages-of-programmer-incompetence/
======
hristov
Here is a writing tip: if you talk about a hypothetical person of undefined
sex, choose "he" or "she" and stick with it. Some writing teachers say one
should always use "she" to avoid sexism, but that is obviously not followed.
As long as you do not actively reinforce stereotypes (i.e., you call all
hypothetical flight attendants "she" and all hypothetical lawyers "he"), I
think using "he" is fine.

But if you mix "he" or "she" up then you just raise questions in the reader's
mind. Here the author has half "he's" and half "she's" which opens him (or
her!) to bunch of accusations of sexism. Why was the newbie a "she"?

~~~
sorbits
In this article it would have been fine to use singular ‘they’ especially
since each fictive person is really a group of people, so even read as plural
‘they’ works.

<http://en.wikipedia.org/wiki/Singular_they>

~~~
drbaskin
This is more of a curiosity than anything, but one can always use Michael
Spivak's gender-neutral pronouns.

<http://en.wikipedia.org/wiki/Spivak_pronoun>

~~~
NeilCJames
I use 'singular they' because at some point 'one' started to connote
pretentiousness. I don't see how Spivak pronouns solve that problem, but this
off-topic sub-discussion has convinced me to go back to using 'one' (for
disambiguation's sake).

------
Silhouette
I have a lot of empathy with those levels, but I'd sum up my own programming
career to date in just three:

1\. Under-engineers everything.

2\. Over-engineers everything.

3\. Tries to find a balance (with maybe a 75% success rate today).

Or, to put it another way:

1\. Writes simple but over-specific things.

2\. Writes general but over-complicated things.

3\. Aims for simplicity and generality.

------
danbmil99
ha that is so me: Distinguishing code features: Only writes in dynamically-
typed languages with a strong functional component. At first glance her code
looks remarkably similar to the newbie’s, except there’s less of it and the
variable names make sense.

~~~
eru
You could try strong typing--in the sense of ML and Haskell--for a while.

~~~
Miky
Strong typing and dynamic typing aren't mutually exclusive. Most dynamically
typed languages are strongly typed, and C, a statically typed language, is
weakly typed.

But good suggestion. :)

~~~
eru
Indeed. I meant to say (sane) static typing.

------
marknutter
Pretty accurate except for the pronoun "she" (unfortunately).

~~~
zacharydanger
I'm all for adopting 'they' as the genderless pronoun of choice.

------
harshpotatoes
In the poll at the end, there are plenty of people who have been through the
early stages, but significantly fewer who claim to have been through the
guru/veteren stage. I presume that means they are still in the guru/veteren
stage? :D

~~~
j_baker
Either that or there are more young programmers than there are older
programmers.

------
ilkhd2
And then... A moment of Zen.. He/she realizes - the real programming is lack
of it... And buys FPGA board.

~~~
nzmsv
Then sees the horrible mess that the FPGA dev tools are, and quits programming
forever :)

Sorry, I've just been in a small personal version of hell for the last few
weeks courtesy of Altera.

~~~
ramidarigaz
Do you have any recommendations for an FPGA newbie? I've been looking around
at boards, but I'm not sure which ones are the good ones.

~~~
nzmsv
I'm finishing up my final project for university (which is FPGA based), and
I'm stuck with the supplied tools, so I can't really compare different
vendors.

All the FPGA tools are closed-source though, and the free versions treat you
as a criminal. I'm using Quartus II Web Edition. Altera finally came out with
a Linux version, which is nice of them, but the list of annoyances is long:

1\. Incremental compilation is disabled. You'll wait at least 5 minutes to try
each change.

2\. The signal analyzer is disabled. Debugging is a pain.

3\. The source code for the supplied Altera components is encrypted.

4\. Your design is on a timer, and stops working 1 hour after being programmed
into the board. There goes that hobby project.

This is for the trial version, which I supposedly would use to learn. Yet they
make learning about as painful as possible. I simply don't have 3 grand for
the full version of Quartus.

I can't comment on Xilinx or Lattice, but I suspect the story is similar.
FPGAs are hostile to hobbyists.

Oh yeah, boards :) Get a full-featured dev board. Sparkfun has simple breakout
boards, but you have to add your own power, clock source and flash for storing
the FPGA config, at least, before you can do any work.

~~~
ramidarigaz
Thanks for the recommendations. I love Sparkfun.

~~~
nzmsv
Oops, I didn't mean to recommend their boards :) I meant they are not the best
choice for starting with.

You'll want something that works out of the box, so that you know the bugs are
in your code, not your soldering.

~~~
ramidarigaz
Ahh. Gotcha. Thanks again.

