How to work with juniors by@denisraslov

How to work with juniors

image
Denis Raslov HackerNoon profile picture

Denis Raslov

And not to join the dark side

image

The one who really knows it all

As you reach a good enough level of professionalism, it’s time to work face to face with junior developers. It could be the pain in the neck for the first time. This article explains how to avoid this pain and get benefits from this collaboration.

The aspects described below are applicable to any area of software development, but also, as the author is a front-end developer, the article contains some examples related to the front-end development.

WHY you should care about juniors

If you still haven’t worked shoulder to shoulder with juniors before, you can think that it’s not at all a necessary skill for you. You may expect that you will always avoid this fate and stay alone or with a team of qualified professionals like you, who don’t need to be instructed. “Why should I waste my time teaching others the easiest things?”, you can say.

Mentoring junior developers is really not that type of work that we are used to do. Moreover, it’s a difficult work. First of all, no one wants to spend their time on it. We love solving technical problems and creating new features. We love writing code and seeing how it works. This is the main reason why we have chosen our profession, not because we wanted to teach someone.

Yet try to remember your first steps on this path. Once you were a junior too and it’s likely that you had someone who was mentoring you. Now you are the person who you have dreamed to be. So, be cool and help others to achieve the same goal!

By doing this, you influence not only the juniors’ future, but also the future of the whole software development. The industry holds onto good specialists, and when you are gone, who will make it stable? Right, those guys who are juniors now.

Another point to consider here is that being a mentor could make your own skills better. Sometimes to teach someone something is the best way to understand it. Try teaching and you will see how it could make things that were vague to you clear. Even if you think that you already know absolutely everything about a technology or an approach, telling about it to others could show you that you might not be right.

In the end, you just cannot avoid juniors forever. It seems to be a difficult issue because companies often recruit them. There are some reasons for it:

  1. It’s cheaper. A company doesn’t always want to spend much money on good experienced specialists.
  2. It’s easier. On the one hand, a good experienced specialist doesn’t always want to leave their current job where they like everything. On the other hand, there are so many brainy junior developers around to hire.

Companies will force you to deal with junior developers, to teach them and to make them efficient. The reason being that it gives advantages. It helps a business to save much money, but is it not the main goal of every business?

So, trust me, you will work with juniors someday if you still haven’t. And you better be prepared for it.

HOW you should care about juniors

While you are working with a junior developer, the main things you usually want to happen are:

  1. A junior does something useful for a project.
  2. A junior takes up as less of your time as possible.
  3. Skills of a junior are becoming better day to day.

These three points are important not only to you, but to a junior too. Juniors want to be valuable and independent and they don’t want to waste your time. They definitely want to improve their skills. Well, not each of them, but if you have to deal with the one who doesn’t want to — it’s a very bad sign.

Now let’s see how we can reach these things.

First of all, it’s better if a junior is beneficial for a company from the first days. Of course, some companies can invite juniors that cannot start working right away. These companies teach juniors to make their skills applicable to work in the nearest future (and they do it for free or even pay for it to juniors). However, it’s usually an option only for big companies, not for startups whose resources, i.e. money and time of skilled developers, are strongly limited.

So, if you are to hire a junior, you need to find something that they already know well. It will make them beneficial and you will at least be sure that they have an ability to learn something. They need to know enough about your technology stack to be able to do some tasks without depending on other developers. These tasks are usually not the difficult ones, but they are still needed to be done.

In the case of a front-end developer, the knowledge of HTML & CSS could be enough for a junior to start working. This knowledge could be applied to tasks about markup and design, that are easily isolating from more difficult JavaScript ones. Furthermore, these tasks are very important for User Interface and there are tons of them in every single project.

What about saving your time? If a junior does a part of a job by themself, it’s obvious that you will not spend much time on them. Of course, you will dedicate some hours to guiding them even in this situation because even a capable junior will have problems due to their lack of experience. Yet don’t worry about that. Since you entrust the work that you know how to do perfectly well to a junior, you will avoid the routine. It therefore means that you will free a lot of your time and you will be able to concentrate on more important things.

Everything sounds perfect if there is no third point in our wish list. Your project doesn’t only consist of tasks which are easy to complete and you need juniors to start doing these difficult tasks in the future as well. To reach that, increase the complexity of a task every time you see that a junior completes the previous one without any problems and comments from your side. Show the solution to a similar task that was done by you before. Try to explain how to do it. Then see how a junior solves it. If there are some problems, help them: guide them, write a part of a code with them and answer their questions. You can even write the entire code yourself while commenting through the whole process. Furthermore, complete the task together. Give them a similar one. Repeat this scheme until a junior does it perfectly well. Move forward and increase the complexity again. Skills of a junior will improve with repetition and iteration. Then one day a junior will stop being a junior and become fully autonomous.

For instance, we can entrust to create components in the following order for a front-end junior developer:

  • small stateless components (mostly HTML & CSS: e.g. layouts, headers and footers, buttons, inputs, tooltips, cards with information, etc.),
  • components with a simple JS-logic (e.g. dropdowns, menus, sliders and other elements of UI that change their state when a user is interacting with them),
  • components with a strong JS-logic (e.g. forms with validation, error handling, grabbing values, popups, autocompletes, datepickers, etc.),
  • composite components consisting of other components (e.g. entire pages and everything that includes several components which interact with one another).

Somewhere along the way you can add assignments related to some third-party libraries, API-integration, project-building tools, etc. In the end we will have a fairly strong developer, won’t we?

During this process don’t forget to point out every single mistake of a junior. It’s important to let them know what goes wrong because they have absolutely no idea and the only one who can lead them in the right direction is you. If you don’t, they will continue making mistakes and they won’t mind having these mistakes. Deal with this situation in the very beginning! Do not be afraid to make yourself look too cruel. A junior will be really thankful for it because it’s not cruelty — it’s help.

In addition, if a junior does something really well, don’t forget to praise them for it before increasing the complexity of the next assignment. It’s also important to them because they will know that everything is alright and that they have successfully taken one more step on their way to professionalism. Give them some motivation. It works for each of us.

Conclusion

The ability to mentor junior developers is a very useful skill to have because juniors are often hired by companies and responsibility for teaching them falls right on the shoulders of more skilled colleagues. This process could also make you own knowledge better because explaining something could reveal many hidden obstacles you haven’t noticed before. In the end, you, mentoring developers, even make the world better because you help people and raise a new generation of developers!

As you are recruiting juniors, make sure that they already have some basic skills that could be applied for your project. In the beginning give them simple tasks that could be a routine for you but a challenge for them. Then step by step increase the complexity of tasks and review the results. Make a junior pay attention to their mistakes and don’t forget to praise them in case of a successfully completed task.

react to story with heart
react to story with light
react to story with boat
react to story with money
L O A D I N G
. . . comments & more!