In this article, we will try to formulate the main differences using the example of the testing segment. And we will give some tips on what to learn in order to quickly become a senior.
For starters, it’s worth noting that you can’t become a senior just after spending N years in a certain position. The work experience certainly brings middle to the next level. But experience is different. Someone can poke their nose in a state office with an outdated stack for ten years, and someone will work on the front line for a couple of years, raising servers under high loads and saving the world in other ways. Therefore, time is not a sufficient factor.
Undoubtedly, a person with ten years of experience in most cases will have a greater variety of all kinds of life situations behind him. But the one who has spent energy on self-development will have more practice and theory in his head, and not on cats on the Internet. So let’s digress from temporal characteristics and look at the problem from the point of view of understanding the general ideas and the number of questions that a person asks others.
June. Ask a question in any incomprehensible situation
So, a specialist begins his development in any field from the junior level.
Jun can code at best, depending on the knowledge and experience behind him. For normal operation, the task for it must be decomposed as much as possible and formulated as transparently as possible. In fact, June is a person who presses keys in order, for example, to maintain existing autotests or write new ones by using Ctrl + C / Ctrl + V and tweaking something.
June asks a lot of questions – not only about which solution is best to choose, but also how to bring it to life in detail. It’s good if you have someone to ask them – then June can eventually become a good middle.
Middle. Self-reliance is higher, but issues are more infrastructural
Middle has significantly fewer questions for the rest of the team. He understands the details of the implementation of many things without additional explanations, so the degree of mandatory decomposition of the problem at this level is significantly less.
If we talk about testing, Middle is able to write new autotests from scratch, without Ctrl + C and Ctrl + V. And he solves such problems independently. But if a question arises about the introduction of any new processes or tools, he discusses them with the tech lead, because he simply does not have a strategic vision that allows him to make such decisions.
Due to the lack of an “infrastructural” view of the project, the middle cannot exist alone. If there is some high-level difficulty, he is more likely to choose the first solution to the problem that comes across without detailed study, since only he is familiar with it.
Senior. Do not expect questions, just agree on one of the ready-made answers
A senior knows how not only to solve problems and analyze, but also to build processes.
Due to his experience – mainly technological base – the senior sees the task much wider. He understands how his unit fits into the overall infrastructure of the project, what it depends on and what it affects.
The senior asks questions only about the condition of the problem, but not about its solution. No matter how the question is posed, the senior always sees more than one approach to implementation. So he can propose solutions himself, also explaining why it is worth choosing one and not the other. In fact, the techlead simply needs to agree on one of his proposals, having listened to the arguments that one library has such and such advantages and disadvantages, while the other has others.
In general, a good senior is aimed at solving the set business problem, and not a specific task from Jira (we wrote about the importance of this approach about a year ago on Habré: https://habr.com/ru/company/maxilect/blog/459294/) … And on the way to this solution, he himself finds the tools and implements them, if necessary. The tech lead, for his part, sees that the task is in good hands, and simply observes what is happening, adjusting the general course in accordance with the direction of the development of the technology stack in the company.
It makes no sense to list the formal skills of a senior, even in a single testing segment. On a project, a senior can control the quality of the code already at the level of the development process, and not on the tests themselves. Obviously, he understands how to code, knows what to do with abstractions and patterns. At the same time, the senior must have developed soft skills in order to correctly present their ideas.
Unlike a middle one, a senior is a self-sufficient unit; he can pull the testing of an entire project alone. If necessary, the senior can deploy the entire testing infrastructure from scratch, thinking about subsequent scaling and support. Of course, at the same time he will have to deal with both the tasks of the middle and the tasks of the junior, which is not very expedient. But when there is only one person in the project, there is simply no one to do it.
A good senior is a proactive and proactive person. He himself, striving for perfection, seeks what and where can be improved. Often seniors also supervise Juns (if they are in the team). And this also requires advanced soft skills.
At the same time, such a senior is the right hand of the tech lead. The tech lead himself is more focused on management, and it is more convenient to give technological issues to those who are immersed in the problem.
How to get to the senior?
You can debate for a long time about how long it takes to reach the level of understanding of the senior. Everyone has a different learning rate and different opportunities to learn in their current job. Therefore, in fact, only the desire for self-development and the ability to achieve the set goals in this direction play a role. In order to somehow evaluate this, many companies introduce the practice of discussing personal goals in the team. It is important that these goals are achievable and measurable and can be achieved by the “X” date.
Those who set realistic and useful goals, and then reach them on time, often find themselves on a better account than those who have simply worked * twenty years in the industry.
Unfortunately, in business, not only the qualities of a specific candidate often play a role, but also the expectations of the team on the project, especially if it is a team – from several departments or even companies. If you bring to the position of a senior a person who has only a couple of years of formal experience, even if he passed all the tests for the desire to develop, colleagues may react badly to this. Therefore, a senior with little formal experience is always a borderline situation. Someone prefers simply not to face it, immediately defining the lower boundary of experience for the corresponding positions.
Not so long ago, one of the Khabrovites parsing vacancies on HeadHunter in order to assess the stated requirements for the experience of specialists. It turned out that over time, the requirements for the experience of a specialist applying for the senior level only increase (https://habr.com/ru/post/442864/).
It happens that you want to develop, but the current work does not provide room for maneuvers in this direction. Then you need to get down to business yourself:
- Analyze the mistakes you make. Try to get to the bottom of the causes of bugs or inoperability of the next external library. This will ensure that you do not repeat the mistake in the future, but at the same time broaden your horizons.
- Look for tasks a little harder than you have solved so far. Do not get stuck at one level of difficulty – go to conferences for June or use only the simplest solutions on home projects.
- Take some time to learn new things regularly. Let it be open-source, reading books about fundamentals in the evenings, or technologies indirectly related to a working project. Even half an hour a day for long periods of time will give results. Do not ignore the topic of business and management – a senior should understand this too. If you do not have a specialized higher education (or do not have one), devote time to the base – approaches to testing, data structures, algorithms and basic mathematics at their core, computing architecture, etc.
- If you still don’t have technical English, take the time to use this skill too. This is useful both in work and in further education – most good books and articles are published in English, and they are translated into Russian with a delay.
- Develop emotional intelligence. We recently wrote about soft skills that help in IT, though not on Habré (https://vc.ru/hr/134808-soft-skilly-dlya-it-specialista-rasskazyvaem-na-palcah-i-zhiznennyh-primerah). We recommend reading at your leisure. At the same time, pump critical thinking – it is very useful not only in work, but also in everyday life.
By the way, the social circle helps a lot to move forward. Man is a social being. It will be easier for you to develop if you have someone to discuss your path with, to consult. This can be a senior colleague, a mentor from an educational institution, or just a circle of friends, where everyone moves in their own direction, but it moves, and does not hang in front of the TV all their free time. “How to look for friends” after 30 is a topic for a separate conversation, but conferences, hobbies and open-source projects and other social activities will help you.