Signs of true senior programmers and methods for tracking them in the wild

Original author: Aphinya Dechalert
  • Transfer
There is a wide variation in skill levels of developers. And what is called "seigniority" often does not say anything about the real possibilities of a programmer. What makes some developers objectively better than others? What sets them apart from the gray crowd?
If a programmer has five, ten or even fifteen years of “practical experience”, this does not necessarily guarantee that he is an effective and productive senior. In fact, this does not even mean that it can even be called that.

Of course, there are also such unfortunate people, because of which a bad reputation has been established for successful seniors, who are usually not young. But the young seigneurs are no easier either. However, there are certain traits and knowledge common to various senior programmers.



This is not to say that the real lords know some secrets of professional skill. Rather, they are distinguished by a special structure of knowledge, special thinking. Both are amenable to development.

The author of the material, the translation of which we publish today, says that he wants to talk about some of the signs that help to distinguish a real programmer-senor from a programmer with "seigniority".

Programming paradigms


SOLID principles, object-oriented and functional programming - these are three programming paradigms, three clean code writing methodologies, which make up a significant part of the conceptual approaches behind the creation of programs.

Many junior programmers miss one important thing in their work, which is that programming is a language. This means that programming is more than a set of grammar rules. This is a means of communication, a phenomenon that can be structured in many ways. Programming paradigms help to form a certain position regarding how the code is perceived and how it conveys information.

Anyone can write code - just like anyone can write a message in a messenger or a short review of a book on Amazon. But such texts cannot be put on a par with Stephen King’s novels. Programming paradigms act as the guiding force behind the code that seniors write. This makes the paradigms similar to the plot structures that authors of fiction follow. All languages ​​are imbued with formulas. Senior developers understand them at a deep level, to which the Joons and the MIDLs have yet to reach.

Ability to create


When we first come to the world of loops forand constructions if else, we ask questions and try to find answers to them in the form of code that can be copied and pasted into our project from somewhere. The level of understanding of this code is what characterizes the qualifications of juniors who are just getting started and beginner middle.

Seniors, however, go beyond copying. They can create something new without the special help of the almighty Google. They know what they are doing, they understand how their decisions affect the results of their work. They can see, or at least anticipate abnormal situations. They understand the problems of their code and know how to deal with them.

If they don’t know something, they fill up the knowledge gaps, seriously understanding unclear questions, not limited to their superficial study. They deeply understand all the tools they use. The world of code does not look in the eyes of the seniors in the same way as in the eyes of the June or Middle.

Objective criticism


Everyone prefers what they know. Juniors and middles show a strong tendency to focus on their own experience, rather than on what relates to the code they analyze. If they make a proposal, or if they value something - the basis of all this is their personal preference. This is a style of writing code, ways of naming entities, methods of thinking.

There is nothing wrong. All this is part of the process of professional growth. In order to achieve true objectivity of judgments, a programmer needs to go to many situations and see for himself how something that is unacceptable in one case, in another can be the best solution to a problem. This develops a neutral outlook on things. There is no one right way to write code. There are only ways that are effective in a certain situation and in a certain scenario. Senior programmers understand this. They are ready to accept that their code may not be some kind of “best” code, and that it can be improved.

Seniors often become productive code quality controllers, pointing out the clutter that their colleagues make in programs and noting the weaknesses in application architecture. They are able to see the overall picture of the project, to assess the possibility of completely unexpected problems. However, they are not tied to any style of writing code or to any programming paradigm. The focus of their attention is not the tools, but the result.

The difference between a good program and a working program


Developers create code whose main task is to start. Some of them dwell on this, and believe that working code is all they need. Others go a little further and strive to ensure that the code is not only working, but also written in high quality. The best developers are those professionals who edit and rewrite our code in the process. They may agree to use some unsuccessful design, but as soon as they have the opportunity to fix it, they will do it. Such developers understand the difference between a good and working program.

Most managers are only interested in the performance of the program. But good senior developers see the situation deeper. They understand the hidden cost of technical debt and are able to recognize a code that indicates the presence of deep problems in the system. They know how to combine the business need for working programs with code quality. This allows them to find a balance between the delivery of projects on time and the inclusion in them of additional features that project customers remember far from the very beginning of work.

The breadth of their knowledge, understanding of frameworks and programming languages, make them experts in the matter of finding the difference between working programs and high-quality programs. They can create both. This gives true seniors the opportunity to find creative solutions to problems in a variety of situations.

Ability to learn


The mediocre teacher poses. A good teacher explains. An outstanding teacher shows. Great teacher is inspiring.
William Arthur Ward


Real senior developers have a passion for technology that inspires their less experienced teammates, helping beginners become top-notch professionals.

Programming, in itself, is a set of certain ideas. Seniors have the ability to express these ideas concisely and clearly. Seniors' ability to transfer code between different interfaces and environments demonstrates a true understanding of their chosen programming language.

In order to teach someone something, you need a certain level of knowledge of the subject. What is called “work experience” may appear in a programmer’s resume as a list of his completed projects, or as the time he worked in different companies. But the ability to teach others is a skill that is only available to someone who truly owns their craft.

Summary


A true senior developer is a multifaceted creature, which sometimes, when it comes to areas outside his core business, may look like a june or a middle. But the lord has a powerful base in the field of programming philosophy.

However, the above features of seniors - this is what is present in their personalities and in their professional knowledge. This allows them to learn new technologies faster than some "average" programmer. Often seniors are people who are able to capture at a glance the general picture of what is happening. They are able to look at the code without prejudice and superstition.

The real lord will lead his workmates to the habits of creating clean code. At the same time, it will not be a destructive force that tries to squeeze everything that it encounters into the Procrustean bed of its own experience. This person calmly accepts the mistakes of his colleagues, and his own, too. He seeks to learn and learn from mistakes, and not to humiliate less experienced colleagues.

A senior developer can be a person of any age, he can come from any branch of information technology, his “practical experience” can be calculated in any number of years. The main feature of such people is that they really know how to solve problems, and that they are able to think in the long run.

Dear readers! If you are engaged in the selection of personnel in the field of information technology - please tell us about how you "track down" the seniors.


Also popular now: