Even Senior Developers Have Imposter Syndrome
If I told you I spent all day trying to figure out how to design the solution to a problem in a language I worked in every day and made absolutely no progress, would you think I was a new or junior developer? What if I also told you that nothing I tried worked at all and that I felt like I was "faking" being a developer? Many of you may think I'm a relatively new developer with only maybe a year or two of experience if this was the only thing you knew about me. The truth is I am an experienced developer with several accomplishments, including:
Over ten years of professional experience
I've been programming since childhood
Spoken at a conference and meetups
Became a Senior Software Engineer at a company with a large and very talented developer group
Run a successful digital agency doing both consulting and development for startups and enterprises.
Even with these accomplishments and knowing that I am some developers' mentor (some of them paying for the coaching), I still felt like I wasn't a real developer today. I felt as if I wasn't good enough or smart enough to be a good developer. This feeling of faking it or better known as imposter syndrome that I want to focus on.
What is imposter syndrome?
A psychological condition that is characterized by persistent doubt concerning one's abilities or accomplishments accompanied by the fear of being exposed as a fraud despite evidence of one's ongoing success. - Merriam Webster
We may not like to admit it, but most developers will go through imposter syndrome at some point in their career. It can be hard to recognize and deal with when it happens, as you may genuinely think you are a failure and do not belong when going through it. Not enough developers are willing to talk about their experience with it, or many will laugh off their feelings about it. Imposter syndrome can be scary and hold you back. It wouldn't be surprising if it has driven people away from the industry who would have been great developers. It is essential to recognize not only when you are going through it but also that everyone else has or will go through it.
A senior developer with imposter syndrome
I personally still struggle with imposter syndrome. It is weird to admit this with my experience and accomplishments. Yet, there are days that I feel like I don't have a clue what I am doing or that I am the worst developer in the world compared to someone else. I have a long list of setbacks that my imposter syndrome has directly caused.
Unfinished side projects - I have a long list of unfinished side projects. These are a mixture of personal projects and products I wanted to launch for my agency. Every time I get close to releasing something, I start feeling ashamed of the project. I compare it to competitors or just other things I see other developers put out there and start to feel embarrassed of what I worked on and like it won't go anywhere. I have now restarted my passion side project three times after it was almost done due to imposter syndrome.
Deleted and restarted my blog - I used to have a blog going where I would write off and on. I never really wrote anything in-depth and even stayed away from some technical topics to avoid sounding like I didn't know what I was talking about. Eventually, I just deleted it and now I have to start from scratch again.
Avoiding goals - I have some goals that I have had for many years. These are goals that are part of my dream of where I want to be as a developer and where I want my agency to go. I have always wanted to write books and courses. I love teaching and helping other developers grow but am often held back by feeling like I don't know enough to be the right person to help.
In addition to these more significant setbacks, imposter syndrome has affected my productivity, made me anxious when submitting work for review, and made me upset and feeling down on a day to day basis almost any time I struggled with coding. If you have been writing code long enough, you realize it doesn't take many days to end up on a day you are struggling with a problem.
How to handle imposter syndrome?
Handling imposter syndrome is probably a little different for everyone. Everyone will have different things that will help them calm down, recognize the truth, and help build their confidence. There are a few tips that may work for you and that I have found to help with my imposter syndrome personally.
Talk to someone
Find someone who you trust and is supportive to talk through your feelings. This could be anyone that can help you see your accomplishments, what you have learned and what you know. However, it can be a bonus if this could be another developer who may entirely understand what you are going through and can speak directly to your programming accomplishments.
Make a list of your accomplishments
Make a list of any programming accomplishments you have up to this point. When you start feeling imposter syndrome come on, go back and review this list. This list should remind you of what you have learned and the problems you already overcame. If you learned a language, you are a developer. If you solved a complex coding problem, you are a developer. If you completed a project, you are a developer. This list should contain many of these things that will remind you that you can do this and are not faking it. Even if you are struggling with a problem and feel lost, this list is a powerful reminder of everything you grappled with before and learned how to overcome.
Stop comparing yourself to others
One of the worse things you can do when dealing with imposter syndrome is to compare yourself to others. Everyone is unique and each person is going to be better at something than someone else. Even the best C# developer could feel like the worse developer if they compared themselves to the best JavaScript developer thinking they should be just as good (feel free to replace these examples with any technologies or languages). Many times I hear developers I am working with comparing themselves to other developers or me. They are always wishing they knew as much, wrote code as fast, and had as good of designs. In these situations, the developers hoping they were like the other developers had also taught the other developers or myself many things without even realizing it.
Don't worry about what you don't know
As a developer, you are never going to know everything. There truly is a new language, framework, best practice, etc. every day. We need to acknowledge there isn't enough time to learn everything. Instead of worrying about what you don't know, pick things you want to learn about or improve to focus on those. Let these things be a way to grow your list of accomplishments, enhance your skills and expand your knowledge. Keep in mind you won't know everything while remembering you can learn anything you need or want to the same way you have before.
No matter your language, you are a real developer
Unfortunately, there is some toxicity in our industry. You probably have seen all the arguments about language X, framework Y, or technology Z is the best, and the rest suck. Or that if you work with language X, you aren't a real developer. This is just toxic behavior, and there isn't any truth to these statements. Every language, framework, and technology have their pros and cons. I defended web programming in my quora answer by pointing out how all the reasons to list why web programming was "looked down on" could be applied to other types of development. If you approach these arguments with this analysis, it's easy to see how no language, framework, or technology is better than another in all cases. If you work with any of them, congratulations, you are a real developer.
Get a coach (or a therapist)
There is nothing wrong with getting professional help like a coach or therapist to help with imposter syndrome. There can still be a bit of a negative response to working with a therapist, but it honestly can be the best thing for both your professional and personal life. There are also starting to be blurred lines between coaches and therapists, with some people able to feel both roles. This blending does make it harder to find someone who is appropriately qualified and can provide the help you need, but it also removes some of the negative reactions since having a coach may be seen as a positive or smart move. Honestly, working with a therapist should be viewed the same way as working with a coach. Nothing has to be wrong with someone to see a therapist. Many therapists work with people to help them improve and be the best version of themselves. This last tip may not be necessary, or it may be the one that finally enables you to overcome your imposter syndrome completely.
Personally, taking the step of working with a professional is what allowed me to start getting over my imposter syndrome. I have heard of and tried the other tips but found myself still struggling with it. I kept finding my emotions overpowering the logical sense of the above tips. Working with someone helped me figure out why I thought that way and how to take steps to improve my confidence to reduce the imposter syndrome. Since working with them, I have made progress on my side projects, releasing bits to the public, started writing a book on code reviews, and finally started my blog again.
You are not an imposter
Just remember, once you have written your first piece of code, you are a developer. Whether you feel it now or go through imposter syndrome in the future, remember you are a developer. You are not alone when you feel like you are faking it, and even us senior developers go through it too. Hopefully, this provided you with some new tips to help overcome it, or just knowing everyone else goes through it will give some comfort.