Overcoming Imposter Syndrome in Coding: Don’t Quit Before the ‘Aha!’

I started programming 10 years ago this fall, and in many ways it’s shaped who I am today.

But my future could have been totally different: I almost quit before I even started.

My introduction to programming was a large “Intro to engineering” class of 200 undergrads at the University of Michigan. For the longest time, I thought I was the only one in my class who didn’t fully get it. I was so close to concluding that coding just wasn’t right for me.

I’m so glad my 19-year-old self stuck with it, but I’ll always remember how tough those early years were for me. It’s taken me a long time to realize that the feeling I had then is something almost everyone experiences when learning to code.

Why do so many people find it tough when learning to code, and what can you do to push through when you’re just starting out? I’d love to dig into these questions and share some of what I’ve learned.

There’s a literal learning curve to coding

The toughest challenge for me in those early programming classes wasn’t learning new concepts.

It was the feeling that I was moving much slower than my peers sitting next to me.

I remember that sinking feeling of falling behind on simple early assignments — at my lowest point, I even had to resort to copying off of others in order to pass the class.

This was the first time in my life I wasn’t good at something, and I was ready to conclude this wasn’t for me.

What I didn’t understand at the time was that there is a literal learning curve to programming, and everyone hits their “aha!” moment, the inflection point, at a different time.

You know what to Google, you know the process of debugging, and you start to realize you’re capable of accomplishing anything by yourself.

Some get there way sooner than others like me — but I’m proof that if you stick with it, you’ll very likely hit that crucial point of understanding.

Focus on building, not comparing yourself to others

But if you haven’t hit that point yet, it can feel like you may never get there.

Traditional methods of gauging progress among students who are at different points in their learning curve don’t feel quite fair, and I believe this discourages many people, particularly underrepresented minorities, from continuing to learn how to code.

I didn’t realize what I was capable of until I started building my own Android apps for fun. I had never built an app by myself. It was the first time I wasn’t tested or judged and could build for my own enjoyment.

I hit many stumbling blocks — but the motivation of building something by myself kept me going. Countless tutorials and Stack Overflow questions later, and I had built and released a couple Android apps to Google Play.

More valuable than the apps themselves was the confidence I had gained to learn for myself.

That attitude of learning through side projects has always stuck with me. I believe that being in an environment that is focused on building, rather than being judged on your progress, is the best way to learn.

Breaking down the barriers of coding

I often think back and wonder what I would be like if I hadn’t stuck with coding. I’m grateful for how many opportunities learning to code has given me, and I owe so much to the skill.

Still, I wonder how many of those don’t stick with it and leave it before reaching their own “aha!” moment.

Whether you’re learning or teaching others, remember the inflection point of understanding. It’s not the same for everyone.

I’m excited to see so many developer bootcamps and project-based programming classes and websites cropping up lately, because they seem to drive home exactly that idea.

I often have friends ask me about the best way to learn how to code, and I’m ashamed to say I don’t have the answer (yet!).

What I can say is this: Everyone feels lost early on . Try to ride the motivation of building something on your own from scratch to get you through those tough moments and reach your “aha!” moment.