Career choices are a funny thing. I wasn’t thinking about a career as a programmer when I decided to go to university. I wanted to be a journalist. I wanted to be a professional writer, and I knew that the University of Lethbridge was a school that had a journalism transfer to Saskatoon. Little did I know that the journalism program at the Lethbridge Community College was all that I would have needed for that — two years less and more chance I’d get in.
While I was looking through the calendar for the U of L, I started thinking about the science courses they had to offer. Being a Liberal Education university, I was going to have to take four sciences. I was intimidated by math, having been through the wringer in high school. None of the core sciences were appealing either. I realize now that I probably could have taken some Geography, Logic, and something else, and that would have been enough. But I got drawn in by computer science.
Truth be told, that story was written a decade and a half earlier.
Picture it: 1982 or 1983, and my dad brings home a computer. A Commodore VIC=20, to be more precise. It was a clunky thing. It had a tape player as its only storage device. But it was fun.
We played a lot of games on that computer, but I got my first real taste of programming. The operating system accepted BASIC commands and you could write a program right on the command prompt and execute it in front of your eyes. Never mind that I didn’t know how to save anything that I’d written. Everything was in main memory, and I’ll never forget:
10 print “Liam is awesome.”
20 goto 10
Of course, I was six or seven, so I probably wrote something else, but the premise was there, and I was hooked.
Sean had some programming book, either it came with the computer or he got it at school, but I spent hours typing up the sample programs that were in it. I don’t remember anything about how any of it worked, other than when I tried typing out a game that they’d printed out. It rendered ok, but there was no interaction. Honestly, I was probably eight or nine by that point, and the fact that I got enough of it right to even run anything was amazing.
Then, after high school, I finally invested some money in a 286 8MHz computer. It was hopelessly outdated, it didn’t run any games or anything like that worth running, but it got me back interested in computers. We’d had a Colecovision ADAM, but I hated that thing. If you didn’t load the tape drive or the cartridge bay, it loaded into a word processor. I’ll grant that that’s something I’d appreciate nowadays, but back then, it wasn’t BASIC, so I didn’t want anything to do with it.
When I invested some money in a more modern computer after the 286, one that had more than sixteen colours at its disposal, and a whopping 8 MB of RAM, one of the very first things I got was a copy of Borland Turbo C++. I wanted to learn how to program, so I also bought a book. Yes, it was C++ for Dummies, and yes, the stupid thing had the requirement of already knowing how to program in C, so I did the next thing, which was pick up C for Dummies and start learning that instead.
Granted, the book was full of stupid things like Microsoft-specific commands that didn’t work when I started sampling Linux, but it got me started down the path to loops, conditionals, variables, and functions. By the time I started the intro to programming course at university, there wasn’t really anything for me to learn. But I studied. And I asked a pile of questions. Any time the professor said, “Let’s just pretend that it happens by magic for now,” I knew I had a question to ask. And he was more than willing to help me figure it out.
I did waver in my commitment to graduating. I struggled pretty mightily with it, especially over summer when I had a job that was paying me right then. Couple that with a suspicion that maybe I wasn’t good enough, and you had the fact that I only intended to come back after summer once, and that was the year that I spent taking classes over the summer so I could finish up at Christmas instead of in the spring. By then, I knew my back was basically shot and there wasn’t much chance I could do a full-time labour job anymore.
Then there were three very demoralizing years after graduation, when I worked as a Document Control Clerk, then a supervisor. I got what I needed from that job, mainly money to start my life as a married man and experience in an office setting. I struggled, as I failed to qualify for job after job, not even getting an interview, wondering if it would make more sense for me to go back to school for something like millwright training, and just start over. It felt stupid. I’d gone the Student-Loan route through university, and if I was going in for more training, it would be even more time before I could start paying that massive debt-load down, not to mention how much I would have to pay to get certified.
Eventually, though, I got through the resume process, I got into an interview, and I did well. Well enough, at least, that they hired me. Since then, the foot’s been on the throttle and, despite a couple of setbacks, I haven’t really spent a lot of time looking back. If someone asked me how I identify myself, the third thing on the list would be as a programmer. And if they had something to say about identifying too much with career, I would maybe partially agree with them, but honestly, it is so much more.
Programming is more than a job for me. It’s a mindset. It’s how I go about solving problems. It’s how I come to conclusions about things. Thinking this way got me my second and third mortgages. It helped me to decide to become a contractor and also to become a permanent employee again. I’m not saying I’m an unfeeling computer. Impulse and passion come into it a lot too, no doubt.
I like building things. I like to see them come to life. When all the pieces fit together and it not only works well, but hides the complexity of what’s been built from the user, that’s a satisfaction I get from very few things — the two things I identify with before programming providing those. When I’m faced with a problem, I don’t panic. When I hit a setback, I don’t usually whine. I look for other solutions. And that is because I’m a programmer.
Y’know, in case you were wondering why I do what I do.