by Ken Gilb
You will never know half of what you think you should — and that’s ok.
Impostor syndrome is a real thing in software development. After 20+ years in the industry I still catch myself thinking “I should know this, how come I don’t know this yet?”
The truth is that our industry is constantly changing. There is always some hot new framework or some en vogue methodology that is being hyped to the community. When you read about something new online it can seem like EVERYONE knows about the new hotness. You think to yourself: what is this and why am I just learning about it now? Does everyone already know about this and why am I the last to find out?
Last year, it was React for me. But I have gone through this process with many technologies and frameworks over the last 20 years: Xamarin, .net core, .net standard, portable class libraries, MVVM, MVC, aspect oriented programming, functional programming, object oriented programming, composition over inheritance, test driven development, agile, scrum, inversion of control, containers, continuous integration, git, DevOps, RPC, web services, REST, JSON, XML, NoSQL, Document databases, websockets, ajax, handlebars, mustache, jquery and many more technologies that have come and gone the way of pascal.
And those are a fraction of the things that have been new to me, over the years. I could fill this page with technology and languages that have come and gone. The point is, the software industry is hard and it’s evolving. No wonder it can feel like you are an impostor in your own industry.
I love learning about new things. You have to if you want to survive in this line of work. It’s OK to tell yourself that you don’t know everything, you can’t know everything. Your peers around you might know more/less/different things than you do. Embrace that. Learn from each other. I always end up with a deeper understanding of a concept when I get to explain and teach it to another developer. You never truly learn something until you have to teach it.
When Impostor syndrome kicks in it can be depressing. When browsing online communities you can find the mentality of “what an idiot, this guy doesn’t know x”. Developers online can be cruel, even when they don’t think they are. Sometimes your own insecurity can make you feel that people are putting you down when they may not be. The internal struggle can be constant and relenting. Your co-workers may even contribute to this feeling.
Don’t put your team members or other developers down when they don’t know something. Instead, take it as a learning opportunity to grow together.
You may find yourself defending your decisions and your code so you don’t look (or feel) stupid. This will breed insecurity and everyone will end up looking out for themselves. I have learned over the years that no matter how good (or bad) you are, you will **** up. So will your co-workers. It’s how you handle the situation that will make for a good or bad experience going forward.
A terrible working environment is one where you’re not allowed to make a mistake. Employees may talk about each other behind their backs. You may hear things like: “I can’t believe how stupid Charlie was the other day. What an idiot!” If you hear a co-worker or boss talking bad about another employee, you can bet they’re also talking about you behind your back. This toxic environment will cause everyone to “circle the wagons” around themselves. Try to change the culture or get out if you can.
A pleasant working environment is where team members accept that they don’t know everything. One where you can learn from each other and work towards the same goal. Strive to be this kind of developer. You will never know everything there is to know. Accept that. Learn what you don’t know and teach what you do.
In the end, know that you’re not alone in this feeling. There are a lot of people out there who feel it too. As I have aged, I have come to accept that there are things I don’t know that other people do. How you choose to react to that feeling can make or break you. I choose to accept my limitations and strive for additional knowledge.