Illustration: Hawkins, Arthur, ca. 1940
This blogpost is an adaptation of a talk I did at WordCamp Utrecht in November of 2017. If you don’t fancy reading the damn thing, you can watch the video here.
Let me confess something to you: I’ve never seen myself as a real developer. I never took a computer science class, and I did very little programming in college. As a matter of fact; most of my time spend in college was on Design.
I did do some development at an early age though. The first program I ever wrote was in basic:
10 print "peanuts" 20 goto 10
After college, however, I started to freelance as a developer as well. I had little experience, but that didn’t matter. Within no-time most of my billable hours where coming from development gigs. This self-taught aspect always made me feel insecure.
The Imposter Syndrome: some theory
In the late 70s, Docter Pauline Clance first published a paper on what she would call the imposter phenomenon. In it, she described this vicious cycle about how seemingly regular work could eventually make you feel like a worthless bag of dirt.
Diagram: Pauline Clance
There’s a huge group of people that will recognize something in this cycle. In fact, according to the journal of behavioural science, about 70% of millennials experience some form of the imposter syndrome
The imposter syndrome in development
I personally think that working in development can make you a lot more susceptible to imposter syndrome. Even with very little skills you’re soon seen by many as someone who can do something magical. This usually means that real-world assignments are pushed on you very early. This is a great way to learn, but if you combine it with actual stress of actual paying customers, you’re looking at a recipe for disaster.
The barrier of entry is pretty low. Combine that with an environment that’s constantly asking you to keep learning and you’ve got a breeding ground for fraudulent feelings.
Eventually (if the cycle is repeated often enough), these feelings can mutate into some pretty severe symptoms like overworking, stress and eventually even depression.
Dealing with the imposter syndrome
There’s no one that I know of that says the negative voice in your head goes away. You can however overscream that voice with a positive one. This doesn’t work all the time, but I’ve found that the following list of tips and attitudes is a good start:
1. Publish what you learn.
Getting out into the world what you have recently learned does a few things: It cements that knowledge in your head, it helps other people and -most importantly- it makes you own your achievements.
2. Stop comparing yourself.
Everyone is different and everyone specializes in something. Besides; there’s a pretty good chance the person you’re comparing yourself with has no clue what he/she is doing either.
3. Say thank you
Very simple, but shrugging off compliments doesn’t make you own your achievements. No one is going to think you’re an egomaniac for accepting a sincere compliment.
4. Ask questions
This one is mainly in here for myself. I dread asking questions one-on-one because I feel I’m a bother. The truth is that people love to share their expertise, so give them a chance to.
5. Be wrong
It’s okay to be wrong. Admit it, come up with possible solutions (ideally a solution you yourself can work on) and apologize. There’s nothing bad about that; people are much more forgiving than you thing.
Tips for developers
Us developers might be an easy target for the imposter syndrome. Luckily there are also a lot of things developers can do to turn this feeling around. These things help me immensely:
1. Learn the basics of computer science You won’t be able to make up for not doing computer science in college, but you will at least be on the same page when developers around you are talking about a “Big O” problem. The imposters handbook by Rob Conery is an amazing place to start.
2. Contribute to open source projects There’s no better place to get feedback on your coding skills than an open source project. Most of the communities out there are both very welcoming of help and very knowledgable.
3. Write queries I don’t know about you but I’ve almost exclusively worked with frameworks that got me away from the database and writing queries. While this is great in about 80% of the cases, there are always going to be niche problems that can best be solved by a good ol’ query. Try to write some of these things yourself and you’ll find that you start picking the hacky solutions less and less.
4. Work with Linux Most of our sites and application run on a version of this open source operating system. It’s only natural to get to know it more. I’ve worked with Linux for the past year and It has made me a lot faster on my Mac as well.
5. Take two weeks and solve a problem using something new Two weeks is the perfect amount of time to dive into a new technology, framework or language. Any longer and frustration starts to bite, any shorter and you’re not going in deep enough. You can actually build a whole lot in two weeks (even without you knowing the core technology). If you like the thing you’ve learned you can always dig deeper.
It’s been really good to hear from a lot of people that they recognize these feelings. If you have any other tips I’d love to hear about them (leave them in the comments).
I hope you’re not letting that voice eat away at you; the alternative is so much better! 😄
All Illustrations, unless mentioned otherwise, are taken from the Wikimedia Commons.