Ever since I played my first video game, Super Mario World in 1991, I have had an interest in creating video games.
Ever since I first played Mario Paint in 1993, I have had an interest in graphic design and animation.
Ever since I dabbled with a hand-me-down Commodore 64 computer in 1994 at the age of 10, I have had an interest in programming.
Ever since dabbling with Half-Life's Worldcraft editor in 1998 I have had an interest in 3D modeling.
Ever since I received unmistakably awesome encouragement and support from my freshman English teacher in 1999, I have had an interest in writing.
Ever since my first love and loss in 2000 and 2005, I have had an interest in the human psyche.
Through the past twenty years I have had many interests, all of which stick with me today to some degree. In college I was told that I had to pick one of these interests, spend tens of thousands of dollars on an education, and make a career out of it. My first two years of college were a mess: I liked graphic design first and foremost, so I started a VCT major. I did not fit in with the numerous art classes that I had to slog through, so I changed to my next passion, writing. I found the numerous English classes I would be taking relaxing, simple, and easy as pie. I would graduate on time if not early!
Something did not click, however, and after a year and a half at Bowling Green State University I stopped, re-evaluated my career options, and finally made the biggest decision thus far in my life - I chose a major: computer science.
While I had many other interests, I eventually chose computer science because out of all my interests, it was the one that I consistently revisited year after year. I was not always a steady writer, I was not much of an artist by the time I hit my twenties, so graphic design and writing had to be put aside for a while. Programming scared me a little bit, because up to that point in my life I only dabbled with various versions of simple programming languages like BASIC, DarkBASIC, VisualBasic - see a pattern? Was I smart enough to turn a moderate passion into a career?
Fast-forward to 2010. I am no longer a student, I am a professional. So why do I constantly feel like I am a student still?
I work with a "team" of about ten developers (team is in scarequotes because honestly, we all work pretty individually). Our department as a whole provides complete IT services for our medium-sized company. We are a web company, and as such, IT is integral to the operation of the business. Each developer plays an important role and each developer is expected to maintain a certain level of competence in his area of focus in the department. While I have been mostly successful as a web developer in the past two years with my current company, I have a confession to make: I feel like a fake.
Our entire department skews young: mostly twenty-something developers with a couple of outliers older than that. Despite our relatively inexperienced crew, I cannot but help feel that I am an inadequate developer not worthy of my job.
Why do I feel this way? Here are a few reasons:
- I spend far too much time Googling answers to my questions.
- I get stuck on problems that sometimes take precious hours to solve.
- I get paranoid that my software will break, so I check my work email religiously.
- I rarely pose questions to my peers in case the answer is something "that every programmer should know."
- I am afraid of new technologies and do not always feel that I have the time to learn them.
Am I overly paranoid or are do these concerns mean I am not cut out to be a programmer? Programming is, after all, a difficult profession that demands great attention to detail and analytical thinking. Or does it? While I am always questioning myself as a developer, I think I may be giving myself the short end of the stick.
Recently I took a long, hard look at the list above and finally realized that while I struggle with these particular things, I do with good reason. Why am I use Google to answer my programming questions? Because I forgot the syntax of a particular language grammar. Why do I get stuck on problems for hours on end? Because the problem is hard. Every programmer gets stuck at one point or another.
This thread on Reddit was published the day after I started writing this post, and it resonates with me on so many levels. Read it if you want to, but the point to take away from all this worry is pretty simple: I am a good programmer because I recognize my own limits and grow when I challenge my doubts. I'm not a bad programmer because I don't have all the answers at my finger tips, but at least a competent one for learning my bounds, questioning my current work, and pushing to grow when I feel I have stagnated.
So while I may feel like I am a "fake" at work, I do believe I never give myself enough where credit is due. My own self doubt, in this case, may be the best thing I have going for me.
B3 out.