Landing your first job as a developer is a time for celebration. You’ve made it through your coursework and the hiring process, and now, it’s time to kick off your new career. But this time can also come with new, sometimes intimidating challenges, according to Codecademy Software Engineer Zeb Girouard.
“There’s this idea of what lies at the end of the rainbow — more money, freedom to travel while you work, and the ability to dictate your own schedule,” he says. “But along the way, you might face some hits to your self-esteem.”
While training and research can give you an idea of what to expect, some things can only be learned on the job. Ahead, Zeb and other Codecademy software engineers shed light on eight challenges you might come across as a new developer and how to overcome them.
If you find yourself facing any of these challenges in your own career, try not to feel overwhelmed. They’re not insurmountable. With patience and a little ingenuity, you’ll find your way in no time. “You’ll have ups and downs, but things get easier over time,” says Codecademy Software Engineer Jasmine English. “You just have to roll with it.”
1. Dealing with new and unfamiliar technologies
Every company has a different tech stack, and new and experienced developers alike are often faced with tools and technologies they’ve never used before. In her first role as an apprentice, Codecademy Software Engineer Amy Resnik had to learn TypeScript — and it took some time for her to learn its syntax and how to use it. “It can be challenging when you’re coming into a new role that requires you to use a language or framework you’re not familiar with,” she says. “But if you continue to work at it and expose yourself to the code, you’ll pick things up pretty quickly.”
The best way to learn something new is to dive into it head-first. You could even try an online programming course to help you master the ins and outs of a new language — including right here on Codecademy. For example, if you find yourself in a position like Amy’s, try our Learn TypeScript course.
2. Working with an existing code base
There’s a big difference between the projects you built during your coursework and professional code bases that have been in the works for years. “Most people start on small toy projects, but professional code bases are sprawling,” says Judah Anthony, Senior Engineering Manager at Codecademy. “There’s not a whole lot between the two, so it takes skill to learn how to navigate a large code base and know what you have to know — and don’t have to know — to get the job done.”
Large code bases can be intimidating. Some of it might be new, some of it old, and some might be written in a language you’re not familiar with. But the key is to take it one step at a time. Read through documentation. Reach out to your coworkers when you have questions. “There’s a learning curve with figuring out how to navigate through the code base,” Amy says. “But as you continue to work at it and work within your team, it gets easier.”
You can also prepare ahead of time by finding opportunities to work with larger code bases. Maybe you could lend your skills to an open-source project or find volunteering opportunities to write code for a nonprofit.
3. Feeling overwhelmed by onboarding information
There’s a lot you’ll be expected to learn in your first few days on the job. Your onboarding might include information about the company and its goals, product features and value propositions, system architecture and infrastructure, coding practices and standards, and more.
“You get a whole lot of information all at once, and you’re not sure what to do with it or how you’re going to use it,” Jasmine says. “It can seem a little overwhelming because you feel like you need to know all this stuff, but you really don’t. You can always come back to that information later when you actually need it.”
Instead of trying to absorb all this information at once, focus on what’s most relevant to your immediate duties and go back to your onboarding documents as necessary.
4. Facing interruptions and context switching
Codecademy Software Engineer Sarah Kate Haddon is two months into her first engineering role, and her biggest challenge so far is managing her workload.
Developers and engineers have a wide range of responsibilities, from building applications and integrating systems to running tests and reviewing code. It’s a lot to juggle — especially when you have several projects on your plate and have to switch between them throughout the day.
Think back to a time when you were writing code and someone interrupted you to ask a question. It probably took you a few minutes to regain your flow. Now, imagine trying to focus while dealing with emails, Slack messages, meetings, and pull requests.
So how do you find a balance? Sarah Kate suggests blocking out time on your calendar to focus on specific tasks. “Dedicating a certain amount of time to code reviews, research, or just straight up writing code is super helpful,” she says.
5. Figuring out how to prioritize
Not only will you have to juggle many tasks, but you’ll also need to get them done in a timely fashion. This can be hard when you’re still getting used to the job, learning new languages, and taking on new responsibilities. And it’s especially important when you’re looking to work your way up to the next level, where you’ll often be expected to accomplish more in the same amount of time.
But it all comes down to time management and prioritization. Try making a list of all your projects, how long you think it’ll take you to complete them, and the people you can turn to if you need help. Then, talk to your manager about prioritizing these tasks and laddering them up to your team’s goals.
Using a similar approach helped Jasmine increase her productivity (and eventually earn a promotion). “I just needed clear, concrete goals to work toward,” she says. “Once I was aware of those goals — for instance, reaching a certain number of tickets during a sprint — it was easier for me to recognize what I needed to do and how to manage my time and resources to get there.”
6. Adjusting to remote work
Remote work has been on the rise over the past couple of years. Studies suggest that up to 25% of jobs in the U.S. will be remote by the end of 2022, so there’s a decent chance you might find yourself working from home. And while working remotely has its perks, it also comes with unique challenges.
Amy says that one of the biggest challenges of working remotely is the lack of face-to-face contact with your team. In a traditional office setting, you could roll your chair over to a teammate when you have a question, or they might notice you struggling with something and offer to lend a hand. But when you’re remote, you have to take a more direct approach. “You have to take it upon yourself to make sure you’re getting the help and support you need because everything is very different in a remote world,” Amy says.
The lack of face-to-face contact can also be isolating and make it difficult to bond with the rest of your team. Amy recommends finding collaborative opportunities to share and learn from each other. “My team used to have bi-weekly ‘casual coding’ meetings, where people could just pop in and ask for help or just hang out and work together,” she says.
7. Worrying you have “too many” questions
It might seem like a small issue, but many new developers struggle with asking for help when they need it. When you’re new to your role, you may not be sure what you’re expected to already know and what you’re expected to ask for help with, Jasmine says.
You might worry about seeming incapable or being a burden, but if you have a supportive team, they’ll likely be happy to lend a hand. Remember: Most of them have been in your shoes at some point. “Nobody is born with innate knowledge,” Sarah Kate says. “People at the senior staff levels still don’t necessarily understand or have complete comprehension of what’s going on at all times.”
Asking questions is the only way to grow, and it’ll also help you avoid spending hours (or even days) on a problem that might have a fairly simple solution. But it’s also important to ask questions in a way that will kickstart a productive conversation. Instead of telling your manager you don’t know what to do, try explaining the problem and outlining how you tried to resolve it. This will give them more information to work with, and it’ll also illustrate that you’re capable of tackling problems on your own and willing to ask for help when you need it.
“Maybe you’re working on something that’s completely new to you, or things turn out to be more complicated than you anticipated,” Jasmine says. “There are a lot of reasons why you might need help, and they’re all fine. Nobody expects you to bake a pie without looking at a recipe.”
8. Facing impostor syndrome
When you’re worried you’re asking too many questions, that anxiety can lead to impostor syndrome. Judah says that self-doubt is one of the most common issues he sees in new developers. “People don’t realize they’re not supposed to know everything as a beginner, so they feel like a fraud and unnecessarily toil on things because they’re afraid to ask questions or get help,” he says. “This can stunt people’s growth and cause a shame spiral.”
It’s understandable. Software development involves a lot of moving pieces, and new technologies and methodologies are developed every day. There’s a lot to learn, and there might be times when you wonder whether you’re up to the task — especially when you compare yourself to more experienced teammates.
“I’ve had experiences in the beginning of my career where I was in a room with 25 people talking about things I didn’t understand,” Zeb says. “I felt like if I interjected, I’d be that guy who has no idea what was going on, and I’d derail the entire meeting.”
But remember that you were hired for a reason. Your hiring manager evaluated your skills and brought you aboard because they believed you could succeed in the role. Focus on what you can do, and make time to learn what you don’t know. “Allow yourself to not know everything and to be curious,” Sarah Kate says. “The only way to eat an elephant is bite by bite.”
If you need help brushing up on your skills, check out our course catalog, where you can find courses on everything from front-end development to data science. And if you’re still working on landing that first job in tech, you can find code challenges, portfolio projects, interview prep, and other helpful resources in our career center.
Just remember: You got this.