How I’m working to overcome my struggles as a junior developer

I believe the other name for coding is the “struggle”. And if you are a beginner or a junior developer, this struggle often is multiplied by 100. Learning to code, finding the right resources, making a portfolio, hunting an internship or a junior dev job, and then working on a real-life project — everything can be a struggle.
But the good thing about struggling is that you learn and come out of your comfort zone to experience new things and implement new ideas, eventually polishing yourself to be a better version of you.
In the tech industry, there are a lot of success stories presenting a long journey of struggle and learning. Everything looks fascinating from the outside. Especially for junior developers, their senior colleagues and mentors are the best people who come up with great logic and astonish them with their amazing ways of writing code.
But when we get closer and see things clearly we realize that everyone has to face challenges, everyone gets stuck with bugs and errors. But through time and experience, we see that they just get stuck on bigger and complex challenges than we do.
Let me share my two favorite tweets from two people from whom I learned a lot. These tweets always make me smile and motivate me. I realize that perhaps we are all in the same boat and sharing the same vision for the same destination.

Life let me see this tweet at the time when I was a struggler and trying hard to get JavaScript into my brain. It was an awful concept a few months ago. And it took me around 10 months to learn, explore, implement things and finally getting a remote paid internship.
In the learning phase, I was always in search of appreciation and acknowledgment that I would ever become a good programmer. I wanted to know if programming was my thing or not, or if I would ever be able to write good logic and code as other great programmers do.
Getting stuck on small issues and not being able to fix things quickly used to make me flustered and frustrated. But seeing some top programming celebrities being honest and displaying to their followers that they are also not perfect helped me believe in myself.
And my second most favorite tweet during my time of struggle was from one of the finest developers and the author of the You Don’t know JS series, Kyle Simpson.

Haah! Feeling good? I’m not sure about you but this made me feel a bit more relaxed for some time at least.
After sharing my story of learning and not earning in my previous article, today I’m going to share another phase of my technical journey: after a long struggle of getting a job, struggling to survive in that job.
A bit of recap
I recently started a remote internship at Outreachy. I’m working with Mozilla on the Firefox health dashboard for the next three months. I realized that with learning and experience, my fears and insecurities about my career also changed. This article is part of my internship assignment — to write down the fears and challenges I faced during the first few weeks of the internship. I hope it helps newcomers and those junior developers who are struggling to get in the race or survive and lets them know that everyone struggles and it is necessary for learning.
I was excited and a bit nervous to start my first week at Mozilla with everything ready the night before. but I didn’t see an unexpected thing coming: a nine hour long electricity shortage at my place. I was unable to communicate with the mentors and start anything at work.
Thankfully, it came back at 5pm and I had a very welcoming onboarding meeting with Outreachy fellows and the mentors from Mozilla. Things were quite interesting and new to me, like meeting people from around the world and communicating in English for almost an hour. I met my mentors Armen and Dustin for the first time, and it was good to see them. It felt totally different than emails and messages.
My mentors already had a trello like board organized at GitHub with some issues placed according to their complexity. Starting the next day, I had to pick issues and start working on them. After starting to work on the issues I realized that the party has just begun. The previous struggles were just a trailer.
It’s all about understanding the code.
My feelings while applying for the internship were totally different from the feelings when I started. Now the fears of not getting this opportunity got replaced with the fear of not doing well and ending up losing it.
And it was really hard when I was stuck with my first issue which was to customize the graphJS tooltip according to the requirements. At first, I thought I would be able to do it easily but it really gave me a tough time. I was unable to figure out the solution for two days.
I asked a couple of questions from the mentors and was trying my best to solve it. But for a moment, I believed that I wouldn’t be able to fix it and that was depressing.
At that time, my mentors didn’t pressure me. Instead, they gave me the confidence and the idea that it is totally okay to struggle with a new, large code base. Sometimes it takes time to understand things and the code written by others, so we shouldn’t be hard on ourselves. We need to take our time to grasp new things.
After realizing that I was struggling to understand the code base, with hundreds of functions and files, my mentor told me about the Rubber Duck Technique and asked me to explain the code to the rubber duck. This would help me get a better understanding of the code and what was going inside.
“It is okay to get stuck, we all get stuck with issues and errors. With the years of experience we get stuck less, but we still get stuck.” — Armen Zambrano
So here are my findings
Knowing where to start is half the battle
Most of the time you know the solution, and maybe the logic, and how to implement it, but you don’t know WHERE TO BEGIN! With a lot of code files and functions, you get confused as to where this solution should be placed to work well. My mentor Dustin Mitchell suggested that I use comments to understand the code and functions, in addition to my own technique to console.log(everything that comes in the way).
After the first issue, things went a little smoother but were still challenging. I got stuck again on a relatively complex issue and it took a few days to get fixed. But luckily, our mentors and people in opensource are kind enough to understand that we, the junior developers, sometimes struggle — and they don’t make us feel bad for this. We need more people like these in tech who are willing to help and mentor, who provide juniors with the best resources to learn and not to burn out.
Merge conflicts hurt!
Ah!! If you are a beginner and new to opensource, I want to warn you about merge conflicts. It hurts badly when you don’t know to how to resolve them, you have spent hours on finding the solution of a problem and you end up losing your code in an attempt to fix the merge conflict.
I ran into some conflicts and I messed up with a few git commits. It was annoying and scary. But I wouldn’t have learned some new concepts in git merging, committing, and resolving conflicts if I hadn’t done this. Thanks to Sarah Clements and Dustin Mitchell for helping me get out of the merging trap.
Recognizing your own code is a struggle
This holds true for almost everyone, and it is really funny that even after a few days we fail to recognize our own code, written by our own hands. After solving a bug, I tried to solve a similar bug and went back to the previous one for reference. And I was like… how come I wrote this code and why the hell is it working?!
Working code can be as confusing as a non-working code. In most cases, the working code gives us a tougher time. And sometimes after coming back to old code, you rethink it and you can come up with a better solution. So you don’t need to worry or feel bad if you don’t understand your own code or others’ code. Maybe you are close to learning something new.
Tell me how to survive
Based on my first few weeks as an intern, I have some suggestions for myself (and others) for the rest of the internship. And most of these suggestions are from my mentors and awesome people I met at Mozilla during the internship. I am sharing them with you, so that maybe they can help you, too.
