The Junior Developer Journey - Part 2
Tags: beginners, career, codenewbie, webdev
Published: 2022-09-16 11:44:48

This post was originally posted on [my blog](https://lisilinhart.info/posts/the-junior-developer-journey-part-2)

## Foundations for Being a Junior Developer

Being a senior developer in a company mostly means having more responsibilities and deadlines to keep. Seniors have supervision over major projects and need to make sure everything happens on schedule. Now imagine you as a junior developer coming into that new environment, right when the deadline is about to end. The feeling of keeping others from working can be very intimidating and you might think it wouldn’t be right to annoy them with your questions.

You can compare this to being the youngest kid moving to a new neighborhood. All the other kids have lived there for months, years, or even their whole life. They will already know what the quickest way to school is, who the nicest neighbor is and which neighbor to better leave alone. As the youngest kid, you will not only be weaker, but you will need to learn a ton of new information. It will take you a few months to learn all the things the other kids already know, simply from having been there longer. Asking questions can be a shortcut to information that would otherwise take you weeks to find out (for example where to get the best ice cream).

Knowing so much less than all the people in your environment, it’s natural to feel a little insecure. As a junior developer, you will often get stuck and slowly need to learn all the tricks and problems everyone else has already figured out. But there are also a lot of upsides to being a junior. As a junior developer, you will have more freedom and time to work on tasks and are often not forced to be finished in a certain amount of time. This gives you more time to experiment and explore areas that you want to especially improve in.

The kid, who lived in a neighborhood their whole life, is naturally confident in their surroundings. So is the senior developer with years of experience. It helps them solve problems in half or quarter the time it takes you as a junior, but that doesn’t mean you are bad at programming.

One of your main jobs as a junior is simply to get more experienced and gain some confidence. Your projects don’t have to be perfect and finished in the same amount of time it takes seniors to finish them. Stopping to beat yourself up because you don’t know something yet is probably one of the first big lessons as a junior.

## Writing bad code

Everyone knows the feeling of writing code that is not perfect. Especially at the beginning of your career, you will write code that is not working as you would expect it to and spend hours debugging certain problems. An important lesson for any developer is to recognize that barely any codebase is perfect. We can improve the process of writing bad code by introducing code linters, commit hooks, and testing into our codebases, but that will not change the amount of experience you have. The tools can help you reduce problems and learn faster, but it’s still very likely that the code you will write in 5 years is going to be better than the code you write today.

Furthermore, clean code is not only about you. The most abstract code piece, might not be the best piece of code because the developers coming after you, will not understand how it works and what it does. As a junior, you also have to recognize that legacy code is a thing and that a lot of the code you write will still be there in 2-5 years and other developers will have to work with it. It also depends on the area in which the code is written. Open Source code should be easy to contribute to, while backend code is often hidden with one person maintaining it, which makes the point of failure very big if that person is gone. In the end, the code you write naturally reflects your knowledge and experience as a developer. Furthermore, there are a lot of great blog posts and books out there about writing more readable code. One of the most popular books to read is [Clean Code by Robert. C. Martin](https://www.oreilly.com/library/view/clean-code-a/9780136083238/), but there are many others, which are also a great introduction to this topic.

## How to gain confidence as a developer

To see a path into the future and gain confidence in our skills, it’s essential to recognize all the things you have already accomplished. An easy way to become unhappy is to constantly compare yourself to others who have accomplished or know more than you. By taking some time to recognize the things you have already done, you can train yourself to think more positively. It’s a great feeling to look at code from a year ago and feel like your skills have improved.

## Exercise - Confidence

By focusing on what you have already learned, you will see that you're gradually improving and becoming better.

### List all achievements in the past 3, 6, and 12 months

| Question | Your Answer |
|---|---|
| **What did I achieve in the past 3 months?** | *E.g. I wrote my first react app* |
| **What did I achieve in the past 6 months?** | *E.g. I completed online course XYZ* | 
| **What did I achieve in the past 12 months?** | *E.g. I learnt how to write Javascript* |