This blog article is probably terrible

2 minute read

In a previous post I talked about starting the Google Foobar challenge. Great news: I finished all five levels, and there’s an email from a Google recruiter sitting in my inbox. Bad news: Now I feel like a fraud. 😔

I have never interviewed for one of the big software companies. I have, however, read a ton of people who describe what those interviews are like. They talk about how they spent hundreds of hours doing coding challenges, hundreds of hours watching presentations about system design, and how they’ve read every book and taken every course and done every single thing possible to prepare - and how they failed to get the job. I do the occasional coding challenge, sure. I listen to some podcasts so I can hear other software engineers’ perspectives. But have I done that level of preparation? Not even close.

So I started looking up Google interview questions and reading people’s synopsis of how their interviews went. After 20 straight posts of people talking about insanely difficult problems, I start to feel ill. “Should I tell the recruiter not to bother? Do I even know how to program? How did I ever even think I’d be able to do this?” All those imposter questions come flooding in.

It’s that part of the Dunning-Kruger effect that people rarely talk about. After that initial peak where we all think we’re geniuses, there’s this huge valley where we realize how much we don’t know. And that can only mean one thing: I must be a fraud! Somehow I have tricked myself, my employer, and this Google recruiter into thinking I know a lot, when I probably don’t even know 1% of the total software engineering topics! Sure, I have a full time job where I program things for a real business that sells that software to real customers, but how much of it did I really write? In this low point on the Dunning-Kruger model, it feels like maybe I’m just copying and pasting things from StackOverflow and that I don’t actually know how anything works.

But please, to anybody reading this: do yourself a favor and realize that nobody knows everything. Our field is so vast and deep that if you found the single person who knows the absolute most about programming, even they probably don’t know 1% of it all. Look back at where you came from. Remember when recursion blew your mind? Or that time when you deleted a curly brace and spent 5 hours wondering why your code wouldn’t compile? Or that time you used = instead of == and everything seemed fine until OH NO IT ALL BROKE! But you thought you were pretty clever when you figured it out, didn’t you? You were a freaking genius back then. You had finally mastered programming and nothing could touch your level of expertise.

And now you know even more. So much more that you know how foolish you were then. It is healthy to recognize that you don’t know everything. It is not healthy to think you ever will. Nobody does, and nobody ever will. The field is too big! Keep learning, keep improving, and know that you are not an imposter. You only think that because you aren’t the naive programmer you were before, and that’s a good thing!

Updated:

Leave a comment