What Senior Developers Can Learn From Junior Developers

                                                                                 Photo by Edu Lauton @edulauton on Unsplash

Senior developers have, by implication, built up a reservoir of experience, skills and smarts.

Junior developers are, by definition, new to software engineering and need to make their way into a software engineering career.

So, it sounds counter-intuitive to say senior developers can learn things from junior developers. Yet I believe we can all learn something from anyone else, and so I started to think about the lessons each and every software developer can learn from the junior developer in their team.

Embrace Curiosity

Junior developers don’t have every answer, so need to be curious about what the possible answers are and *why* they are possible solutions to problems.

As junior developers move up the competency hierarchy they can understand more. This opens up new doors, new solutions and more complex problems. The curiosity moves to excitement. Unfortunately, after some time, this excitement is replaced with…nothing. 

When was the last time you questioned why things are done in the current way they are? 

Let me be clear. No software engineer has the answer to everything. Junior developers remind us that complacency is the enemy of innovation.

Documentation Counts

Documentation seems to have become something of an urban legend. Software engineers feel at some point that they outgrow documentation and have fed themselves of the need to write things down.

Juniors understand that a dependency on documentation that forces them to write things down is a positive. They benefit both the process of documentation and the outcome of documenting the work. 

Let’s face it, even the most senior developer forgets how their code works after a few months. 

Resilience

Senior developers (in my experience) love new software developers joining teams. The first PR is raised, and it’s like a pack of dogs feasting on a wounded animal. Juniors find their code ripped apart and come back the next day for more after rewriting their code.

When a senior developer presents shoddy work (we all do sometimes, own it) they frequently become dismissive or take the feedback personally.

As a senior developer, it would be better to take that feedback as a junior. Learn from it and move forward (come back stronger).

Continual Learning

Naturally, junior software developers are in constant learning mode. They accept new tools and techniques and integrate them into their workflow. Their willingness to dive into the unknown can make them valuable members of the team (and fast)!

This isn’t the same as a senior developer who wants to resist the new trends and tools simply because it will involve work to get up to speed (this is different from wanting to slow change for the good of the project).

No one, regardless of position in the hierarchy should stop learning if we want a positive work environment and good quality project.

Humility

Problem-solving is a tricky business. In software development juggling features, bugs and legacy code can be challenging and may any developer to take a step back from the problem and consider a solution for a while.

The experts in this type of humility are junior developers. They lack the ego and overconfidence which seems so common in software engineering, and crucially are ready to ask for help when they need it.

Nobody has every answer. We all need to develop strategies to solve problems when we don’t have every answer, including communication and collaboration skills.

Conclusion

Next time you feel frustrated that a junior developer is struggling with a merge, take a deep breath. Take a moment.

Their curiosity, resilience, and eagerness to learn are valuable qualities that are important to all software developers (including YOU). If you’re meeting people and fail to see what you can learn from the opportunity it might be time to change your way of thinking and checking your expectations next time you talk to a junior developer.

Previous
Previous

The Famous Last Words of the Software Engineer

Next
Next

When Dogs🐶 Howl, Developers Debug