Everyone has a story about how they came into being a professional software developer. Below is mine. I am writing this mainly for myself, but I hope you, dear reader, can gain something from it.
How It All Started
Before I made the choice to become a software developer, I was a music major at a local community college. It was my dream, then, to be a band director since I enjoyed teaching and performing on stage. I did well as a music major and was hesitant to switch over to computer science. Computer science was out of my comfort zone, and music was all I knew.
Computers were something I simply played with. I did write some code, but mainly as a hobby outside of music. I did have a fleeting thought of becoming a game developer since I really enjoyed playing games, but I learned later that there’s a huge difference between actually making a game and playing one.
After graduating from the community college with an associates in arts, I decided that I wanted to remain in the area I was living and chose to attend the local university to obtain my bachelors degree. The local university did not offer music education, so I arbitrarily chose computer science based on the idea that I wanted to make video games, which was a very weak reason to choose the major.
During my time as a computer science major, I fought hard not to be labeled as a nerd or geek. I resisted my choice to be a computer science major, but since I had chosen it, I decided to stay in the program. I struggled through, but I managed to get a bachelors in science with a paltry 3.0 GPA. I was used to doing much better than that in school, but I chalk it up to not being “into” computer science.
During my last semester in school, I applied for every job in my field that I could. I lived in an area that did not have much to choose from.
A few months later, I received a call from a recruiter while shopping for the newest World of Warcraft expansion: “The Burning Crusade”. My mind was not on programming and computer science.
I decided to proceed with the phone screen (this was probably a mistake as I was not prepared!). The first, and only question, was one regarding the “:” operator in C++. I froze. I had no clue what that was used for. I was preoccupied with playing a video game.
As one might suspect, failed the phone screen. Later that month I moved to a new city: the city that the company was located in. This was the only company in the area that employed software developers, so I knew I had to try again.
I applied for every opening they had and went to every career fair they were at. I was persistent. I knew this was my only hope.
Getting My First Job
A month later I got a call for a quality assurance job. I knew I had to do better on this interview than I did on the phone screen if was serious about my industry.
I downplayed and looked down upon quality assurance. I thought, “They’re just testers. They point and click. That’s easy!”
That was the wrong way to think about it, but strangely enough, it allowed me to be relaxed and confident. I was myself and I was not pretending.
The in-person interview went well. We talked about different types of data that can go into fields, testing edge cases, etc. I thoroughly enjoyed the interview. I was offered a position in the company’s QA department, and I was elated. “Finally, I am doing it! I am in my industry!”
During my time there, I learned a lot. I wound up becoming their test automation engineer, taught several classes on programming in VBA, co-wrote their test automation strategy document, and mentored new QA members.
During my time as a QA person, something in the back of my mind seemed to keep saying, “You need to write code. You are wasting your time in QA.” So, every chance I got, I looked into becoming a software developer, I didn’t care which language. After a few years, I finally got my chance.
.NET Is Awesome!
The company offered cross training into either Java or .NET. My manager recommended I go into .NET, so I went that route. I taught myself everything I could about ASP.NET and did well in the sessions.
I was so excited! I would be getting out of the world of test cases, test scripts, and test plans, and into the world of writing code: what I went to school to do in the first place.
Since late 2009, I have been a .NET developer. I work easily in either VB.NET or C#, though I prefer C#. I have been through a few different jobs since then, but I have been fortunate enough to be a part of some major projects.
Which is Better?
I have been asked in interviews which one I enjoy more, QA or software development. I typically answer, “both” because each discipline has its upsides and downsides (much like any discipline I would guess). Being a QA person afforded me the opportunity learn how to think like a user and find inventive ways to break software. This helped me become a better software developer because I am able to think like this and code defensively.
Being a software developer allows me to utilize my creative side. After all, programming is both a science and an art. I love what I do and I would not change anything for the world.
What is your story? Were you born to be a software developer?