Congratulations! You’ve gone through rounds of interviews and landed your first junior developer job! It’s a new and exciting start to your developer career path, but you’ll also be faced with a fair share of challenges in your first developer job.
In this article, we’re going to talk about four common challenges junior developers face in their first developer job and how to overcome them. We’ve also included advice from senior developers who’ve overcome these challenges and mentored other developers through them.
You need to work with unfamiliar technologies
How To Overcome It
Imposter syndrome can feel very real. But as you’ve passed all the interviews and landed the job, your hiring manager has thoroughly evaluated your technical (and soft) skills and decided you’re a good fit for the position. Your team and your manager don’t expect you, a junior developer, to be familiar with every technology used by the team. However, they do expect you to be able to learn and pick up new skills.
When you encounter an unfamiliar technology or library, the first thing to do is to find and read the documentation. “No matter how unfamiliar you are with the library, you will at least get an understanding on how it works,” says Johnny Bizău, a 5-star mentor on Codementor. This will give you an overview of the technology and make it easier for you to know where to start.
Unfortunately, some libraries and modules lack good documentation. There are still ways to work around this. One way is to look at similar open source projects people have built using the same library, ask questions along the way, and try to figure it out on your own. But this might take quite some time.
To speed things up, an alternative approach is to work with a senior developer on your team or, if no one on the team is available, a mentor who is familiar with the technology you need to learn. They’ll be able to fast track your learning by leading you through the most important parts that you need for your job. They can also identify how your current skill set fits in with the new technology or library you need to get familiar with, and customize your learning to meet this goal.
You struggle to write code that fits in with the existing company code
You’ve opened a pull request for code review and feel pretty confident about it. But it’s returned to you with more comments than you can count. Turns out, your code isn’t compatible with the company’s existing codebase. You’re feeling discouraged by the critiques on the code that you were confident about.
How To Overcome It
This is a common challenge that developers face when they join a new team with established conventions, regardless of their seniority. However, senior developers have accumulated more experience over the years and are usually more prepared for this kind of challenge.
In an ideal world, your company would have a complete code style guide you can review and follow to make sure that your coding style aligns with the team’s style. However, in reality, not every company has comprehensive documentation.
Regardless of whether your company has a style guide or not, almost every mentor gave us the same answer when we asked what advice they would give when junior developers are faced with this situation: ask questions.
“I find the biggest hurdle for juniors, aside from a lack of skill and confidence, is the inability to communicate and ask the right questions because they are scared it will make them look bad,” – Dominik Seifert, mentor at Codementor
Ask developers who have more experience with the product and codebase a lot of (relevant) questions and things to look out for. By asking questions, you’re sharing what you don’t understand and letting other developers know how they can help you get on track more effectively.
Then, take it a step further and document the findings and results. This growing documentation can be something you refer back to and, who knows, it might even be the start of the missing style guide (which might win you bonus points from your team and manager)!
At the same time, be mindful and respectful of other people’s time. Even if your teammates are happy to help, they have limited time and their own responsibilities to fulfill too. Besides making sure you’re asking the right questions, your other priority is to “become more independent as quickly as you can, but don’t rush it. For example, if you’ve been stuck for 30 minutes, ask for help” advised Bradley Culley, an experienced mentor. “In summary: seek assistance, but try to become more independent as quickly as you can. You most likely can’t do it alone.”
If you’re starting to get an idea of what the code style looks like, you can also streamline your coding process with “tools like ESLint,” suggested Johnny, as they can “automate and format your code according to the rules.”
You’re frustrated over the lack of project direction
You’ve spent hours coding a specific feature, only to be notified in the next meeting that the project is going to take on a new direction.You’ll need to go back to adjust your code or start from scratch again. “Fine”, you think, “hopefully it’ll be a one time thing.” Except it’s not. Over the next weeks and months, project directions keep changing, and it’s gotten to the point where you’re not sure why you’re doing what you’re doing anymore.
How To Overcome It
Unlike class assignments, where the end goal is certain, in a working environment, a lot of projects shift and adjust as they develop. If you’re feeling confused about the lack of clear project direction, one of the first steps is to check if you’ve been left out of the loop or don’t understand the overarching goal.
Sometimes when you join a team mid-project, managers and other team members who already know the project goal may forget to update new members. In these situations, ask your team lead or manager about the main goal and project roadmap. This will give you the clearer big picture and provide an overview of how each decision fits into the long term goal.
That said, the lack of a clear project direction isn’t always due to the lack of communication. Sometimes, it’s due to company shifts, client requirements, or other things that, simply put, are out of your control. As a junior developer, there’s unfortunately not much you can do about this.
If you’re feeling particularly frustrated, don’t underestimate the power of “taking a break,” suggested Johnny. By taking a walk or a coffee break, the time away from your code gives you time to recharge and readjust your mentality. You can also bring up your concerns or frustrations with your manager — but at the end of the day, it’s important to learn that these shifts and uncertainties are often “just a natural course of business,” says Bradley.
Asking questions and initiating conversations with team members, managers, or clients, and staying informed on any directional changes can lessen the frustration as you’ll less likely be blindsided by a decision.
It’s hard to keep up with the new technologies
You’ve been at your job for a while now, and you no longer have to play catch up every day. Just when you’re starting to feel more settled, a new project comes your way and there’s a big update to the library. Unlike when you were a student, you can’t dedicate large chunks of time to learning new technologies. It seems like the senior developers on your team are taking the technology updates in stride, so how can you be like one of them?
How To Overcome It
Staying updated with the latest technology is part of your job as a developer. As a junior developer, you are essentially “learning the tech stack in a real-world setting from the ground up,” says Dominik. This may be extra stressful as you need to adjust your learning method with limited time.
Schedule time to learn the updates. If it’s a new tool or update that you think you can pick up relatively quickly, dedicate 30 minutes or an hour in your day to researching and learning how to use the new technology. You can also ask senior developers on the team for guidance if this is a tool they’re familiar with.
But what if it’s a larger update or a completely new tool that will take hours or days to learn? Between the workload and deadlines, it’s unrealistic to dedicate hundreds or even dozens of hours to learning. The senior developers on your team also won’t have the bandwidth to spend hours teaching you the technology.
While you can spend weekends or pull an all nighter or two to teach yourself the technology, this method is not sustainable. There are several ways that you can “crash course”, including Youtube videos, or through communities such as GitHub or Dev.to.
If you want more guidance, you can work with a senior developer or mentors outside of your organization. They can update you on the newest technology in the most efficient manner. Mentors can help you prioritize which technologies you need to learn based on your project or requirements, and guide you through the updates in a timely manner.
As a developer, you should maintain the habit of staying updated with the latest developments relevant to your tech stack. “We find out about new stuff from the developer news, GitHub trending repositories, etc.” says Johnny, and “when the moment comes to use that technology, reading the documentation is one of the nicest ways to learn about it.”
Bradley has extra advice for junior developers who are just starting their software development career:
Be very deliberate in choosing the technical stack that you want to be your ‘wheelhouse’. Don’t believe people who say it’s easy to learn another one. It’s easy to learn the basics. You need to go far, far beyond the basics if you want to gain seniority and produce software efficiently and effectively.
The changes that come with going from a student to a working developer isn’t just a change in title. To overcome the challenges you face in new working environments and thrive as a developer, you’ll need to shift your mindset, approach, and learning style. Every new roadblock is an opportunity for you to grow more technically adept and professionally mature. Learning when to get help, asking the right questions, and finding the right resources will become easier as you grow as a developer.
What are some other challenges that you’re facing in your first developer job? What are some tips you’ve picked up that might be helpful for other developers? Leave a comment below!
Mentor Profiles (in order of appearance)