This horrifying image courtesy of newsfeed.com

Impostor Syndrome

Anyone who has spent time working in the programming industry is aware of Impostor Syndrome. For those who are uninformed:

Impostor syndrome (also known as impostor phenomenon or fraud syndrome or the impostor experience) is a concept describing high-achieving individuals who are marked by an inability to internalize their accomplishments and a persistent fear of being exposed as a “fraud”. — Wikipedia, ‘Impostor Syndrome’

Even if you have 10 years under your belt, you fear that really aren’t the programmer/painter/juggler (I don’t know) people believe you are.

Now, while this is something that I’m sure exists in every career path it is something that is incredibly prevalent in Programming. I’ve been fortunate enough to be introduced to programming at an extremely young age (around 10 years old). So I know what it’s like to have no idea what I’m doing, and also to have a much more solid idea of what I’m doing. What I’m saying is, I know the difference between totally winging it and giving an informed and planned stab at something.

Prevalence In Software

Anyone that I’ve spoken to that’s had an extended period of time programming has questioned their skills at least once (if you haven’t you probably should). It’s important to question and prove your knowledge to yourself. The point in which it’s a problem is when you cannot convince yourself that you really do know things. This is something I’ve struggled with and many close friends have as well. I think the main cause of this is services such as Stack Overflow.

Nobody is going to question the utility of Stack Overflow. It’s a wonderful resource (with an albeit notably toxic community). The concern comes with seeing the answers people provide. Likely the people that answer your questions are going to be more knowledgeable than you. I mean hey, you’re the one asking a question, right? Programming is evolving constantly, so you’re never going to stop asking questions. The problem is being in direct contact with those people.

From your perspective in that scenario, everyone else is a teacher. They’re a superior. They question you, prove you wrong, point out issues with your original question and then eventually provide an answer.

In other career paths you obviously have the knowledge that, “Yeah, someone out there knows more than me.” but with programming, every day you use software that puts you in direct contact with those people. This is a wonderful ability but it puts that person right in front of you. You think, I’m always the one asking questions and there is always someone who knows more than me.

This really encourages you to question your own ability. To wonder why there is always someone out there to easily answer your question. Maybe you’re the type of person who is wonderfully confident and you take this in stride. You see that as a positive that you’re asking questions. That’s great! Keep doing that! That’s a rare skill though, not many people can look at those things so positively. I definitely can’t.

My Struggle

Why did I make this post? Purely because I want to share what really helped me get over this insecurity. I decided to spend the amount of time it would take to answer just one question on Stack Overflow. Once I finally found one, albeit extremely basic? I thought “Eh, maybe just one more.” I answered another one. And then another.

I quickly got more comfortable answering more difficult questions and within a week I’d answered quite a few. I realized that, this is something I never was able to do, and something I wouldn’t be able to do if I didn’t actually understand the topics. I then decided for fun I’d spend some time on some IRC channels, discuss some topics with people. Often I found myself teaching others some new C++17 concepts (no pun intended).

So, that’s what I want to say. Get involved in a community. Whether it’s Stack Overflow, #programming on freenode, or some other development forum. Additionally, force yourself to keep a list of accomplishments, of things you are proud of. Refer to it anytime you feel discouraged and if they no longer feel like huge accomplishments?

That’s an accomplishment in it’s own.

Foot-Notes

I’m hardly an experienced programmer. I’ve programmed for ten years in languages such as C, C++, JavaScript, Lua, Python and such but until last year had no formal education.

This might make you wonder why I wrote this, and honestly it’s because I think I’m the type of person who should write this. Sure, someone who’s worked at Google for 20 years can write a blog post about how they don’t feel like an impostor but those are generally the people that your every day programmer compares themselves to.

So take it from me. I don’t have full confidence in my skills (and hell, I honestly shouldn’t. I’m hardly even a professional yet.) but I have raised my confidence significantly by putting myself around others and really seeing with the average knowledge-set is.