DEV Community

Kevin Hicks
Kevin Hicks

Posted on • Originally published at kevinhicks.software

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.

Top comments (44)

Collapse
 
edezacas profile image
Edu Deza

I define it as the paradox of knowledge: If you know what you donโ€™t know, you know.

A senior developer understands many concepts and wants to know more in detail. This causes them to want to know more and feel like they donโ€™t know anything or donโ€™t know enough.

Collapse
 
kevinhickssw profile image
Kevin Hicks

In addition to knowing they don't know everything and want to learn more, there are also higher expectations either from other people or yourself the more experience you have.

We all have bad days where we might struggle with what turns out to be a simple bug. If you have more experience, you may experience imposter syndrome more cause "you should have known this".

Collapse
 
edezacas profile image
Edu Deza

I totally agree with you

Collapse
 
eelstork profile image
Tea

That, and the fact that, in IT the extent of what we don't know increases on a daily basis.

Collapse
 
seeila profile image
Seeila

Thank you for this article because at this point in my career, I moved from another continent and got promoted within 5 months as Lead Front-end to create the architecture on which all the future projects will be based on while teaching React to the devs in my agency, despite my little experience (I'm between a junior and an intermediate developer). My Imposter syndrome has never been so high and feel quite overwhelmed. This article helped me feel a bit better!

Collapse
 
kevinhickssw profile image
Kevin Hicks

I kind of understand what you are going through. Early on in my career, I got put in charge of re-writing a large e-commerce site and all its supporting tools as an unofficial lead. This was just a few years out of school, and the site was crucial to the company's success. For your specific situation, there are a few things you can keep in mind to help handle this:

  • Congratulations on the promotion. That is a sign your team and company trust you to do this. They may be seeing something you don't see in yourself. That is a huge accomplishment you should always remember, especially since being promoted in 5 months is rare.
  • You will make mistakes in the architecture that you won't see until later. It happens to the best developers and architects. It's a lot easier to see what is best and what doesn't work after the architecture is used on a few projects.
  • Other developers and yourself will want to change the architecture in the future. Maybe on the 3rd or 4th project, you make small tweaks, but then on the 30th, you make some massive changes. I would argue if this doesn't happen, that is a bad sign as it means your team isn't learning and improving. Again, it's easier to see what is working the best or could be improved after it is used a bit.

Again congratulations on the promotion and good luck.

Collapse
 
seeila profile image
Seeila

Thank you for your support, this helps a lot. For sure the architecture will change, there is always room for improvement.

Collapse
 
nhatnguyentim profile image
Hoang Nhat

I'm experiencing the same situation as you, so fighting, we will go through this! Thanks for sharing.

Collapse
 
imtyrelchambers profile image
Tyrel Chambers

This was a good read.

I've been programming for about 8 years. I've never been fortunate enough to be hired into a company for programming so I've been making my own way with my own real-world apps. Even though I know I'm a good developer and I'm capable of making real applications, I have the hardest time writing any sort of remotely technical blog, or even sharing my code/apps with other developers because I feel like I'm not qualified, because I haven't been in a "developer" position.

Collapse
 
kevinhickssw profile image
Kevin Hicks

I know what you mean. I feel the same way about technical blogs and sharing my projects (outside of my day job) because of this feeling. Even with a "developer" position at a regular company, I still experience it. I honestly went through it for writing this article. I originally wrote it a few weeks ago, but it took a while to be comfortable sharing it.

I'm still working on it, but what has helped with my writing is not comparing myself to others and realizing I probably can help at least one person. I also am hoping that if someone smarter than me reacts to it that it is a positive experience for me to learn from, not something to be ashamed of.

Collapse
 
masinick profile image
Brian Masinick

I am now a retired software engineer with experience developing and maintaining telephony applications, desktop UNIX system software, hardware and software performance characterization, software system and applications testing.

I was once a software architect for a project to enable different Email systems to work together until better solutions were developed and I also pointed teams to some of those "better" efforts. I only had one or two good ideas for new projects, but I have written many much smaller tools to promote either faster access to software or convenience tools for keystrokes, keypad mappings, etc.
My emphasis has always been on solving practical problems; inventing something new takes time and many tries with more "failures" than success. All inventors, even the most prolific ones in any profession have more failure than success. The successful inventors make the most mistakes and often stumble on the solution. Look at Edison or some of the software inventors.
Even Microsoft, IBM, Linux developers, and so on have just as many "busts" as the rest of us; the ones using "free" and "open" software may even have their old "junk" out in the open, but with openness is the potential for multiple solutions and for collaboration; we ought to remember that we don't have to do it all ourselves.
A senior engineer may be in charge, but it could be the "newbie" who comes up with a great idea we have not considered.
The best way to go about our day is to share both our success and our failure; an honest look may in the long run bring out the best (and worst) in everyone; thanks for the transparency; it shows that you DO have experience and that experience is of great value!

Collapse
 
kevinhickssw profile image
Kevin Hicks

Thank you.

You are right about looking at both the successes and failures. We often hear about the "overnight" successes, but not the X number of failures those same people had before that success.

Collapse
 
abdullahsofiyu1 profile image
Abdullah Sofiyullah

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.๐Ÿฅฐ

Collapse
 
kevinhickssw profile image
Kevin Hicks

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.

Collapse
 
abdullahsofiyu1 profile image
Abdullah Sofiyullah

We are googlers..lol

Collapse
 
ldrscke profile image
Christian Ledermann

With you all the way, no matter how experienced you are you will still suffer imposter syndrome. Like other problems the first step is to recognize it. I think a little of imposter syndrome is not a bad thing, because it reminds you that you still can grow. BUT: Do not give in, you are not inadequate, appreciate compliments.

Collapse
 
kevinhickssw profile image
Kevin Hicks

I agree. Especially in our industry forgetting that there is still room to grow and learn could end up being the thing that moves us closer to not being a good programmer.

I often prefer working with the developers that are always growing and learning no matter their skills or experience as they are the ones that will be great and continue to be great developers long in the future.

Collapse
 
eljayadobe profile image
Eljay-Adobe

I've been stumped many times. I don't get the imposter syndrome though. Not because I'm that awesome (I'm not... ha ha), but because I've groked that this stuff is hard. Sometimes even something fall-off-a-log simple can stump the experts, which is why I've learned not to be afraid to ask for help or at least ask for a second pair of eyes.

My ego can wait outside.

Collapse
 
kevinhickssw profile image
Kevin Hicks

Asking for help is so important in our field. I like to encourage people if they are stuck to ask for help after 15 minutes or so. It's amazing how quickly someone else can figure out an issue you spent hours trying to solve yourself. And it is so true that the experts also need help. I see a lot of my mentors and people I look up to publicly asking for help all the time.

I wouldn't really tie the imposter syndrome to ego though. I would say most developers that have an ego don't feel imposter syndrome or are projecting a big ego to cover up having it. Imposter syndrome is more about feeling like you don't know things you think you should know, being overwhelmed in a job or project, etc. than trying to be or appear to be the best developer. It's not really a logical thing to go through imposter syndrome, but our minds aren't always logical no matter how much we wish they were. ๐Ÿ˜„

Collapse
 
eljayadobe profile image
Eljay-Adobe

Then I consider myself fortunate. For those that have the imposter syndrome feeling... never stop learning, never stop striving. The amount of information available is overwhelming. There is only one way to eat a digital elephant: a byte at a time.

Collapse
 
mslupski profile image
Michaล‚ Sล‚upski

I'm not a developer (yet) but I write content for software dev companies. Been doing it for over 5 years, still feel like I'm failing all the time. Even though I've literally written hundreds, if not thousands of articles, and none of my clients ever had any issues with my content. Impostor syndrome truly is a big ol' b-word.

Collapse
 
kevinhickssw profile image
Kevin Hicks

Yea it is amazing how long these feelings can stick around. I'm honestly not sure if they ever fully go away so we just need to be able to recognize it and know how to handle it so it doesn't bring us down.

Collapse
 
edwindijas profile image
edwin chiwona

@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.

Collapse
 
kevinhickssw profile image
Kevin Hicks

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!

Collapse
 
tokendev18 profile image
Aaron

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.

Collapse
 
kevinhickssw profile image
Kevin Hicks

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.

Collapse
 
tokendev18 profile image
Aaron

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

Collapse
 
kevinhickssw profile image
Kevin Hicks

You're welcome. I'm so glad this was able to help you.

Being praised for being able to quickly catch on is a great thing. I always love working with developers that not only can quickly learn but are also willing to learn. Where I work a lot of hiring decisions are decided by how quickly and willing a developer is to learn and improve rather than their skills and experience.

Collapse
 
theindiancodinggrl profile image
theindiancodinggirl

I love this.
Also, You don't need to be the best developer out there.
Loving the process is important.

Collapse
 
kevinhickssw profile image
Kevin Hicks

So true. It is so much more important to love programming and what you do than to be the best developer.

Collapse
 
ameliagapin profile image
Amelia Gapin

Iโ€™m a Staff Engineer with 15.5 years of programming experience and I have literally no idea what Iโ€™m doing. ยฏ_(ใƒ„)_/ยฏ

Collapse
 
harishagrawal profile image
Harish Agrawal

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.

Collapse
 
kevinhickssw profile image
Kevin Hicks

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.

Collapse
 
thodwris profile image
Theodoros Kokosioulis

Thank you for sharing this! I couldn't resonate more with it ๐Ÿ˜