The 5 Stages of Programmer Incompetence
coderoom.wordpress.com
coderoom.wordpress.com
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"?
The article is missing the stage where you get into management, fall hopelessly behind on current technologies, and forget how to code.
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.
But good suggestion. :)
aka, javascript.
Sorry, I've just been in a small personal version of hell for the last few weeks courtesy of Altera.
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.
You'll want something that works out of the box, so that you know the bugs are in your code, not your soldering.