Terry Thibodeau's Blog

Welcome to Terry Thibodeau's Blog Sign in | Join | Help

How Did I Get Started In Software Development?

Called out by Sean Feldman. Here we go:

 

How old were you when you first started in programming?

Not counting Turtle, I think the first actual program I wrote was a MadLibs story generator in grade 7. I would have been 12 or 13. It's no Pong, but there you go.

 

How did you get started in programming?

I took an interest in computers with the very first one I saw in 1981 (grade 1, an Apple computer). From that point, I loved computers and always gravitated to technology in some way. I continued using computers whenever I could for school projects, etc.

In 1986, I learned of the Commodore 64 and begged my parents to buy one. I was elated when I got it for X-mas that year! I immediately called up my geeky-est friend who also had one to rush over and begin copying every game I could from him. :)  Ahhh, Ghostbusters, Impossible Mission, BC's Quest for Tires....fun times.

I attempted to program the Commodore by buying magazines that included "programs" you typed in. After countless pages filled with "Peek" this, "Poke" that, I would attempt to run the program that usually consisted of an controlling and asterisk floating through various other ASCII characters for about 3 seconds until the program would inevitably crash. If it wasn't a typo in the magazine's thousands of lines of Peeks and Pokes, it was typos on my part. I wouldn't call this programming, per se, but it was definitely an experience in the complexities of telling a computer what to do and how to do it.

 

What was your first programming language?

BASIC

 

What was the first real program you wrote?

I'd say it wasn't until the Computer Engineering program at NAIT in 1994 that I wrote anything that actually served any purpose. There were real-time, motor control and monitoring programs written in Assembler for the Motorola 68HC11, temperature sensor monitoring in Assember (again, using the 68HC11), and various others in Assembler and C.

The first real Windows program was written in the second year at NAIT. It was a paint program written for Windows95 in C. There was no fancy .NET framework to do things for you. This was pure Win32 programming. You were responsible for the messaging loop and catching and handling any WM_PAINT, WM_MOUSEDOWN, WM_DESTROY, etc. messages sent by your window. Man, this was tedious programming. You can't really appreciate where development is now with .NET until you do Win32 API development. :)

 

What languages have you used since you started programming?

Assembler, C, C++, Pascal, VB, VB.NET, C#, Web stuff (HTML, javascript, vbscript, etc.)

 

What was your first professional programming gig?

When I got out of college (1996), I took a job at a lawfirm in Edmonton adding an extra 2 MB of RAM to the existing 2MB in the all of the firm's 486 SX computers (wow, the raw power was amazing!). During that time, they had just created a Windows 3.1 (yes, 3.1...lawfirms are notoriously slow to adopt new technology) installation to deploy throughout the firm. Sometimes, I had lots of time between waiting for the computers to come off of the floor to get their HUGE, 2MB RAM upgrade, so I started installing the Windows 3.1 configuration (ie. copying the C: drive structure from the network) to the upgraded PCs.

When I pointed out all of the various configuration improvements that could be made, the manager in the Calgary office took notice and offered me the Network Administrator job (after firing the existing admin). I took the job and, over the next couple years, started creating numerous batch file utilities to change installed application configuration based on network connectivity at boot-up (downtime was common), launch programs in certain ways for various groups, etc.Creating all of these useful utilities made me feel more creative than just configuring computers, networks, and checking checkboxes in various administration applications. It was this that made me realize that I wanted to dive into programming again.

In 1998, my brother was working at this start-up software company in Calgary (not worth mentioning the name), so I went to visit and see what the environment was like. It was all the glitz and glamour of the relaxed atmosphere complete with Foosball, pool table, Playstation, satellite TV that sealed the deal for me.*

The first thing that I did there was create a setup/deployment application for installing one of their existing apps. I then moved to helping with the creation of a version control application (shout out to Jason L.) written in C++. This was my first exposure to object-oriented programming and I've been hooked ever since.

 

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

In general, I think my fascination with technology made it inevitable that I would pursue it professionally on some level.

However, there are a few things that I always wish I had attempted on a professional level.

I've always been very musical and have played drums, guitar, bass guitar, and used to sing in a couple of bands (actual, live gigs and everything). Over the past 10 years, I've often wished that I pursued music on a professional level. Knowing then what I know now, I may have decided to be a professional musician.

I've also recently become obsessed with construction, home renovation, etc. After getting married and having 2 kids (not necessarily in that order), I have found my quality of life priorities shifting where I feel the need to possess tangible skills like construction. I keep thinking about what I would do if / when the world economy crashes and we all switched into survival mode. Would I be able to program a house for my family to live in? :)

 

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

Technology is so fast-paced that you can get caught up in trying to learn it all. I've found that it is easy to be critical of myself for not being able to keep up with person X or technology Y,Z that is coming out every month. My advice is to forget about what everyone else is doing or what's brand new that company A says you need to be doing and focus on constantly improving the areas that interest you the most.

Secondly, if you truly want to be in this profession, you shouldn't be content with coasting by in the shadows. The software industry is so young compared to other engineering disciplines and it takes continual innovation and improvement by passionate, vocal individuals to shape its future.

Failing to improve your skills because the current "senior" (often in time only, not skill) developer's ego doesn't allow for improved ideas is only hurting you. Don't let your innovation and passion be snuffed out by those who are afraid of change.

Seek out challenge and adventure. That is, unless coasting in the shadows is what makes you happy then, do that. :)

 

What's the most fun you've ever had programming?

I think the past 3 or 4 years that I've immersed myself in test-driven development, design patterns, etc have been both the most fun and the most frustrating. It's tough to "unlearn" bad habits, but very rewarding when you persist and see the positive results of your new "good" habits.

 

Who am I calling out?

Anyone who wants to share their experience

 

* Don't let this type of stuff fool you. This company exploited the employees terribly by paying the worst salaries I have seen and guilting them into working overtime, all-nighters, etc. They also had a habit of yelling at clients in meetings. The company is long since extinct. :D

Published Tuesday, July 15, 2008 8:22 AM by Terry Thibodeau
Filed under:

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Comments

 

wedding fonts said:

I am a huge lover of your blog! Look at my website, You can submit your blog there!

July 20, 2010 1:55 AM

Leave a Comment

(required) 
(optional)
(required) 
Submit
Powered by Community Server (Personal Edition), by Telligent Systems