How did I end up as a Software Developer?
Initially, I wasn’t targeting a career in software development at all. The truth is that I was coming into my late twenties and found myself flat broke. I was working a dead end job that would never come close to being able to financially support myself. At the time, I was a cook at a chain restaurant being paid the bare minimum legal wage.
This sounds pretty scary, but it’s actually quite common for people to find themselves in this situation. I wasn’t stupid nor did I lack the drive to succeed; I was simply just a by-product of a small town that lacked any real opportunity. For me, it was not a sustainable way of life and it became apparent that I needed to change my situation.
I applied to many other jobs that paid a little better and was devastated every time I received the “unqualified” response from a potential employer (if I even got a response at all). I wasn’t asking for much, the jobs I was targeting was an improvement from my current situation, but not much better. I decided to “get qualified” and looked into taking classes at my local community college.
As luck would have it, I was able to enroll and due to my financial situation I was given some assistance with the tuition. The rest I was going to have to either bootstrap (which I lacked the funds) or finance via deferred loans.
When I enrolled in college I had decided that I wanted to work in the IT industry. I had always loved working with computers and I had become the go-to guy for my friends when they were having issues with their computer.
I figured if I could get my A+ and Network+ certification I would be able to get a job as tech support somewhere and start an actual career. So along that path I went, for all of two semesters. So, what happened?
When I started attending the local community college I had enough money left over for books and such. After it was all said and done I had a little bit of money left over and decided to build a budget gaming PC.
I’ve always loved playing PC games, it was one of my favorite past times as a kid (back when Quake was popular the late 90’s). I justified the purchase because I actually did need a computer, I had too much homework that required a computer and being restricted to using the ones at the library was becoming too inconvenient.
Playing PC games sparked an old question I had when I was younger, “How do I make my own video game?” I knew that it was through programming, but I didn’t know which language to use nor how to even program. After some intense googling I had learned two things:
The games I was playing were usually developed using the C++ programming language
That there was a “Definitive C++ Book Guide and List” thread on a website called stack overflow for helping beginners like myself determine where to start learning.
In short, I picked up the book “Programming: Principles and Practice Using C++” which was authored by the inventor of the C++ programming language, Bjarne Stroustrup. I spent as much of my free time as I could trying to understand the contents of the book and attempting to solve the exercises at the end of each chapter. After a few months I was able to start building small text based games using what I had learned, it was quite fun actually, but it was just a hobby at the time.
I needed a job!
I completed my Fall and Spring semesters hardly making a dent in the curriculum (I had so many pre-requisites to take that didn’t count towards my Associates degree that the first year was just catching up on stuff I should’ve learned back in High School). The Summer was here and I needed additional income to help me get by.
At this point I was playing around with Project Euler practicing solving problems using C++. I found it fun, almost like doing something like sudoku. In my area at the time there weren’t any companies in need of IT or tech support; however, I did discover that an hour north of my location there were two small software companies.
I felt pretty confident in my programming skills; so I figured what the hell, I’ll just apply for a programming job. The worst they could say would be no, which I prepared myself for. I was surprised to find that I was quickly able to line up interviews with both companies.
My First Interview
The first interview was pretty rough, I had no idea what to expect; and quite frankly, the interviewer was pretty rude. I felt like they took offense that I had even applied even though it seemed like I was answering their questions adequately. They were just asking general questions and nothing really related to programming.
They then sat me down in front of a computer and asked me to scrape a screen for certain information using their software. I had no idea how to use their software nor did I really know how to scrape screens at the time.
Needless to say, I didn’t get the job. To this day, that has been one of the weirdest interview experiences.
My Second Interview
The next interview I had was with a small company in the industrial automation sector. I was sat in an office with the companies CEO and CTO and they asked me about my background, general technical questions, and a few questions about my personal projects.
I was then given a written logic test and had 45 minutes to finish it. I got through about 75% of it before I ran out of time. They took my test and asked me to wait a few minutes while they stepped out to grade and discuss my candidacy.
It felt like I an eternity waiting in that room and all I could think of was how bad I thought the interview had gone. I received no feedback to really gauge how it was going so I was silently preparing myself for the rejection.
After several minutes they came back in and asked me if I knew the C# programming language and WPF (Windows Presentation Foundation) and how much compensation I was looking for. I did not know either technologies at the time and so I was honest.
I told them I didn’t know either technologies but could quickly learn. As for compensation, I told them while I know that I don’t currently have the skills they’re looking for but if hired I would still need to drive an hour to work, so I asked for $12 an hour to compensate for the gas. Thinking I was asking for too much, I quickly followed up with something along the lines of “if you think I’m not worth that rate after a few weeks, feel free to terminate my employment.”
They looked puzzled at first, then asked if I could start the next day and gave me a brief tour of the office.
On my way out they handed me a book on C# and another on WPF. They informed me that I was going to assist their quality assurance team for my first few weeks to learn how their software works and what they do as a company.
During those first few weeks I was to learn C# and WPF on the side and then they were going to test me on both technologies. If I passed then they would move me onto the developer team as a junior developer and if I failed I could remain on QA if my performance was adequate; otherwise, I would be terminated.
It’s kind of funny to think of it now, but, I had left the interview thinking, “wow, I’m actually going to be making $12 an hour” (for context, minimum wage was $8.25 an hour at the time and I couldn’t find a job that would pay me more).
For the first time in a long time things were starting to look up. I had finally been given a shot. Determined to succeed, I immediately went home and started learning C# and WPF like my life depended on it…because it did. Long story short, I succeeded and moved into a junior developer role with this company.
What are your thoughts?
Do you think I was well prepared for my first interviews? Was I just lucky to be at the right place at the right time? Do you think I asked for too much or too little compensation?
What are your thoughts? Let me know in the comments below.