In fourth grade (age 10 or so) one of my classrooms had a Commodore VIC-20 that I remember writing graphics on (ASCII art) and password-protected “club” programs (you needed a password to get in to the main menu, which then let you participate in the “club” but really beyond the password part I don’t remember much interesting going on inside). A couple of years before that perhaps (age 8 maybe) my dad got an Apple II Plus on which I wrote some of the same kinds of simple programs in BASIC. I also remember doing some simple things with VisiCalc, though I think I was a bit older by then. Sadly none of my early work survives…

How did you get started in programming?

My dad showed me how to do some simple things on our Apple, and at school we did some projects on the VIC-20. Both of these used simple BASIC languages that were pretty interchangeable. Later on I took a computer programming class in high school (around 1990-1991) that used TurboPascal and got a graphics calculator (TI-81) that I programmed as well. I found that I really enjoyed the problem solving aspects of programming as well as science in general, and figured that science or academics or both would be my career path.

When I went off to school, my intent was to major in Physics. However, I had an Air Force ROTC scholarship that required I major in one of a handful of subjects, one of which was Computer Science. So I opted to double-major Physics and Comp Sci. The Air Force ended up withdrawing their scholarship offer due to a knee injury I had playing soccer in high school, which resulted in my switching to the more affordable Ohio State University, and eventually dropping Physics in favor of just Computer Science because I excelled at and enjoyed the latter moreso than the former once more advanced courses ensued. So, I do at least owe my current career to the Air Force and their ROTC scholarship, even though they kind of screwed me by not letting me know my medical history would disqualify me until well after I’d already begun attending classes under the auspices of having their scholarship to pay for it.

What was your first language?

BASIC on the Apple II and Commodore. My first classroom experience with programming used Turbo Pascal. I still kinda like the := syntax for variable assignment…

What was the first real program you wrote?

I don’t think any of my early playing around with BASIC produced something I would call “real”. The earliest thing I remember programming in Pascal in high school was a temperature conversion application that would take a temperature in Celsius and convert to Fahrenheit, and vice versa. Eventually it was extended to work with wind chill factors as well, giving you the effective temperature after taking wind chill into effect.

What languages have you used since you started programming?

BASIC, Turbo Pascal, Scheme, various shells including Tcsh, Perl, C, C++, Java, VB5, VB6, VB.NET, C#, SQL, VBScript, JavaScript. Scheme, for anybody who hasn’t tried it, is a lot of fun. It was my first college computer language at University of Chicago and I still remember how the instructor spent less than one class explaining the language’s syntax, having essentially covered it all. I haven’t yet found a version of Scheme for .NET (pointers welcome), but F# is a similar kind of language and one I’d like to learn more about.

What was your first professional programming gig?

I worked at LDS, Limited Distribution Systems, in Columbus, Ohio while a consultant with Software Architects, Inc. (now owned by Sogeti). Upon starting with Software Architects, I’d had a 2 week boot camp on VB5 and Active Server Pages and Visual Interdev, and immediately afterward I was placed with LDS. While early on I did some work with their Informix database and I think it was Netscape’s web server, I was quickly (and surprisingly) tasked with building a small inventory management application by myself as the rest of the team I was attached to was being diverted to focus 100% on Y2K compliance work. This left me, a couple of months out of school, to try and gather the requirements and build a system using whatever technology made the most sense. I evaluated several options available in late 1997 and recommended going with ASP. While working on this project, which tracked incoming containers at an international port of entry, I became involved with ASPAlliance.com as one of its early authors in 1998 (a year later I would take ownership of the site). The project was delivered in mid-1998 under the name “Four Walls” as it was responsible for everything that happened to products received within the four walls of the warehouse at Rickenbacker.

If you knew then what you know now, would you have started programming?

Definitely. I can’t think of anything I’d really rather be doing, or that would have offered me the opportunities I’ve had. I’m sure there would have been different opportunities in other fields, but I have no regrets about my choice to become a software developer. And I might not have spent as much time on physics, but probably I would have. I love physics, just not the really tough math that comes with the deeper levels of it.

If there is one thing you learned along the way that you would tell new developers, what would it be?

I chose to be a consultant coming out of college so that I’d be able to see how things worked at a variety of companies and work on a variety of technologies. This is one of the few plans I’ve made that actually worked out as I’d hoped. I really enjoyed the time I worked at Software Architects as a consultant for the first five years of my career (if I hadn’t, I surely would have left sooner). I would suggest that new grads strongly consider doing some consulting work if they’re not already certain of the kind of software they want to be involved in building. Alternately, getting involved in one or more open source projects (or starting one) can be a great way to explore other technologies and projects (but not so much corporate cultures and business approaches) while working anywhere.

What’s the most fun you’ve ever had…programming?

Hmm. I don’t know that there’s a specific project, but I really enjoy web programming primarily because of the ultra-short feedback cycle it provides. I remember ASP was great because you could just save the .asp file and hit refresh in the browser and see your changes (and if you didn’t instantly see your changes, then it’s likely you forgot an RS.MoveNext< /em> in your While Not RS.EOF loop… yeah, I did that a few times). Recently I’ve had a lot of fun building some small sites (the only public one is DevMavens) with the new ASP.NET MVC framework. It’s quite refreshing to have such a simple and testable solution for building a web site, as the standard web forms model had a habit of growing large and complex in many of my applications.

Tag! You’re It!

At this point I’m obliged by the blog meme code of conduct to tag a few other bloggers. I tend to be late in getting these, so most of the folks I know usually have already been tagged and written their post, but here goes:

About ardalis

Steve is an experienced software architect, trainer, and entrepreneur. His courses on Pluralsight help developers write better, more maintainable code. He is currently serving as CTO for Falafel Software, and is a Microsoft Regional Director and MVP.

Keyvan Nayyeri

Thank you for accepting the invitation, Steve

Software Development Company

Thanks for this article really helpful for beginners who want to start career in software development or want to become a programmer. I think to start a programming we should have the basic knowledge of programming like loop, variable, functions etc.

Software Development,Website Design Company

What a Brilliant Article on Software Development It’s very helpful for the beginner who want start in Software Development Field nice job keep it up.

About Me

Steve is an experienced software architect, trainer, and entrepreneur. His courses on Pluralsight help developers write better, more maintainable code. He is currently serving as CTO for Falafel Software, and is a Microsoft Regional Director and MVP.