I was called out by my friend Kalen Delaney on the Software Development Meme (something I've never heard about before, I had to look it up on the Internet ;-) ). Here goes:
How old were you when you first started programming?
I can't say for sure, I don't remember. I guess around 13-14 years old.
How did you get started in programming?
At that age, I bought a Commodor 64 (or was it 16?). This was to catalogue my music albums and tapes. I had a fair collection and I among other things wanted some functionality to randomly select what to play, avoiding getting stuck playing the ol' same, all the time. Not understanding anything about computers I wrote this Basic program in which I declared a variable (possibly an array) and inside my program I assigned values to this variable for each album. I got stuck on, I believe 273 albums, probably out of memory. Little did I know then that I needed external storage, ideally an RDBMS.
What was your first language?
That would have been the BAISC I used for my Commodore as per above.
What was the first real program you wrote?
Depends on how you define "real" and "program" ;-). Something actually used in production?
Perhaps programming a plotter to draw electrical symbols on drawings, probably around 1984-85. As I recall, we had this dumb keyboard hooked up to a "Nord 100" (?). I plugged this keyboard into the plotter and programmed the plotter so that different keys produced different symbols. I was basically lazy, and this produced a lot nicer looking drawings a lot quicker than I could do by hand. At approx the same time I wrote a device driver for Autocad for DOS to interface with this plotter. Not entirely sure which was the first.
What languages have you used since you started programming?
I will probably miss a bunch, but from memory:
Different variations of Basic and Visual Basic
A little bit assembly language for DOS
Pascal and TurboPascal
C, C++, C#
Not all above for production purposes I should add. I got hooked fairly early (after my C++ days) on SQL.
What was your first professional programming gig?
Apart from the plotter stuff I did, that would be FT/APPC and ACHAT. Think IBM networks, when the jury was still out on SNA or IP. I wrote a few small file transfer programs to work on top of APPC (think of SNA as the IP for IBM environments at those days, and APPC on top of SNA like Sockets on top if IP). ASEND.EXE, ARECEIVE.EXE, ADIR.EXE. Shortly after that I wrote ACHAT.EXE (think Messenger over APPC and SNA). Needless to say, this didn't take off. This was for OS/2, before Windows 3.0.
If you knew then what you know now, would you have started programming?
If there is one thing you learned along the way that you would tell new developers, what would it be?
Sorry, I have to say two things:
Enjoy it. If you don't think it is fun, you will probably not be that good at it. Stop and think from time to time and remember what made you do this in the first place. Yep: its fun.
If you can, try to find a mentor. Having somebody to work side by side with and learn from is invaluable. I can't describe how much I learned from PAX (Peter Axelson) in my earlier years. Don't be afraid to do the dirty work in this type of relationship - what you learn is worth umpteenth much more. I'm sad to see that this type of mentorhip seldom seem to happen nowadays...
What’s the most fun you’ve ever had … programming?
Probably the earlier years, I guess it always is. I believe it was around 1993. We were contracted to develop a software development tool, a middleware to assist developing PC <-> mainframe apps. This was VB 1.0, so OCX's didn't exist yet. We designed definitions ("interactions", "transactions" and such). We did a drawing tool for PC where one designed such interactions using various symbols and flow. One side was VB and the other (mirror) side was IBM maintframe CICS. For CICS we generated Cobol code. For VB we had a VBX which read the definition files from the design tool (no, developing a VBX was *not* fun). MFC was fairly new and it was my first OO programming attempts. I so much fell in love with the OO concept. I just couldn't believe how much more productive and how much more tidy your code and code relationsships became. I should add that all the difficult stuff was done by PAX, but being there, spending endless nights on design and pair-programming was great fun.
Who are you calling out?
Peter Axelson (long time, Peter!)