Impostor syndrome is something I've been fascinated with for as long as I've known about it. But I've suffered from it for far longer.
It reared its ugly head again this summer when I started a new job. As part of my training, I had the good fortune of spending a month pairing in the Hashrocket offices in Jacksonville, FL. Working with some of the sharpest developers I've ever met was a fantastic learning experience, but it wasn't easy.
When I walked in that first day and sat down next to Micah Cooper, I felt out of my depth. Micah was warm, friendly, helpful, and encouraging, but he was also much better at [Vim](https://en.wikipedia.org/wiki/Vim_(text_editor\)) (our editor of choice) than me, and he practicedoutside-in development like it was second nature while I fumbled along.
It's not like I wasn't prepared. I knew when I got on the plane to Jacksonville that I would be learning a new codebase as well as a new set of development practices concurrently. I fully expected that doing this with a Hashrocket developer sitting next to me would make me doubt my own abilities, and it did.
The worst part about impostor syndrome is that even though you suspect that the nagging doubts in your head are false, you're never really sure. When you're confident in your abilities, it empowers you to ask questions about things you don't understand so that you can learn. At its simplest, impostor syndrome robs you of that confidence.
So how do you get out of it? For me, the answer turned out to be pretty simple. I started forcing myself to ask questions. Little Vim things at first, like "How'd you delete that whole paragraph?" and "How'd you jump to that method?" Things that didn't require much vulnerability to ask. Once you get those first questions out of the way and realize that all the scary stuff your brain has been bullying you with (getting made fun of, being revealed for the crappy programmer you're afraid you are, losing your job) doesn't actually happen, you start to build that confidence back.
Pair programming has also helped me quite a bit. I had never paired before this job. When I compared my raw, messy thought process with others' finished work, it was pretty easy to psych myself out, thinking how much smarter than me everyone else must be. Pairing gives you the missing context of what happens before the final product, and it helps you have a more accurate basis for gauging your relative strengths and weaknesses. I'm finding that the more I pair with others, the less I struggle with impostor syndrome. Not that it's gone, but it's easier.
My time at Hashrocket really took off once I worked up the confidence to be insistent about the things that I didn't understand. I got what amounted to a full day training course in Cucumber simply by admitting "I've never used Cucumber. How does it work?" My WellMatch pair and I got a week of invaluable Backbone training by sharing the terrible code we'd written with Micah Woods, another Hashrocket dev, and asking him to help us fix it. I leveled up at least three belts in Vim just by being willing to stop whoever I was working with and ask how they did that crazy edit with only 2 keystrokes.
I finished my time there with an overwhelming amount of new knowledge and a few new friends as well. If I hadn't worked up the confidence to be vulnerable and ask questions, none of that would've happened. It wasn't easy, but it was worth it.
Have you struggled with impostor syndrome? Found something that works for you? I'd love to hear from you on Twitter.