8 Must-have Mindsets For Junior Developers

Melinda Zhang
Nothing Ventured
Published in
8 min readMay 16, 2023

--

Hey, do you remember your first day of school? Or that summer job you had? What about the first time you traveled abroad alone? If you can relate, you know exactly how it feels to start a new job as a junior developer!

I’m Melinda, a graduate software engineer from Phorest. Last year in May I started my first developer job after changing careers. Check out my first blog post about my changing career journey at the age of 41, Never Too Old to Be A Junior Again.

Starting your career as a junior developer can be both exciting and overwhelming! However, if you have the right mindset to start with, you can be prepared and ready to take on the challenges on your way!

Today, I want to share some insights about the mindsets that I have learned from my manager, mentors and the whole team. If you are also on the path to becoming a developer, I hope this article finds you well and gives you some valuable takeaways.

1. Get comfortable with being uncomfortable

As a junior developer, getting comfortable with being uncomfortable is important. Learning involves stepping outside of your comfort zone and embracing the unknown. Accept that it’s okay not to know everything and be prepared for feeling uncomfortable at times. This mindset will help you break down barriers and grow as a developer. It will also help you become more confident in asking questions, which is a key part of the learning process.

One of the most significant moments in the first year of my career was my first demo. In our company, we have a meeting called “sprint demo”. It is a biweekly meeting held by our product and development team where we showcase new features we have developed and tricky problems we solved. Each team will select a couple of members to demonstrate their accomplishments. That week the tasks I was working on were one of the highlights of our work. So naturally, that part of the demo responsibility fell on me.

I can still recall the intense nervousness and tension I felt leading up to the meeting. I was terrified of public speaking, and the idea of having to present in front of a group of people was daunting.

The hour had finally arrived, and I was trembling with anxiety. But as I started to speak, I felt my nerves dissipating, and I began to enjoy myself. The adrenaline rush was intense, but it felt exhilarating to talk about the work I have done and have the attention of the audience.

After the demo, I felt a sense of pride and accomplishment. I had stepped outside of my comfort zone and faced my fear of public speaking head-on.

2. Get used to being stuck and do not hesitate to ask for help

Being stuck! We all know that feeling! It sucks! But hey, that’s the life of a developer! We solve problems day in and day out. And let’s be real! Problem solving takes time, effort, and sometimes multiple attempts. It’s okay if you don’t get it right the first time, we’re all human after all. Don’t get too frustrated or annoyed with yourself, that won’t help. Instead, take a step back, re-evaluate the problem, take a break, and go for a walk. When you come back to it, try a different approach. More than likely, you’ll nail it this time around.

If you find yourself stuck despite all your efforts, don’t be afraid to ask for help. This is particularly important for junior developers, as there may be topics that we have not encountered before. As my mentor always says, “You don’t know what you don’t know.” At some point, you may need to acknowledge that a problem is beyond your current knowledge and seek assistance.

3. Get used to switching contexts

As developers, we have multiple tasks throughout the day, such as meetings, writing documentation, and learning new concepts. When you get bogged down by a challenge, stepping away is sometimes good. Take a break, or move on to the next task on your to-do list. There have been numerous times when I got caught in a rabbit hole because I refused to give up and kept working on a problem despite it being clear that my approach wasn’t working.

Our brain has a diffusion mode, which means it creates new neuroplasticity when we’re at rest. I’m sure you all have solved a problem while in the shower or had a lightbulb moment while on a walk. By switching contexts, you allow your brain to enter those diffusion modes. This not only improves productivity but is also crucial for self-development.

4. See the bigger picture

Some people think that a developer is just a coder, someone who simply converts a solution into code. However, this is far from the truth. A developer is a problem solver, the one who connects the dots. Only when you understand the problem as a whole can you easily solve it!

This is why it’s really important for developers to have a good grasp of your product’s architecture. This allows them to truly understand how the system works, which in turn helps you write better, more efficient code.

This also applies to the product’s point of view. Knowing the product well plays such an important part in your career. A developer’s job is not only to solve a coding problem. On a higher level, you are solving a user’s problem. When you see the problem from the user’s perspective, you give the product its purpose, and that is the end goal!

It is also important when writing code. We need to think beyond just making it work and consider how it will work for the whole team or project. This means ensuring it can handle growth, be easily maintained, be read by others, and be functional. By taking this broader view, we can ensure our code is effective and sustainable. Plus, we can make sure others can easily work with and understand our code, which is key to any successful project.

An example from my own experience highlights the importance of seeing the big picture. It was when I got a task for fixing a bug in Mirage (A JavaScript library that lets frontend developers mock out backend APIs). I encountered Mirage a few times during a couple of pairing sessions with senior developers of my team. At the time, I was purely focused on the lines of code and believed I understood what the code did. However, when I got the task to handle on my own, I realised that I didn’t fully comprehend how Mirage fit into the overall development process and what the functionality of each file was. Feeling lost and unsure of where to start, I turned to the documentation. Unfortunately, the documentation didn’t use the architecture we used in the project. It was then that I reached out to one of the senior team members. He explained concepts on a higher level and answered all my questions. After that session, the solution appeared right before my eyes and the bug was fixed very quickly.

5. Do not compare yourself with others

Remember the time when you were looking up to the seniors in your team and thinking, why can’t I be more like them?

Well, everyone has their own journey, they were once in your shoes too and had to work hard to get to where they are today. Don’t be too hard on yourself if you don’t feel like you measure up to them just yet. Instead, focus on developing your skills, knowledge, and experience at your own pace.

Remember to only compare yourself to who you were yesterday, not to others, and be patient with yourself as this journey is a marathon, not a sprint.

In his book “Atomic Habits,” James Clear discusses “The Power of Tiny Gains.” He emphasizes the importance of consistent, incremental progress.

One habit that has helped me a lot is writing down what I learned at the end of each day. By tracking my progress every day, I have a clear benchmark of where I was yesterday. This allows me to focus on improving that 1% each day.

6. Do not focus solely on the end result

As a junior developer, it’s important to remember that progress comes in many forms. Don’t only focus on the end result, when you are given a task. All preparation work, investigations, learning, and so on, should also be seen as progress. These steps are important parts of the learning process and are essential for your growth as a developer.

An important skill distinguishing seniors from juniors is breaking up tasks into smaller and more manageable pieces. It was eye-opening for me when I saw my mentors do this. By making the task into smaller pieces, we reduced the complexity of the task and build momentum and confidence.

Additionally, documenting what you have tried and your findings is crucial. This allows seniors to better understand your thought process and offer more targeted guidance to keep you on track. Furthermore, it serves as a valuable resource for future reference.

So, next time when you face a challenging task, take a deep breath, embrace the journey and take the time to appreciate each step of the way.

7. Computers are dumb, assumptions are on us

I’m not sure if everyone will still agree with this after all the talk of AI innovation lately. Nevertheless, a machine is still just a machine, and we give it instructions to follow. If something doesn’t work as expected, it means the instructions are wrong. Assumptions are the biggest obstacle to productivity. How many times have we assumed something, only to end up on a completely different solution path? We get so caught up in our assumptions that we forget to question ourselves and look for evidence to back them up.

We all have different perspectives, especially in the tech industry. Something that may be obvious to a developer may not be so clear to QA or a designer. When solving a problem, taking a different perspective can save you time in the long run.

Next time you assume something, pause and look for proof!

8. Remind yourself of the “why”

We are all human, we are not perfect and we all have bad days. It’s important to remind yourself of your purpose and motivation when those moments arise. Think back to the reasons why you chose this career path, and reflect on what aspects of your job give you the most satisfaction. Is it a sense of accomplishment when you successfully solve a problem? The opportunity to learn and grow? Is it the rewarding feeling of knowing that the feature you implemented solved the users’ problem? Is it the sense of satisfaction after helping the clients? By asking yourself these questions, you can rekindle your passion for your work and find the drive to keep pushing forward. In order to continue to develop your growth mindset, it’s important to take advantage of every opportunity that comes your way. Seek out challenges and new experiences that will expand your skill set and help you achieve your goals.

Remember, your future is in your own hands!

--

--

Software Engineering is my new passion, I'm currently working on improving my engineering skills and the goal of living my life with no regrets.