When I was a teenager, I stumbled across a fascinating category of programs: Emulators. The best versions were emulating game consoles, where you could play your N64 favorites with a keyboard and mouse! Sure, it would take an entire night to download a ported Harvest Moon on dial-up, but it was totally worth it to not share this "new" N64 with my brother.
Skip forward a few years and I’m graduating high school, now faced with the decision of choosing my future career path. I chose to skip college and pursue a job that would incorporate the one set of skills I already possessed: coding. For a few years prior to graduation, I had been building anything I could get my hands on: websites, scripts for processing form submissions, custom Myspace profile overlays, even those "lovely" stupid website flash intros. You name it, I was coding it or figuring out how.
In 2009, I moved into development at my first job with a web agency. I remember being immediately conflicted with the belief that professional programmers always knew all the syntax and best solutions by heart. Meanwhile, I'm over here Googling every little problem I'm presented with and crossing my fingers that some obscure forum post will have at least one solution I can apply.
Each day presented new obstacles that I would slowly tackle. From the first time I read a documentation site and actually understood what I was reading, to the day I wrote a function without any help from the internet, I was learning how to be a better coder! I started becoming a resource to those around me, helping with code issues or suggesting better ways of achieving a certain outcome. But despite others encouraging and complimenting my expertise, I still believed my abilities were no different than the day I first began.
I found it was quite easy to believe I didn't measure up, that I was just pretending.
As I mentioned at the beginning of this story, I loved emulators as a kid. But I was quickly becoming a professional one, depriving myself from personal creativity and my work unhindered from the notion that I wasn't good enough.
I'm sure there's a multitude of reasons that led to my impostor syndrome. No personal formal education, this industry lacking in any broadly recognized licenses or certifications, low barrier to entry, the list goes on. But as I've continued to move forward in my career, as well as in my personal life, I've realized the solution to overcoming this feeling actually lies within ourselves.
Here's a few ways I cope with impostor syndrome:
You know one great way to overcome fear of failure? Doing what scares you and then sharing it for the world to see. Just like the post you're reading right now, writing or coding something and then actually shipping it can be the most exhilarating feeling there is.
I remember the first time a public repository of mine was forked, I felt excited and terrified simultaneously! Someone other than me could see my code, my commits, my writing. They could see me. And to my surprise, that same person reached out and thanked me for the program, explaining that they were able to tweak it for their own needs. Instead of succumbing to the thought that they were just being nice, I realized that my program had made their job easier, and they reached out with genuine gratitude.
As long as you're alive, you'll never "arrive". This phrase is probably printed on a thousand motivational cat posters and littered throughout self help books, but I love the idea. Having coded for many years now, it's very easy to get stuck in the same methods year after year. But if you want to stay ahead of the game you need to understand that the web changes, and it changes quickly.
Since change is inevitable, why not embrace it? If you've got a bit of spare time, try learning a new language or framework! Worst case scenario, you waste a few hours of precious Netflix time 😝️ But best case is that you've found a fun new resource to build applications in!
Invest in Community
I admit, I have a very extroverted personality. I love hanging out with new people and getting to know them, and I found that I've been able to use this strength to my advantage. Having recently moved to a larger city, I signed up to regular meet-ups in my area for developers to hang out and talk shop. It’s amazing to discover new perspectives, as well as helping others with similar pitfalls by sharing lessons you've learned, and honestly it's surprisingly refreshing what a good nerd out will do for the soul.
And hey, if you don't have gatherings around you or don't feel comfortable to visit, there's always options online. Whether it's contributing to your favorite open source libraries, joining a subreddit for a language or framework you enjoy, or learning a new coding software, investing your time with like minded people can be so eye-opening and satisfying to know you are a part of something bigger.
Be Kind... to Yourself
Of all the lessons I've had to learn, this one has been the hardest, yet the most important. It's time to give yourself some grace. For the longest time, I felt the need to always deliver. If a new project required some research before I could start shipping code, I figured that was more because of my inability rather than the fact I was diving into new territory. If you have an (un)productive day because you're learning rather than executing, that's great! Take the lessons you learn today and apply them tomorrow.
Along with giving yourself some room to relax, understand that humility is not the same as putting yourself down. Self-deprecation has been my close companion for a long time. When others complimented my talents, I would quickly dismiss their kind words and suggest there's far more qualified people than myself. What I didn't realize was that in addition to lowering the perception others have of me, I was also suggesting that the companies I worked for were incapable of hiring those "qualified" individuals. Throw away these belittling comments and thoughts! It not only takes away your confidence, but also removes the confidence others have in you.
If you take away nothing else from this post, digest this: You belong!
As long as I'm alive, I'll deal with impostor syndrome and the feeling of inadequacies, but I'll be fighting it every day. Whenever I help someone struggling with code or make a contribution to a library, I'm reminded that I have experiences and knowledge to help those around me.
If you struggle with impostor syndrome, I hope this post has helped you see you're not alone and hopefully provided some tips on how to overcome it. And if you don't struggle with it, that's awesome! Don't feel you have to "fake" it, but rather share the ways that you avoid it.
Have questions, thoughts, or just want to connect? I'd love to hear from you! Feel free to reach me on Twitter.