Once a nerd ... Always a nerd
If you check out my LinkedIn profile you will see that at one time I was a software engineer. I was a very good software engineer. I was always on top of the latest technical developments, I loved to design and write software, and I sometimes couldn't believe people paid me to be a software engineer. My software engineering career peaked when I worked for DDC-I, an Ada Compiler company, and I was part of the multi-language debugger. After that I didn't see the point to writing any more software I had done it all.
I then made the deliberate decision to become a project manager. I have been very happy as a project manager.
But there have been times when I either needed or wanted a program but couldn't find someone to write it for me or felt that I had gotten to rusty to do it myself.
This summer, I had a need for a program to help with game mastering role-playing games that I am involved with. I knew no one else would write the program for me, so I decided to take the plunge and write the progam myself. The program, Hero Combat Manager, is designed to help game masters who use the Hero Game System run the combat portion of their games. Yes I am a nerd, I play role playing games and I got my children started playing role playing games.
Back to adventures in coding. I downloaded a copy of the Java SDK and Eclipse IDE and started working on the program. I picked Java because I didn't know Java, it runs on a bunch of different platforms, and I could get it for free. I picked Eclipse for the same reason. Both of these choices have turned out to be good choices.
Within a few weeks I had a very basic version of the program running. Benjamin and I were using it during our games and pretty much found design and coding errors during every game session. This went on until about three weeks ago when I got the program to the point where almost all of the major coding errors were fixed and the design/work flow was acceptable.
While I was doing the development I found out that I still have the software engineering skills I use to have. They were rusty but I still had them. At one point in the process I was trying to figure out a particularly nasty error and had spent a bunch of time working on it in the debugger. The next day at the gym I was 'running' the code in my head when I realized what the problem was. Sure enough, when I looked in the code my hunch was right. The ability to 'run the code' in my head was one of the things that very good software engineers can do.
So like the title says "Once a nerd ... Always a nerd"