June, middle, senior on the example of cyclists

June, middle, senior on the example of cyclists

How to explain the difference between developer grades (junior/middle/senior) in simple words? On the weekend, I was riding a bicycle with my children and realized that one of them is a young cyclist, and the other is a kind and middle-aged one. This led me to another classification of these grades through the analogy of teaching children to ride bicycles.

The article has more of an entertainment and review character than something useful and practical. But many subscribers of my channel liked this comparison before.

Junior

Child cyclist with extra wheels

If we talk about the skills of driving a bicycle, then a young cyclist has the following distinctive features:

  • cannot drive without additional rear wheels.

  • passes curbs, stairs, dirt only with the help of dad.

  • if you fell, you can’t get up without tears and/or dad.

  • unattended, it will immediately go under the wheels of a passing truck.

Jun’s distinguishing feature is that he doesn’t know any other way. There is no idea that the world could be arranged any other way. For him, the presence of extra wheels behind him is the need to move forward, and having his dad by his side is the only way to cope with difficulties.

My youngest son is still a junior, but he is already trying without rear wheels

My job as a parent is to get the bike out of the garage, bring it to a level surface, direct it to a safe place, seat the child and send it off to enjoy the ride in a direct direction under constant supervision. Over time, it will be possible to lower it forward by a couple of meters, let it accelerate and make decisions about braking.

In the first steps of a child’s education, there are much more difficulties and tensions than pleasure (except for the inner moral joy of spending time with your son). Sometimes you just want to get on your bike and ride around the city to your heart’s content. But for the growth of jun, you need to do everything – choose a bike, periodically maintain it, change it and all this with your own hands without any (except moral) participation of the growing cyclist. You also need to find skating rinks and their safety on your own and bring the bike there with its owner.

At this stage, they are delayed for a really long time only if the mentor (dad) does not offer to remove the rear wheels or the biker himself does not have the idea that all his peers are already riding on two wheels, and he is still on 4.

Beginner programmer

All this is also relevant for junior developers:

  • The development necessarily begins from completely isolated environments without the possibility to influence the product in any way=wheel insurance);

  • Any “new” thing is initially perceived as an insurmountable difficulty and cannot be managed without a mentor or long Googling;

  • If something goes wrong (Unhandled exception raises questions even at the stage of understanding the word exception), then help from above is immediately needed (= “Dad, I fell, help me”);

  • If you skip June’s code without studying its PR, then 100% will be a bug and sometimes fatal (= will go under the wheels of the truck).

Instead of safety wheels, juniors have an isolated environment where they cannot break anything, and instead of dad, there is a mentor who will not let them miss a prod and show them how to do tasks better.

My task, as a mentor, is to onboard Jun into the process, set up his environment, give him a simple task, show where to solve this task, and even suggest what code to write. Then it will be possible to gradually expand his area of ​​responsibility and space for independent reasoning.

Jun is more work than good for me and the company (unless I dream that he will be useful later). Sometimes the difficulty of studying makes you want to give up, score and do your senior tasks (drive around the city alone).

The path of any developer begins with June. This is the basic level. In the gallery of juniors, inexperienced managers like to throw tasks. And to heap tasks on Jun, thinking that he will take them out, Google them and figure it out is stupidity, similar to the idea of ​​putting a 3-year-old child on a bicycle and sending him to the store on a bicycle for shopping. There will be no shopping, no bicycle, no child.

Middle

A confident cyclist

After enough time on the jun and, importantly, with regular training, the cyclist moves from the jun to the middle, namely:

  • drives without rear additional wheels and can roll well in the yard near the house;

  • when he falls, he gets up and goes on silently;

  • if you send him to another city, he will definitely get lost;

  • if you ask him to look after June (younger brother), then, most likely, both will go under the truck;

  • if you give him the task of “getting to the dacha” and send him, then, most likely, he will not get there. But he will confidently declare that he will arrive guaranteed.

When transitioning to the status of a slow cyclist, he has a fairly clear share of confidence in his abilities, which easily turns into self-confidence. The reason for this is simple – when you don’t know where the edge of a certain skil is, it seems that you already know 100% of the skil. It’s logical – if I don’t know how to ride a bike even better, then it’s impossible to ride better!

You can confidently and interestingly ride around the city with the bike. You can send him to school across the street on your own and he will probably make it there. Maybe he will fall somewhere, but he will quickly get up, come to his senses and go on. He already knows some basic traffic rules and understands that you have to cross the road looking from left to right (but forgets it every third time).

A middle cyclist can ride a long distance accompanied by a senior cyclist (dad/mom and others). He will be able to take part in assembling the bike, some maintenance (“give the key to 8”) and most importantly, he will be able to ride around the yard on his own, learn to drive a bike further and immerse himself in this wonderful cycling world.

But, on the other hand, the confidence that he will get anywhere by bike can play a bad joke. The desire to ride a bicycle can cross the limits of adequacy and a middle-class cyclist can introduce sanctions (be offended and cry) for not being allowed to ride a bicycle in the rain to the village. The argument will be iron – “I’ve already gone there with you” and theses “now the weather is completely different and I won’t be able to make it with you” break down the confidence of the middleman that he will definitely make it.

On the left is me (junior cyclist) and my brother (middle cyclist)

It is possible to understand that a cyclist is starting the transition to the middle class because the additional wheels no longer bring any benefit, but only interfere with normal riding, putting the bike on its side and passing through narrow places.

Average developer

If we talk about developers, middles can easily understand an existing project at the code level. They will still need help setting up the environment to work, but the middle already has an understanding of how serious projects work and why it is sometimes necessary to spend time refactoring and tidying up the codebase. If you need to design an isolated module inside the application, then the middle can fully realize its vision of the solution to the problem and its PR will receive only a dozen comments, after processing which it will be accepted.

On the other hand, confidence in one’s knowledge is very close to self-confidence. The desire to refactor can become a fixed idea and it will in every way involve the business and management in the fact that it is necessary to rewrite part of the application or, ideally, “write it from scratch”. And it should be done because he learned how to do it really cool and correctly, that it was possible to “support the project for decades and any new developer will be onboarded in this project in 10 seconds!”

Business problems are foreign to the middle, because he got to know the world of development and he doesn’t need to rely on money and where it comes from. In my memory, there were a couple of comments from me about the fact that our approach is not modern and cool enough and “they haven’t written a backend in PHP for a long time, go, microfrontends, microservices and other charms are everywhere”. I do not keep such people in me – if he wanted to go to a company where there will be really cool processes and technologies, then he should really go there, because my galley is not about that at all, but about making money.

Middle is basically my company and it’s the coolest employees in the company. The difficulties described above do not occur to everyone, and not everyone who started it remains faithful to this idea. The advantages of midle before June are obvious — they can be assigned tasks more evenly and you can control the execution of a business task, rather than the adequacy of the approach. New knowledge is pumped into Middle quite easily, and at some point Middle himself begins to introduce some new useful things into the team, which he spied somewhere on the Internet. And there is a non-zero probability that he will turn into a senior.

Senior level

At the moment, I haven’t had a lot of seniors under my command and only one of my children has grown to middle, and I myself am classified as Middle+++ both as a developer and as a cyclist. Therefore, I cannot know for sure all the details and distinguishing features of this grade from the outside.

But, in short, the Senior developer will write the project from scratch with or without a team, cover it with tests and successfully implement it. And a cyclist will buy a bicycle, collect it, wind it up and ride it for any distance with or without transfers. The transition from middle to senior is no longer so obvious and it is difficult to clearly track the moment when it happens.

If you ask any senior programmer or senior cyclist, he is unlikely to say exactly the day when he became this status. All this happens after years of experience, attempts, trials and errors, and at some point, without realizing it, you do everything yourself, close difficult tasks and travel long distances.

Without passing through the previous stages, it is impossible to become a Senior in any business. And it is impossible to go through both of these stages in any business in a week, month, year, and sometimes even several years. All this is a painstaking long way through acquiring knowledge, processing it, applying it in work, fixing it and repeating it in a circle thousands of times.

But the length of the journey to seniority is not a sufficient condition for achieving this result. If I’ve been riding with extra wheels for 10 years, that doesn’t automatically make me a professional cyclist – and in programming, if I’ve been painting buttons for 10 years, even in Yandex, that doesn’t make me a Senior developer. Therefore, it is always worth monitoring yourself – “is the current work leading me to grow as a specialist or am I still riding with extra wheels at the current level?”

Thank you for your attention and I will be glad if you subscribe to my Telegram channel, where I share similar thoughts, but in a more concise format.

Related posts