This blog is a guest post from Tyler Seawell, a TTS Graduate.
Imposter syndrome is ubiquitous in the tech industry and has certainly crept into my thoughts a time or two…or three. With so many programming languages, frameworks, patterns, stacks, and I could go on, I think at some point or another every programmer/developer/engineer has experienced this psychological phenomenon. These are the ways that have helped me manage:
Find A Mentor:
Finding a mentor at the beginning of my first job as a software developer was paramount to overcoming the anxiety of feeling like an imposter. I remember being introduced to one of my current company’s programs in VB in Visual Studio and its accompanying database structure in SQL Server Management Studio. It was an overwhelming sensation of pure anxiety. After talking with my mentor about this, he told me a few things that I still reflect upon. He told me to never look at the end product/final code and try to understand it, and to break the code down into its smallest units of work (which I’ll talk about as my second point). He also told me to never fall in love with my code. Code is constantly being refactored and changed and tweaked, so never fall too hard for the code you have written. He was the CTO and a Senior Dev. at this company, a real jack of all trades when it comes to tech. So, knowing that this man had accomplished so much without a computer science degree, reassured me that this path was possible for me without a degree. To have someone that knowledgeable empathize with your current situation can truly flip your perspective in an instant.
Break It Down:
As mentioned before, looking at the big picture and trying to understand everything about a product’s code only increase the feelings of being an imposter. While I do think it is important to see the big picture, to fully understand it in this medium is out of the question, at least for me. Starting at the beginning, the entry point into the code, and first understanding its flow of execution and then going back to break it up into the smallest units of work, helped me gain a deeper understanding of what was going on. Isn’t that part of coding in its essence already? Taking a big picture idea and simplifying it down to classes and methods that all have a single purpose? I think anything can be understood when taking this approach. If I had looked at the hundreds of tables and stored procedures and hundreds of thousands of lines of VB code with the intent of understanding it all, I would have had a full blown imposter syndrome panic attack!
As a great man, Naruto Uzumaki, once said, “Believe it”! Sometimes that is half the battle. As cliche as this seems, it is important to simply believe that you can do it, that you can accomplish whatever task is laid before you no matter how daunting it seems. Software development, for me, is like climbing a mountain. You have to take it in strides, and understand that any peak you have reached is sometimes not the top of the mountain and any valley can be traversed. There is always more to learn (sometimes a daunting amount), so it is important to create a solid foundation. That starts with simply believing it is possible. However, we do need to have a balance between unbridled confidence and crippling uncertainty. This balance is hard to maintain but critical in fighting off imposter syndrome. An overly confident person will fall much harder when they fail, while a fearful, uncertain person may never attempt to try. Failure is inevitable.
In order to truly believe I can do something, I need evidence or tangible accomplishments. This is where unrelenting training comes into play. Coding is skill that needs to be honed, so that means it can be trained and improved upon. Similar to finding a mentor, watching tutorials or reading about languages, frameworks, or patterns, how memory is managed, anything really, is only going to help you. Completely immerse yourself into topical training! Imposter syndrome is often a self-fulling prophecy in that your negative attitudes about being an imposter are backed by your behaviors, either directly or indirectly causing you to feel like you are unequipped for the job. If you have tangible accomplishments either through personal or work projects, badges from tutorials, etc, you are going to eventually break that feedback loop telling you that you don’t belong among the knowledgeable in the field.