Let's Get Right To It...Shall We?
I've questioned myself a lot. I'll often wonder if I'm where I'm supposed to be in terms of where I'm at in my career. Am I messing up by learning this language or by having interests in this or that. I'm always telling myself I need to be immersing myself or get at least a bit familiar with testing, app security, dev ops, and other software engineering principles.
Am I writing clean, secure, efficient code? Am I becoming a more efficient problem solver? I want to become the a master wizard goddess of tech, how do I go about that?
My accomplishments thus far
On paper, I've done great things for someone with not even a few years of experience. I've given several conference talks on accessibility where people say they've learned a lot from, written tutorials people liked, and have taken ownership of features on both small- and large-scale applications. I've also been appointed front-end lead on a few things too. I've freelanced and also taken contract positions. I've also managed to not get fired for lack of performance or technical aptitude (lol).
I don't really have a way of measuring my success. I try often not to compare my journey to others because I'm prone to getting really competitive and over-worrying myself more than I want to.
What Am I Doing Currently?
What have I been doing lately? Well for starters, I've started writing a series of tutorials on JavaScript. I wanted the focus to be on the core fundamental concepts of language, no frameworks or libraries. I chose to focus my technical blogging on this because for one, I'm a frontend developer by trade. JavaScript is the necessary evil for web development and my goal is to always be good enough to be dangerous at something. How do you do that? By being somewhat bold enough to teach the fundamentals. If you can break something down in a way to where beginners can understand, that's an indicator that you know your sh#t.
What else am I doing? I'm learning Golang because I like to overwhelm myself for absolutely no reason (jk). But really I'm learning it because I've been really wanting to expand my skillset outside of front-end development. I know you're probably thinking why not just start building full stack apps with like Nodejs and Express? Yeah okay sure but dare to be different lol. (I have actually built a few side projects with Node and Express btw). I see languages as merely tools that all of have their strengths and weaknesses. I'm seeking to get familiar with a more statically typed language and also be able to really dive into the backend. I also spend the night reading a book on C the programming language to understand a little about the mother language that influenced the languages I use today. I don't currently aim to have knowledge in C...yet. I want to narrow my focus to just a few things when it comes to studies.
Iβm honestly not too concerned with learning every language or framework. I care more about how to solve problems better, thinking about edge cases and how to be an even better contributor to any codebase I touch.
So About The Imposter Syndrome & The Potential Self-Sabotaging
I often think about how I've probably placed myself in a box or put limitations on myself because of my fear of not being good enough to do the job. I've turned down past opportunities because I've felt like I wasn't ready and think so many of us have had those thoughts. I don't often give myself the credit I need. This probably stems from past personal experiences where I had to strive for excellence and accept nothing less. I am my toughest critic. It's good to have standards but not to the point where you question your worthiness of being in this industry.
Do I consider myself to be a senior engineer? I try not to label myself. I usually do go for senior roles (because those are the ones who gives me interviews lol) and however they assess my value and fit me on the team is it how it goes. I usually think if I can do the job and do it well, then boom.
What do I want in my next role?
So because I've been a front-end developer my whole career, I sort of expect that my next role will probably involve that. But I'm really hoping to be able to dig into different parts of the stack and hone my backend knowledge. Sounds dope. I'm open to developer advocate roles because I basically do alot of the typical job duties already out of love (helping the developer community, giving talks, writing tutorials, etc) but ehh.
A Quick Note about Burnout & Why I've Been Studying Every Day
Ok, so I don't want you to think I'm some kind of a computer science addict who lives and breathes code and naturally studies several hours a day. In fact, I'm quite the opposite. You can check my backstory but essentially, I wasn't even introduced to what coding was until a few years ago. But when I discovered (and then months afterwards actually committed to it), I went wild with it. To the point where I've suffered burnout SO. MANY. TIMES. It got to the point where I shuddered at the thought of opening up my editor. I actually had to take a break for a few months. I just got back into the groove of things not so long ago and trying not to do it again. I study when I want to, which currently is a few hours a day. Okay lately it's been 6 hours a day on average but that's because I'm learning Go and it's so fun and I'm driven by the curiosity to learn a bit of about what goes into building scalable, fast-performing backends.
How I'm (attempting) to combat this:
- Write more blogs about technical stuff: Sharing what I learn is probably the core of why I love coding. I love learning something and then creating tutorials where I break down the steps of how I learned something or solved a problem and attempt to explain this the best way I can. I imagine becoming a better "communicator of code" (a phrase I use to describe someone who can explain to other humans how to do tech stuff) makes you a more senior engineer because you can be able to be a better collaborator on a team and help solve problems with people who are both experienced and inexperienced.
- Livestream on Twitch..no seriously: I have a massive fear of live coding. I really do. However I want to combat that but in a way that doesn't make me feel too uncomfortable. So starting this week I'll be livestreaming my studies on Twitch and helping people go through some of Codecademy's courses. I study every day for several hours just for fun so I don't think I'd mind doing it live? I like sharing my notes and don't mind helping people understand whatever they are learning better. Follow me on Twitter to check out for my streaming schedule.
- Contribute to open source: This is mainly because I want even more experience with ownership of features and working with teams and having my code openly dissected and reviewed by even more experienced folks.
- Embrace that being a software developer means to be an eternal student: This is really the field where you can always learn something new. I take pride in the fact that I like to dig deeper to understand how everything works and I've been studying every day for a bit solely because I've fallen back in love with coding.
- Becoming a better problem solver: Just always bettering my CS knowledge and practicing how to implement data structures more and more. I'm not always the most motivated to do so but I do know it's important.
- Just keep going: You can't beat experience. Experience is how you get better at a language, approach solving problems and become a more well rounded developer. You need to fail a million different ways in order to grow. A million different ways of creating bugs leads to you learning a million different ways to not make those mistakes again lol.
- Remind myself that even the best of engineers fail interviews...ALOT: I've watched someone I've known (someone who has been coding since he was 8, has learned the ins and outs of computer science to a level of depth I can't even comprehend and has held nothing but senior roles since he was 18) fail interviews and be given some of the most critical feedback ever. Sometimes your code gets picked apart and exes you out for even just the little things. I have to remember that even the best fail and that's okay. That doesn't make you a bad engineer. That doesn't make you a bad engineer. That doesn't make you a bad engineer. You just keep it freaking move on to the next and keep your head held high. You get right back to building on that side project or practicing Leet code problems. Cry if you must cuz that's normal, but at some point you gotta move forward. I don't really know if this is an open diary entry or if I'm giving advice to be honest but if you felt any part of this post let me know. This is a first draft and I hit publish or else I probably would've scrapped this but I think this could potentially help someone else outside of myself. ## What Will I Do Next?
- Expect a cheatsheet on Vim later today
- Need to update my personal blog site so I can be more professional (lol)
- Push out at least one vanilla JavaScript tutorial a week. I already have a few you can check out here
- Go live on Twitch and do my thing
Top comments (14)
It's interesting, after 20 years writing code for a living, I still get bouts of feeling like an impostor. I've had to accept it, remind myself of my achievements (nice list btw!). I've learned that developing a relationship with my inner critic is crucial. You might get something out of my write-up here:
Dealing with your Inner Critic - a dev's guide
Daragh Byrne γ» Jan 17 γ» 5 min read
Since you mentioned burnout, here's a survey I did on that topic on my site!
codingmindfully.com/the-software-d...
Thanks for leaving a comment and happy coding :)
Same to you!
Wonderful post Tae'lur! Good for you for putting yourself out there. You remind me of me when I first started (and even now)! You'll never feel 100% confident but you're doing all the right things to achieve your goals. Keep kicking ass.
Thank you for taking the time to read this and comment Emma! Youβve also inspired me to up my content creator game and Iβm glad that weβve had really positive, funny interactions on twitter lmao. Thank you ππΎ
I know that's feeling. Even if the requirement to join a new job is compatible with me, but i still thinking "am i good enough for this job" and something like this. Good luck for me and good luck for all of you.
Tae'lur, this rings true for me as well. Though I followed a very different path to get here I have some of the exact same struggles. Funnily enough, I was thinking about getting a more formal blog going, which you're doing now...
A great shout out to you, for pouring your heart out in this great community. The very fact that you're writing tutorials and spending time to get your feelings out to communities so that others may learn from it that it's okay, is in itself an inspiration for myself and others. Sending good vibes ππ€π
This post- π₯.
I just found your post about your journey and I vibeβd with it heavily. We took a similar path. Iβm now in my second role, working on React full time. Iβm trying to learn Rails on the side but part of me has been eyeing Go and also Python π I also never got past the first two lectures in cs50.
Iβve been obsessed with learning whatever I need to make the biggest money moves, and Rails doesnβt feel like a good investment in that regard...but I donβt know what I donβt know so Iβm doing whatβs fun π€·ββοΈ
So, where you at now in your career and with your goals regarding tech and what to learn? I just started watching twitch coders while Iβm working (since Covid has us working from home) and itβs been a great way to feel kind of normal while working.
Good luck with learning and tutorials, your story itβs inspiring ;)
I love the writing voice in this! Very relatable, and great advice π
Thanks for the post Tae'lur. It reminds me about myself 2 years ago.
Carry on writing because you're an inspiration to many of us. You carry on smashing every goal you've set. π