Conquering Impostor Syndrome

By  on  

Two years ago I documented my struggles with Imposter Syndrome and the response was immense.  I received messages of support and commiseration from new web developers, veteran engineers, and even persons of all experience levels in other professions.  I've even caught myself reading the post many times with the hopes that I would just snap out of it.  The truth is that most of us will never be free of self-doubt...

...but if I'm completely honest, I don't ever want to be free of Imposter Syndrome. A bit of humility, intimidation, and fear is a healthy feeling to keep us hungry and prevent complacency.  Imposter Syndrome, however, can be paralyzing and can lead to feelings of depression and lack of motivation.  The good news is that I have some tips to share with you that have helped me keep these negative feelings in check!

It's All About Momentum

When I take a step back and think about the little things I do to stave off Imposter Syndrome, they're essentially small contributions to build momentum, helping me accomplish the medium to large goal I'm tasked with.  I liken it to basketball:  I love shooting three-pointers, but when they aren't going in, I need to make a few layups and hit a few free-throws to work up confidence because there's nothing like hearing the sound of the ball hitting the net.  These tiny bits of validation add up, and as those positive feelings keep coming, I suddenly find myself with an air of confidence that pushes me to take on bigger things.  So how does that strategy apply to my every day work?  Let's have a look!

Little Wins

"Little wins" are by far the most effective way to gain momentum.  Too often we see our large tasks as a huge mountain and knowing where to start can demotivate or overload the brain, paralyzing us into doing nothing or causing us to lose interest.  When we break down tasks they become more manageable, something you can chip away at.  But the little wins don't even need to relate to your big tasks or even your assigned project at all -- they're all about getting something on the board somewhere.

Here are a few ways you can score little wins to jumpstart your day:

  • Documentation Updates - Send a patch to update a README or other documentation.  Add a few details, fix grammatical mistakes, or simply reword a sentence.
  • Contribute a Tiny Fix - Not every patch needs to be a new feature.  Submit a code fix even if it's tiny.  Not every PR needs to change the world.
  • Finish Your Code Reviews - Doing code reviews is a good way to think about how you would have completed a task without needing to complete it.  Plus, getting out of your colleague's way eases on your burden of accountability.
  • File Bugs - Filing a bug is a contribution.  Bug filing also gets you thinking about ways a project can be improved, which may spur your mind into other ways to make the project better.
  • Refactor Code - Unless the code hasn't been maintained at all, you likely only need to make a few changes, but it's a win and you should take it!
  • Inbox Zero - Getting emails out of my inbox is hugely motivating and makes me feel less beholden to others.  Get as close to inbox zero as possible and you'll feel more freedom to concentrate on the tasks at hand.
  • Start Conversation on IRC/Slack - Talking shop is sometimes enough to give me ideas and the courage to dive into coding.

I accomplish a few small wins every morning to get myself moving.  A few examples:

Little wins are all about doing something, anything, to gain a feeling of progress and momentum.  No task is too small or beneath your title to not consider a win!

Commit to Tasks in Front of the Team

There was recently a task added to my team's Trello board that I really, really didn't want to take.  It was a task to update code in a programming language I don't consider myself an expert in and it touched some pretty critical functionality.  I was a bit hesitant due to lack of confidence as well as having a health dose of "ugh, I hate touching this codebase."  So I did the most logical thing:  put my face on it and declared in standup that it was mine.

Essentially what I did was force myself to be accountable.  I could have pretended to do other things but the reality is that the task wasn't going anywhere and the sooner I completed it, the sooner it was something I didn't need to worry about.  Two hours later (way less time than I thought it would take) the pull request was shipped and I could breathe a sigh of relief.

The moral of the story is that forcing accountability is an excellent way to motivate yourself.  It also shows that sometimes we build things up in our head so as to paralyze ourselves; in reality the task usually isn't as painful as we've made it out to be.

Schedule Quick Meetings and Pair Program

Scheduling meetings and especially pair programming is a great way to force accountability and motivation as:

  • you're pushed to be there
  • you're pushed to produce
  • you're able to ask questions and bounce ideas around

These gentle pushes are a great way to find motivation and positivity.  Being with someone else also removes the feeling that you're on an island and everyone is waiting for you to do your part.

Contribute to Passions

I cited a few small patches I created for the Firefox DevTools Debugger above.  Did I mention I'm not on the Firefox DevTools team?!  While my passion is JavaScript, CSS, and front-end development, my current Mozilla team does more PHP, Perl, and Python!

Contributing to projects more inline with your passions, whether inside or outside of your organization, is a great way to feel positive and productive to start the day.  The rush of coding in your comfort zone, coupled with the little wins that come out of that effort, provide a springboard into achieving work you aren't as excited or as confident to complete.

Talk to Your Manager and Colleagues: They Care!

Even the worst of managers wont put you in a position to fail; it's their ass too if the project doesn't get done properly or on time.  Your manager and colleagues have faith in you to accomplish tasks and likely wont throw problems at you that they don't believe you are capable of solving.  If you think a problem is beyond you, Impostor Syndrome or not, you should talk to your manager or colleagues as soon as possible.  Your manager and colleagues will provide assurance that you are capable and, more importantly, will help plot out how to start solving the problem.

Remember:  no teammate wants to see you fail and will be happy to help get you on the right path.  If you find the rare case where teammates or even your manager aren't willing to help, it may be time to look elsewhere.

You Are Not Defined By Your Work

I said it in my original Impostor Syndrome post but I'll say it again:  work is only a small part of your life.  Find a way to smile!  :)

Impostor Syndrome doesn't go away, and if it does, it means we've become complacent or arrogant, which is a far worse fate.  Whatever your industry, role, or experience level, conquering Impostor Syndrome (if only for the day) is about little wins that build yourself up for the bigger tasks.  You're smarter and more valuable than your Impostor Syndrome will let you realize -- just keep punching and chipping away until you've conquered that evil.

Recent Features

  • By
    7 Essential JavaScript Functions

    I remember the early days of JavaScript where you needed a simple function for just about everything because the browser vendors implemented features differently, and not just edge features, basic features, like addEventListener and attachEvent.  Times have changed but there are still a few functions each developer should...

  • By
    Create Namespaced Classes with MooTools

    MooTools has always gotten a bit of grief for not inherently using and standardizing namespaced-based JavaScript classes like the Dojo Toolkit does.  Many developers create their classes as globals which is generally frowned up.  I mostly disagree with that stance, but each to their own.  In any event...

Incredible Demos

  • By
    Add Controls to the PHP Calendar

    I showed you how to create a PHP calendar last week. The post was very popular so I wanted to follow it up with another post about how you can add controls to the calendar. After all, you don't want your...

  • By
    JavaScript Copy to Clipboard

    "Copy to clipboard" functionality is something we all use dozens of times daily but the client side API around it has always been lacking; some older APIs and browser implementations required a scary "are you sure?"-style dialog before the content would be copied to clipboard -- not great for...

Discussion

  1. basher

    1 word.
    Thanks.

  2. I’ve been looking forward to this post ever since you announced on Twitter you started writing on it. Great read, thanks David! Those are great points. The “little wins” by finishing tiny tasks part is so true and something I’ve been using myself for quite some time, and it really does work!

    I need to get better at committing to boring/uncomfortable tasks in front of other people though, that way forcing myself to finish them since somebody is holding me accountable.

  3. Ryan

    I have been in the web development field, full time, for just over six months. And I really do feel like an imposter. Your article, along with your original article on imposter syndrome has really helped me feel more confident in my own abilities as a web developer.

    Thank you! So much!

  4. Thank you.

    I have to say that Imposter Syndrome can be very deadly. It can not only affect you in your work but also be crippling to any form of progress. I’m going to try these tips and apply them. I’ve been dealing with imposter syndrome my whole life.

    I really want to make $250,000 so that I can invest it and hopefully, retire. Who doesn’t want to do that right? The point is, working a 9 to 5 job just pays the bills. I want to live my life on my terms. Imposter syndrome is extremely hindering.

    Thank you for your post again!

    -Rob

  5. Cheryl

    In the words of Clance, “If I could do it all over again, I would call it the impostor experience, because it’s not a syndrome or a complex or a mental illness, it’s something almost everyone experiences.

  6. Chas

    Great articles, both of them. This graphic was recently posted on another discussion on imposter syndrome, and I think it sums up the reality quite nicely:

    https://twitter.com/ithinkwellHugh/status/954159511425646597

  7. Gregg Tavares

    I don’t know which if any companies have this but one thing that would go a long way to helping imposter syndrome is a team that is willing to teach.

    I found code review did this to some extent. I’d submit some code and someone who’d been on the project longer might tell me. “Did you want to use function XYZ for your function ABC. It seems like it does the same thing”. In a similar way they might say “Did you know these 3 lines could be written in one line and more readable like this?” and give the lines.

    In this way you share knowledge and build each other up. It requires the team to believe everyone can do a good job if they have the right info and freely share that info. If the team does not provide a supportive environment then of course I’d be more likely to not ask questions and scared to post any code I wasn’t 100% sure about.

  8. phill

    Love this article.
    I ask people to send me feedback as an email (after having had a face to face), and then can re-read it when I’m struggling. The good and bad feedback helps to motivate and ground me, and can help me to remove the paralysis a little.
    The number 1 tip of splitting the big thing into little things is spot on!

  9. >Even the worst of managers wont put you in a position to fail;
    While that may be true – at a conscious level, the number of times I’ve seen developers put in impossible situations by managers is staggering. Managers may not want you to fail but are often to unaware of their own proclivities or failings and squeeze you into failing – then dump the blame downwards.

    Example: Project I was called into after it was 6-9 months over due and so far over budget it would never make money. I was sent onsite with 2 devs and another manager (all from from another city ) and told not to come home until we resolved the issue.

    To cut a long story short, I came home 5 days later. We had managed to get one record completely processed, while crashing an AS400 and making it take 40 minutes to reboot. The other manager claimed success. I told my manager we were in deep trouble and needed to throw all the code away and start fresh.

    No surprisingly my manager baulked at that idea and instead of letting me go ahead, had me spend 2 months proving what the issues were. With three days to go before the client sued us if we didn’t deliver I was finally allowed to re-write.

    I spent three days, up all night, rewriting over 10k of code. I got the system working by cutting pasting, copy pasting code and writing some of the ugliest code I’ve ever seen – but managed to get the system running well enough to buy us the three months to debug – that I needed to do a proper re-write.

    The managers failed and dragged me down with them:
    The other manager was too busy trying to save his ass to honestly report that the project was completely messed up.
    My manager was too stressed at the idea of throwing away 3-500k of coding time to let me do what was required.
    The only reason the company survived and didn’t get sued was because I was bull headed enough to stay awake for three days and write bare minimum code to get us running.

    This story is not unique. I’ve seen managers threaten to fire devs if they didn’t deliver a product – using a language they only had three days training in (Visual Basic), and needed to use the Windows API and OLE / COM calls to complete. Before this they had developed SQL systems in SAS.
    I’ve seen a manager ask 40 developers, how many of them believe a project wont work – and when all 40 put their hands up tell them they have to make it work or they are fired. The big issues was middle managers screwing the devs by refusing to report issues to senior management who blithely thought all was well. Three years and 2 million or more later the project was scrapped.
    Managers will let you fail – both unconsciously as they are focused on self, or if they think they can maintain their jobs by lying about the impossibility of the code you are failing to write.
    A good manager will have your back – but too many times the managers well being is not tied to the developers, and that leads to toxic outcomes.
    My 2c worth.

  10. Dave

    I just quit a job where I was regularly bullied, yelled at as if that got the work done quicker, and yelled at some more when I pointed out inconsistencies in my boss’ spec and concept. In spite of 25+ years as a gainfully employed professional developer, my imposter syndrome led me to put up with that for way too long. When I realized the harm it was doing me, not just at work but in my life, I had to leave, despite potential damage to my family’s finances. As others have said, imposter syndrome can be crippling.

  11. Your idea of “Little Wins” is very interesting one. It’s really simple psychological trick, but very effective. I use it too.

  12. I quoted some small captogel patches I made for the Firefox DevTools Debugger above. Contributing to projects that better suit your interests, whether inside or outside your organization, is a great way to feel positive and productive to start the day. The hustle and bustle of coding in your comfort zone, coupled with the small wins that result from that effort, provide a stepping stone to achieving work you don’t really like or have the confidence to complete. For clearer information, visit our website https://stampgel.com/

Wrap your code in <pre class="{language}"></pre> tags, link to a GitHub gist, JSFiddle fiddle, or CodePen pen to embed!