So, I have been avoiding writing this for a while, but since Mike was kind enough to call me out, I guess I had better give it a stab.
How old were you when you started programming?
After reading everyone else's memes, I am almost embarrassed to not be able to say that I have been programming for over a decade. To be honest, I did not get seriously into programming until I was just about out of college. It has been a wild ride ever since!
What was your first language?
My first language was the web, ;). Basically, I started w/ PHP, HTML, and JavaScript. I distinctly remember dreaming up my first project and simply attacking it w/ a passion. I bought / read every book that I could get my hands on and practically stayed up all night programming and discovering the thrill of computing (does that seem as lame as it reads? lol). My wife was very patient w/ me at the time and would actually suffer through my excited explanations of how I just made text change on the page without having to request the page again. Craziness!
function changeLabel(){
if (document.buttonDemo.HelloWorldButton.value==" Hello "){
document.buttonDemo.HelloWorldButton.value=" World"
}
else{
document.buttonDemo.HelloWorldButton.value=" Hello "
}
}What was the first real program you wrote?
My first program was actually an online DnD engine. In college, we played DnD all the time, but I ended up moving back to my hometown, which was about 2 hours away. Due to this, I did not have the chance to play DnD anymore and I really missed gaming with my friends. Late one night, the idea struck me that I could create an online forum and battle system and role play online. Not only could I play DnD w/ my friends, but I might be able to charge a very low rate for it and make some $$. Brilliant! At the time, I never stopped to consider that there were probably 10,000 other programs out there doing just that, so I took it upon myself to write one.
I have to admit that I was pretty proud of my work. I made my own version of forums that incorporated dice rolls, skill checks, etc. I made a character generator which included all spells, skills, items, etc. I supported all the main races and classes and even wrote a script that assisted with leveling your character. Also, I created a DM panel where I could queue battles, create monsters, DM players, etc.
Finally, I created an encounter system. I was so proud of this encounter system. I created an image grid that allowed me to load characters, monsters, objects, etc onto one surface. Then, in turn, each player could login and attack nearby monsters or players, moving themselves about the grid. I managed to get the image to load by using nested for loops in PHP and some amazingly fancy JavaScript (fancy at the time at least). I almost wet myself when I thought to nest for loops in order to construct a grid (almost like the time I first discovered how to use recursive functions). It was so much fun!
Sadly, I got about 80% through the project and ended up getting a job as a Python / Web developer. Starting a horrific trend that would carry over to the 10,000 iterations of my website, I decided to re-write the system in Python. At this point, the project slowly fizzled out and I never saw it through to completion. :(
All in all, I call the project a success though because it gave me the drive to propel me into being a programmer. Eventually, it made me money as well - just not quite in the same way I originally envisioned it.
If you know then what you know now, would you have started programming?
Of course! I have no regrets for the choices that I made while I was younger and the pursuits that I followed then. However, I would love to know where I would be now if I had started down this road at an earlier juncture in my life. Que Sera, Sera.
If there is one thing you learned along the way that you would tell all new developers, what would it be?
One thing? There are about 10,000 but I will try to keep it to three. First off, have fun. If you don't have fun, you will burn out and end up hating yourself and your profession. Programmers tend to take themselves too seriously. Sometimes you need to back up, have a good laugh at yourself, and allow things to come naturally to you.
Two, learn! Never stop learning. Don't get stagnant and always be pushing that next threshold. Do you really think that the world will wait for you to catch up? It won't. Don't allow yourself to become stagnant.
Finally, programming is about people, not computers. It took me a long time to recognize that one. Be social, meet new people, and get new ideas. Participate in programing events and your local user groups. Doing this actually brings around to the first tip... have fun.
What's the most fun you've ever had... programming?
I probably had the most fun as a programmer when I was working with Dylan and Gabe back at Mediapulse. At the time, I was really learning things by leaps and bounds, pestering poor Gabe to death with a hundred questions a minute. I love to learn, especially when I have a mentor to show me where I am screwing up along the way. On top of all that, we really had a great office environment, so it was more like hanging out than working. We got a lot of projects done (those guys were rock stars!) but, more than that, they quickly became among my closest friends and comrades. :)
Who am I calling out?
Well, how about.... YOU! (all the other good ones have already been taken, lol)
Take care.