Some More History

Tuesday, August 11th, 2009

I thought I would delve a bit further into how I ended up in software development in the first place. I believe the first time I did work on a project was in middle school. My older brother’s friend Anthony came over to use our computer for a computer science project. He was older, cool, a kick ass soccer player and most certainly someone I looked up to at the time.

The project was to create a website for that new thing called “the internet.”  In typical younger brother and wanting to be cool fashion I stuck my nose in while he explained the project to my brother. They “took a break” from never really starting to watch MTV (music videos at the time of course) and I snuck onto the computer and proceeded to do his homework. I was genuinely interested in how this whole web thing worked and I wanted to take on the challenge of a homework assignment four grades above my level. I mucked around in HTML for a few hours and made a pretty badass website for the time (1995ish). As I recall it most certainly involved a heavily gradient background, a bunch of pictures with white backgrounds, some hyperlinks in flashing red and enormous bolded text.

Anthony saw it, thought it was awesome, and took two dollars out of his pocket and tried to give it me. Two dollars was a lot of money.  I got paid ten for mowing our one acre lot (tangent – with a push mower, and I was short enough that I couldn’t push on the upper handle so I had to put one hand on the cross frame and the other up on the kill switch); so two for doing something I thought was fun was a great deal. I was genuinely surprised that he would offer me money for the work. I didn’t want the money and immediately said no. Anthony persisted though. Why not? Indeed, why not? Because he was cool and I was trying to impress him? No. Because I thought money was a capitalist venture that led to a life of misery and shallowness? No way. All I can say is that it didn’t feel right.

Really though, how do I have a degree in English and now I develop software? As just explained I always liked computers and was always good with them. I took Pascal and VB in high school. I built my first computer with my friend Doug and took it to college. It functioned about half the time so I learned a lot of trouble shooting the hard way. By messing things up and having to fix it myself. In college I took a Java class which was fun in and of itself, but the class sucked.

So one college summer I scored an internship at a company called SolidWorks that did MCAD (mechanical computer aided design).  Think of people rotating boxes and stuff in 3D and then imagine building whole trucks and cars on your computer. Super cool stuff. So I interned in Software Quality Assurance and it was mind numbingly boring, but it paid well. Two summers later I graduated and started working in QA full time. The reason it was boring was because you had to test everything every time the software released. At the time that was an extremely aggressive six to eight weeks. Think huge spreadsheets, think clicking the same five buttons in five factorial ways, think typing up bug reports, etc.

On occasion I would help some developers code up some ColdFusion or ASP pages that we used for internal bug tracking purposes. This kept my development skills somewhat fresh, but the real firestarter was when I realized our application had an API. And not just any API. An API that was robust and allowed you to do nearly anything. Within weeks I was teaching myself how to automate all my work. I could not BELIEVE that all of SQA wasn’t already leveraging the time saving power of software automation. It was like a shining beam came down from heaven and smacked me in the head with a baseball bat. Within a few months developers and quality assurance engineers were asking me to code automation scripts for them to test their projects. There is more to this story, but I will addres that in a separate blog post.

So fast forward a couple years and I am doing full time software automation for SolidWorks. Launching the project was fun, but I found that I had outgrown the limited amounts of development associated with automations. I wanted more and when the opportunity arrose to work for a startup company in the MCAD space I was all over it. The next two years are where I really learned how to develop. I knew of object oriented programming and I knew of best programming practices, but it wasn’t until I moved from an environment working on scripting to an environment where object oriented programming was absolutely required that I understood it. I couldn’t believe how useful inheritance, polymorphism and encapsulation were.

At first the learning curve was tough, but from years of reading and working in software development I quickly came up to speed and was creating my own classes, extending the base MS classes and manipulating our new software application with ease. I had always wanted to do full time software development, but never felt comfortable saying I was developer without a formal college degree. The hands on experience at LC Design turned that around. I felt comfortable saying I was a software developer and I had the confidence to know that I could tackle difficult programming problems. It truly is an immersive field that requires an analytical mind and enjoyment in producing intelligent code.

So there you have it. In a thousand words or less… how one goes from a degree in English to a real world degree in Computer Science!

Leave a Reply