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.
Latest comments (44)
@kevinhickssw I am going through a similar phase. This just gave me the confidence. 10 Years of professional experience got a new role at big company as a senior engineer. I felt like an imposter. I feel confident, I am going to perform.
Thanks for sharing.
I'm glad this was able to help you, Edwin. Going to a new role and company is always a bit scary and makes us unsure of ourselves. We just need to remember what we already know and accomplished. You'll feel comfortable and good in the new role in due time. Good luck with the new role!
This a great article man! I am not a software developer/engineer at a company. I work in IT security. However, I do find myself dealing with imposter syndrome when I seek to write some code to solve a problem on the job, personal projects (I have a gazillion I fished projects), or when I am talking to experienced developers about their code or reading it (always true to read the code to be informed and understand the complete picture)
I really liked when you said don’t compare yourself to other. This is huge. In one of my previous roles I was comparing myself to a guy who had been writing bash scripts for decades. And man let me tell the affect was crippling. I was struggling to write code I knew I could right.
This article puts everything into perspective and it make me feel human! Thanks again man!
P.S. To all the developers who will read this comment, as a IT Security guy, I want to say I have tremendous amount of respect for you guys and the work you guys do.
Thank you. I'm really glad this helped you. Not comparing yourself to others is really hard not to do, but I think it's one of the most important things. It definitely has been one of my biggest struggles with imposter syndrome. We all have our own strengths and weaknesses. It's best to just learn from each other and work together.
I agree, it’s def important not to compare yourself to others. If you discover any tips on not comparing yourself to others let me know, I will be glad to hear them. Take care
Thank you for sharing this! I couldn't resonate more with it 😁
I always have this shit in my head where I sat down in front of my computer feeling like " hey , are you really a Developer, what do you know and what if you are called for interview, you that you only know stackoverflow, YouTube and googling" .
I feel really bad and sad sometimes
But you what?
Anytime I browse through a new website or play around upwork and seeing clients asking " hey can you replicate this website " and I saw that website , analyse it and feel like I can do it well.
I smiled...am actually a Developer
Am not an imposter.🥰
Exactly. It is important to recognize what you know you can do and that you can learn to do what you don't know.
And the truth is all of us developers rely on StackOverflow, YouTube, and google. Without Google, 99% of developers would not be able to do their job. Knowing how to use those resources is one of the most important skills for a developer.
We are googlers..lol
Especially senior devs
Part of becoming a senior should be taking the measure of our ignorance.
😉
I’m a Staff Engineer with 15.5 years of programming experience and I have literally no idea what I’m doing. ¯_(ツ)_/¯
It's good to see these kind of topics. Very timely for me. Thank you Kevin.
Some folks, who are perfectionists at heart (like the Virgo, if you believe in zodiac), are most affected with this syndrome.
I can relate to most of it.
Yea anyone can experience this, but for perfectionists, it definitely is more affected by it. I go through this and am a perfectionist. It's the sole reason I never finished or released a side project even though I been trying to do that for years.
I was familiar with the impostor syndrome and it accompanies me constantly. I try not to get too discouraged, but it seems to me that I will never be enough.
I keep studying and studying but I always forget the basic concepts and this often comes out during technical interviews where sometimes I can't answer the simplest questions even though I'm not really a newbie.
I look at my colleagues who always seem to be one step ahead of me and always manage to understand everything with ease.
I always have a thousand ideas to develop side projects and I try to write on the blog, but in the end, I always leave everything in half, frightened by the idea of not being prepared enough to complete the project.
Sometimes I feel so inadequate that I think it's better to change job.
Don't give up on this if you enjoy the work. It is tough and there is a lot to learn, but making any progress and writing any code makes you a developer. The more experience you get, it will get a little easier and you should feel more confident over time. It's just important to recognize this feeling may not go away and have a way to cope with it when you do feel it coming on.
Technical interviews are hard. We get so nervous in interviews that our minds just forget things we know. It's so easy to forget in an interview just to remember it as you are walking out of the interview.
If you've done enough interviews, you may have taken the Fizzbuz test. As a senior developer, I failed that test. It was a mixture of nerves and not remembering how to calculate multiples since I don't work with that a lot.
Completing side projects and write for blogs is also really tough. That is putting ourselves out there even more than interviews or regular jobs. Just try to take small steps and slowly get more comfortable. Recognize that any views, comments, likes, etc. are a sign you are doing a good job.
We are human. Imposter syndrome is normal. But it's just our thoughts about ourselves, it always comes and goes. Thank you for sharing