Starting a new job as a developer can be a daunting prospect especially if you’re coming from a self-taught background. For many junior developers starting their first job may evoke feelings of excitement as well as inadequacy. The feelings of inadequacy are commonly termed imposter syndrome. This is common for experienced as well as inexperienced developers, and these feelings are usually the result of working in a complex and constantly changing landscape.
There is so much to learn it’s almost impossible to understand all of it in any detail. Feelings of imposter syndrome can be even more intense for those just starting out in the industry because, well, they’re new to it.
Your first job as a junior developer is an important one. Mainly because this experience can ultimately determine whether this career path is for you or not. As a junior developer, it is up to you to ensure you do what it takes to make the most of this opportunity and experience. You’ve already cleared the first, hardest hurdle, you’ve managed to teach yourself how to code and now you’ve bagged yourself a job. Your next hurdle is surviving your first 6-12 months as a junior developer. This will be a challenging experience, but if you approach it the right way it will be an incredibly rewarding one, and you’ll learn a heck of a lot. Based on my own experiences during my first year as a junior front-end developer, I’ve compiled my 5 top tips for acing your first 12 months as a junior developer.
In all honesty, there’s no polite way of putting this. You will be experiencing information overload on a daily basis (this never really stops but it tends to calm down as you gain more experience and settle into a job). This can be pretty overwhelming, and alongside the other conventions that come with a new job - like getting to know a new surrounding, new co-workers, processes, and coffee machines - things can get on top of you really quickly - but only if you let them.
Preparing yourself for this can go a long way toward helping you handle and cope with the rate of information overload. Aside from merely preparing yourself, here are a few approaches I took to handle this:
Keep a markdown file noting key pieces of information that would be wise for you to remember. Using markdown is cool because you can easily format your notes and they can live in your text editor so you can easily reach them when you're coding. Your notes can be codebase specific, they could relate to technologies the company/project uses - they can even be company-specific such as payroll and time tracking information, even where to find the toilet.
Ask a senior developer or your mentor which areas of information you should be focusing on. You are effectively asking for help to streamline this information overload so you can process and learn the key parts. An experienced developer will have the context and foresight to direct you.
This sounds like the standard tip of ‘be good at communicating’. But honestly, as a junior developer your communication skills are just as, if not more important, than your technical ability. Often, because you feel embarrassed that you might not know something and you’re hyper-aware that you feel out of your depth, it becomes tempting to silo yourself and hide away when you’re completely stuck on something - eventually, you might decide to ask for help begrudgingly. The problem is, if you don’t tell your co-workers or boss when things are hard or when you’re stuck then you risk shooting yourself and possibly your team in the foot. You won't help yourself and you won't allow your team and co-workers to help you. For instance, if you put off asking a question regarding a task that you do not understand you may end up blocked by this for a long time which may have been fixed really quickly if only you’d asked. The repercussions could be:
- Your team might miss a sprint goal or particular objective
- You may be perceived as underperforming
As long as you keep communicating you’ll allow yourself to progress at a much faster rate and you’ll allow your co-workers to help you too.
As a junior developer, you’ve been hired under the premise that you have little to no experience and you will require extensive training and development. Although there isn’t huge (there shouldn’t be) pressure on you to perform and be highly productive at this stage, this is still a crucial time, and you should be looking to show enthusiasm for what you’re doing.
Enthusiasm is a fairly broad term so we can refine this a little more with a few examples:
- Willingness to jump out of your comfort zone
- Eagerness to learn new languages and technologies
- Willingness to lend a hand even if you haven’t been asked to do so
Your fellow developers are way more likely to want to invest time in you and your progression because of this. Helping you to improve benefits the whole team not just you.
This one seems a little silly but is in fact a skill in itself. Being able to ask good questions is incredibly important for all developers, especially juniors. Naturally, being new to the industry and new to a job you’ll have a ton of questions that you will want to and need to ask. Inevitably, if you’re constantly nagging the developer next to you with questions there’s a high chance this will become annoying for them - especially if you’re asking questions in a certain way. It helps to follow a few key question asking rules:
Before asking make sure you’ve actually spent some time trying to answer it yourself. This is especially poignant for coding questions. It might help to actually write down what approach you have taken, what issues you’ve encountered, and what you think the solution might be. When you ask, you can go over each of these points and whoever you’re asking is way more likely to want to help you because this shows you’ve actively made an effort to solve something independently. Here's an example:
“I can’t get this h3 to center inside this div”.
“I'm struggling to center an H3 element horizontally and vertically inside a div. I’ve tried to use flexbox to do this. I have applied the flex display property along with justify-content and align-items center properties to the containing div but that hasn’t worked. I think it may be something to do with specificity. I’ve taken a look at the stylesheet but I’m struggling to find where the styles I’m applying are being overridden - if at all. Would you be able to point me in the right direction please?”
Find the middle ground between asking questions too quickly and waiting too long to ask. Again, this is more relevant for coding specific questions. If you ask too quickly, you risk annoying the person you’re asking. And if you leave it too long you risk wasting company time and money. Seems like a catch-22, but there is a balance to strike - you’ll just have to work at it to find it.
Asking lots of questions is fine, but distracting the developer next to you with five questions in less than 10 minutes might be quite frustrating for them. Especially as context switching is a massive productivity drain for developers so it helps to be mindful of this. Instead, try to group/batch multiple questions together - you’ll find a lot of them will be related in some way too.
Please don’t let my advice put you off asking questions! Developers like to have their egos stroked (at least a little), so asking them about things they probably already know will usually result in you learning something valuable.
If you’re lucky, maybe you'll be assigned a mentor at your new job. If so, then great! Please make use of them, they will likely have a wealth of knowledge surrounding not only the development side of things but also domain/company-specific knowledge that will help you settle in and progress in your role. I’d really encourage you to ask about this before starting your new position. Having a point of contact and someone to go to for questions regarding your progression and any pain points is really useful.
If you don’t have access to a mentor, all is not lost. If you play your cards right, often the more experienced developers you work with will become your de-facto mentors - especially if you’ve built a strong working relationship with them.
As a developer you will always be required to learn new things, it’s the nature of the job. However, this learning experience is intensified for a junior developer given there is so much to learn and adapt to. It’s not just the new frameworks, libraries, and languages but it’s also working in a cross-functional team, working with other developers, working with a client, or with a business product. These things are really tough to become good at if you’ve never had a job as a developer.
Ultimately you need to be willing to step out of your comfort zone. Be enthusiastic about it and make sure you communicate your progress (or lack of). This will enhance your learning and rate of progression, ensuring your experience as a newly hired developer is a positive and rewarding one.
Thank you for reading!
If you enjoy reading my content and want to support my work, please follow me on Twitter 😊