When I began graduate research as a Mechanical Engineer, I was thrown into learning computer programming for the first time and collaborating with subject matter experts in the virtual reality field. It was exciting, however it only took a few months before I began developing this feeling… A constant fear that I was among geniuses who would promptly disregard, ridicule and discredit me at a moments notice when they discover, with disappointment, that I was not as skilled, intelligent or knowledgeable as I appeared. It wasn’t until watching a fresh new graduate student explain this exact feeling of unworthiness to the senior Ph.D. candiate in the Ph.D movie that I discovered this feeling was common among those in peer reviewed and technical fields.
While Ph.D. Comics taught me I was not alone, I was still far from overcoming these worries. They followed me after graduate school to Apple where I took a position as a Software Engineer in the iOS group. At Apple I again interacted with a plethora of subject matter experts, now at one of the largest companies on the planet. Luckily for me, a year into that stint I fell upon an article which finally defined this feeling as ‘impostor syndrome’. Armed with a definition I did some research and found great posts from Alicia Liu, Scott Hanselman, Steve Schwartz and this post on yacoset.com (a site for software engineering tips) describing that this feeling is common and actually counter productive. With their help I’ve come to accept that someone will always know more, have more experience and be more efficient in one area or another than myself. Quite contrary to these feelings, being surrounded by experts and being comfortable accepting critique is the best way to grow, become a better engineer and ship great products. Even as I strive for perfection, always hoping the previous bug will be my last, I realize I’m only human and mistakes happen.
I was able to start overcoming impostor syndrome by first accepting who I was. I didn’t start programing in my early teens, graduate from some presitgious university or even do I have a computer science degree. However, I am a member of a growing group of self taught programmers who are creative, love problem solving and are efficiently great at learning new things. At Apple I interviewed graduates of top universities in computer science who couldn’t solve easy algorithm questions or walk through an ambiguous problem. At the same time I worked with a couple of great engineers who started at Apple with only high school degrees. These self taught software engineers can come from medicine, finance or some other engineering background, but really anywhere. In fact, not having a computer science degree may be one of this group’s greatest strengths. Different people bring unique perspectives and likely will be passionate about different problems. Heuristic algorihms like Particle Swarm Optimization, Simulated Annealing or Genetic Algorithms would never have been created if not for the cross polination of zoology, material science and biology with computer science. Nor would Lyft have been created if not for someone from the hospitality industry noticing a deficiency in transportation.
I often say the hardest part about being a software engineer can be looking someone in the eye and telling them you can complete some task you have no idea how to do in that moment… and then provide deadlines. I’ve found achieving this confidence and overcoming impostor syndrome involves developing a stedfast trust and knowledge of oneself. I’ve found this trust can be cultivated a number of ways including:
If everyone knew what they were doing in software engineering then all the puzzles would be solved and it would be no fun at all. So trust thy self, be curious and leave those impostor feelings behind. Good luck.