Well, I can’t say if this text is about Imposter Syndrome or not. Most of what I read about it, explains the definition and try to give some advice to the others as a way to help them out. But my words here are just about some thoughts and feelings from my perspective as a developer. I’m 30 years old and started programming about 8 years ago. I have worked with a bunch of different technologies in a few companies in different teams, here in my country and also remotely with international teams, which is my current format of work.
Throughout my career, since the beginning, I’ve always felt like I was a step behind the others. Even today, when I have an opportunity to have a conversation with another developer, there is a big change I’ll assume that the other person is a level higher than me, so I try to speak the less I as can. I feel like I’m surrounded by lots of fingers pointing at me judging my lack of knowledge. Even though I know that it’s all in my head, I can’t get rid of it so easily.
I know that nobody knows everything, but without realizing it I catch myself having thoughts like “Damn, I’m doing this for years so I should know how to use Docker yet”, “I should clearly know why to use the JS framework X over Y framework in that situation”, “Am I able to speak with confidence about why Object-Oriented Programming is better than Functional Programming and vice versa?”. After all of these years programming, I also blame myself because:
- I don’t have vast knowledge in the current technology I’m currently working, when I think I should because “I’m an experienced developer”
- I have some difficulties to keep some basic concepts in my brain and discuss them (I’m actually embarrassed to write some of them down here)
- I’ve never worked with unit tests for real (I guess tiny projects on GitHub doesn’t count, does it?)
- I’ve never used any design patterns (or at least I wasn’t aware of using them)
- I don’t feel confident enough to do a code review properly (every time my pull request get some suggestions I think “OMG, how couldn’t I think this way? It’s so much simpler)
- I have difficulties to think about a project architecture from scratch
After reading this list you may be thinking “so all you have to do is to study and then you’ll get better on those points”. But, as every day there is a new technology coming up, the more stuff you have to study. Personally, I can start doing something on React, for example, but I end up losing the interest quickly and I just can’t keep going on. I have plenty of courses on my Udemy account but never watched the most or haven’t finished them. The same happens with tons of PDFs with tutorials and courses I used to keep and I’ve never read them.
Nowadays I see some job positions like “Senior Developer”, “Senior Dev Engineer” and “Tech Lead” and I think to myself “After 8 years, do I feel like a Senior?”, “Do I really have 8 years of experience or did I repeat 1 year 8 times?”, “The HR interview seems to be fine, as well as the coding challenges, but could I pass the technical interview?”, and I end up not applying to those ones. I’m more interested in positions like “Software Developer”, “Frontend Developer” or “Fullstack Developer”.
Another thing that bothers me a little, is: as 30 years old person, I cringe when I see those kids in their 20’s having hot discussions with other developers, giving good suggestions in the Scrum meetings or creating amazing stuff, like Dan Abramov who created Redux in their 20’s (I guess). Damn, they seem to be so perfect. Yes, I know that everyone is different and each one of us has different experiences, different background histories, and different personalities, but this pill is still hard to swallow for me when it shouldn’t. And please, I’m not mentioning this as a bad thing, it’s the opposite, I would like to be like them and whenever I can, I try to learn from them.
Well, these are just some confessions, and though it may look negative, maybe every developer felt, or will feel, some of those points I’ve mentioned here at some time of his/her career. We’re not perfect and every day there is a new chance to learn and improve ourselves. Sometimes I think that it’s more about self-confidence and less about technical knowledge because self-confidence will help you to bring more technical knowledge.
And that’s all folks.
Be curious, and don’t forget to drink water.
Top comments (23)
You are not alone with this problem! Be kind to yourself. There are so many ways to be a good developer.
I'm terrible at keeping up with the latest frameworks. However, I see that as a personal strength -- it allows me to focus on the user and communicating ideas and solving problems. Things that I would consider timeless.
Other developers enjoy keeping up with the latest and greatest technologies. That's awesome. They can help me, and I can help them.
Is there one part of development that you really enjoy? Or that you're strong at? If so, try building around that.
I like when you mention about "focus on the user", there is another comment here about focusing in the user and it makes me think that sometimes it's like we're creating software for other developers and not for the users, whose should be the main focus.
A couple of years ago I was in a meetup which the speaker told us something like: "If you're more concerned about creating the next JS framework than making the people's lives easier, you're like a Civil Engineer that builds houses only for other Engineers to live. Programming is much more powerful than you think, use this power!".
Currently I'm working as .Net developer, but I like Frontend more. While I can't switch my position I like to give some shots on GitHub, building silly stuff for practicing my Frontend skills.
So true. Programmers who can put themselves in the users' shoes are extremely valuable. It's just as valuable as knowing all the frameworks off the top of your head. After all, Google can find you frameworks. It can't find you empathy.
Also, don't be too put off by job descriptions. Often they're thrown together by recruiters, who ask for all technologies under the sun.
I LOLed. I don't think there is a single person walking the earth who has watched all their Udemy courses (or even a fraction of them) till the end. Udemy courses straight up suck 95% of the time because they always feature the obvious stuff for a prolonged time. They are made for absolute beginners.
Anyway, please realize the following: Dan Abramov isn't a better developer particularly because he created Redux. There are a lot of people who created some libraries or came up with some sort of technical implementation. Dan Abramov was fortunate enough that he did the right thing at the right time and it gained traction. That alone doesn't make him more knowledgable than you. You may close on this thought by saying he was at the right time at the right place.
Right now he is (re)learning JavaScript, particularly by teaching it to others. And by the way, the first sentence in one of his recent articles is saying exactly what you are fighting with:
What I would say though, is, that Dan is an excellent writer - maybe even better than he is a developer. I also think he has a few other, advantageous traits that helped him to get where he is now, but that's on another topic.
So relax. You're doing good. Dan is doing good. Everybody is doing good. Don't degrade or elevate yourself or anyone based on where you or anyone is. If you feel you lack some knowledge or some skill, isolate that realization from any judgment and expectation. Then go and look it up. Feel better afterward.
Your words somehow brought some relief to my heart. If I feel like a fraud it doesn't really mean that I'm a fraud. This bad feeling makes me not see what the good stuff I've done so far and the skills that I'm good in.
We're here to (re)learn by our mistakes, and that's beautiful :)
Stop comparing yourself with others, each of us has it's circumstances, and a lack of knowledge doesn't mean you're behind someone else. I'm a self-taught developer, when I started it was just about how to write code and make it work, I wasn't care about what's going on? How the things wokrs out there nor why to use this over that? I was hungry of knowledge and learning, I was pushing myself to know a lot of things at once, but in the end I didn't catch any, so I stopped and I decided that I must go with what/where I found myself. I stacked with JavaScript, Vue using Nuxt in Front-end and Express in Back-end, PHP using Laravel. I have 4 years of experience as a professional developer but just two years as a full stack since I started with web design.
You're not behind anyone, in contrary what I see is that you have a passion a lot of it which makes you hungry to know more and seeking knowledge BUT don't let it put you down or make you feel that you are less or behind the others.
So, this is like a daily battle with myself. I don't know where this feeling of competitiveness came from, so without realizing it I'm comparing myself to the others like we were in a race or something like that. But you're completely right when you talk about passion and it reminds me when I was learning how to code and enjoyed every line I typed, maybe I missed something about this passion during my career and should focus more getting this passion back and feel happy for being able to build something with the lines of code I typed.
Thanks for your comment :)
See it as a good thing, it sounds like you are surrounded by people that can teach you stuff and keep you engaged.
As long as you have interest in your work, I wouldn’t worry. :)
I think I might have felt the same around my 7-8’th year as a developer.
Now I am on my 13’th and seniority and accumulated knowledge just kinda snuck up on me.
It's good to hear that from another experienced developer. In the end, we are doing a good work but this sense that "I'm a step behind everyone" is very bad. I think the secret is to know how to cope with this kind of feeling just by knowing that we can't know everything about all, and that's okay since you're doing what you love :)
Ps, I still feel humbled by others quite frequently, in fact, problably more now, since I am more aware of the soft knowledge gabs.
Don't worry, .. most of us feel this way I think.. in part because we are exposed to super smart people due to Open Source and the Internet. You get the feeling everybody are geniuses and that you don't know shit.
But trust me, you see the tip of the iceberg online.. most people would never dream of publishing anything.
The fact that you even wrote this article proves you are way beyond the average /s
Your perspective is very interesting. We forget that not every developer has a GitHub account, give lectures or write articles, for example. I just wrote this article because I thought "I can't be the only developer feeling like this". But I couldn't imagine to reply any comments so soon. It's awesome.
And also it's good to know that even some of the "top of the iceberg" already felt like a fraud at least one time during their careers like I read in the other comment here.
By reading the comments I'm feeling I'm going on the right path by not giving up and trying to cope with those bad feelings :)
I think it's a good idea to shift your focus on what technologies you know / don't know, to what kind of products you can deliver, and ultimately what kind of value you can provide to a business or other people.
Instead of thinking about how, well, you could learn X or Y stack, or improve deployment with Z, focus on what products you're capable of making instead.
Of course, you shouldn't completely stop learning, but focusing on what matters is a lot easier ;)
Yeah, you're completely right. As I replied in another comment here, sometimes we are so lost in an open sea of technologies and JS frameworks, that sometimes we feel like we're creating software for another developers, whereas the main focus should be the final user
Thanks for your comment :)
I like when you talk about a "great position to become a better developer because you see your blind spots". Maybe now, after all of these years, this is a good moment to see what I've done wrong, what I've done right and how I can improve even more as a developer (and as a person as well, why not?).
I guess I remained so much time in silence about those bad feelings that is good to receive a feedback like yours.
Thanks for your comment :)
Get the numbers out of your head.. "30 years old", "kids on their 20s", "8 years of development".. Years are important only if you are whisky..
I am 31 yo, I am coding since high-school, I worked on Web development and embedded systems but I don't call myself a senior developer or principal developer or whatever. I let the others play with those labels and I use my time doing what I love the most and this is software development. If you are able to list several ways to solve a technical problem and choose the most efficient, if you are able to handle the software development process in every stage, if you know what you don't know but you know where to look for it in order to get the missing bits, then (to my eyes) you are a senior developer.
All the aspects you mentioned, like the unit testing and the design patterns, you can all master them as along as you are willing to. Don't let the frustration distracting you. Although, if you like this industry but you struggle to feel comfortable with the programming part, then you should probably consider other roles as well (qa/tester, product owner etc). NOT because those roles are easier to master BUT probably those roles might suit you more.
In any case, I wish you good luck!
I guess at some point I just missed that passion of writing code and enjoy the result. I ended up focusing on wrong stuff that keeps me away from what I like to do, which is to build software.
It's interesting when you talk about "consider other roles", even though I can't imagine myself in another position than a developer, but why not? I'll think more about that. Maybe it could be another way to explore my skills. Interesting.
But I think this frustration that you've mentioned is what is blocking me. Without it, everything would be SO much easier. I'll on that.
And thanks for your words :)
I think we should take this question from a higher level perspective. I think devs like Dan Abramov are rare gems. We shouldn't use them as examples to generalize.
I think how good your as a developer is more than just having great coding skills and knowledges. Let's be realistic, there are tons of new tech/libraries/lauguage/whatever you can name every so often. No one can possibly be familiar with everything. Not saying technical skills are not important, but it is just one of them.
There are also some other very important traits, such as:
I used to be one of those cool kids criticizing other people's code and I wished there would be someone who could tell me all these earlier. I hope this help you or at least give you insights!
In every profession there are those who does a bad work, others who does a good work and others that are exceptional like "omg, this person was born to do this!". The bad part of comparing yourself to the others is that you're aiming the perfection without taking into consideration your background, your feelings and not seeing the good outcomes you have done.
The points that you mentioned takes me to another level of perspective, showing that there's a whole world out there to explore and focusing on negative thoughts like "I can't do this" or "this is very difficult and I'll never learn it" can block our evolution.
Along our careers (and life as well), we'll commit lots of mistakes and I believe we can learn from them. And that's what I'm trying to do now.
Thanks for your comment :)
I'm currently trying to do my job and learn things at my own pace.
Jefferson you deserve a lot of credit for writing so open about yourself. I think that is very courageous.
I believe many developers deal with imposter syndrome at some point of their career. I was there too and it revisits me every time I take to long to finish a ticket at work or can't find the ideal solution for a problem.
That's normal, it is just a sign that you really care about your work and that you are a person that reflects a lot.
And it is also normal that you meet people that know more about a topic than you. Don't be shy or embarrassed by that, instead embrace it and try to learn as much as possible from those people.