📜 ⬆️ ⬇️

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

There is a wide variation in the skill levels of developers. And what is called "seniority" often does not say anything about the real possibilities of the programmer. What makes some developers objectively better than others? What makes them stand out 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 efficient and productive senior. In fact, it does not even mean that he can be called that at all.

Of course, there are also such unfortunates, because of which for successful lords, who are usually not young, a bad reputation has been established. But young seniors are no easier either. However, there are certain traits and knowledge common to different programmer seniors.


')
It is impossible to say that any secrets of professional skill are known to real seniors. Rather, they have a special structure of knowledge, a special way of thinking. Both of them are amenable to development.

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

Programming paradigms


The principles of SOLID, object-oriented and functional programming are the three programming paradigms, the three pure code writing methodologies that make up a large part of the conceptual approaches behind the creation of programs.

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

Anyone can write the code - just like anyone can write a message in the messenger or a short review of the book on Amazon. But such texts can not be put on the same level with the novels of Stephen King. Programming paradigms act as the guiding force behind the code written by seniors. This makes paradigms similar to plot structures followed by authors of artistic works. All languages ​​are permeated with formulas. Developers-seniors understand them at a deep level, to which the junas and middlelums have yet to reach.

Ability to create


When we first come to the world of for loops and if else , we ask questions and try to find answers to them in the form of code that can be copied and pasted from somewhere into your project. The level of understanding of this code is what characterizes the qualifications of juniors who have just begun work, and beginner midls.

Seniors, however, go on copying. They can create something new without the special help of 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 foresee, abnormal situations. They understand the problems of their code and know how to deal with them.

If they do not know something, they fill in the gaps in knowledge, seriously understanding obscure questions, not limited to their superficial study. They deeply understand all the tools they use. The world of the code does not look in the eyes of seniors as it does in the eyes of the junas or the middle ones.

Objective criticism


Everyone prefers what they know. Juniors and midli demonstrate a strong tendency to focus on their own experience, and not on what belongs to the code they analyze. If they make a certain offer, or if they value something, the basis of all this is their personal preferences. This is the style of writing code, methods of naming entities, methods of thinking.

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

Seniors often become productive controllers of the quality of the code, pointing to the mess that their colleagues are in the programs and noting the weak points of the 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 some kind of programming paradigm. The focus is not on the tools, but on the result.

The difference between a good program and a working program


Developers create code whose main task is to run. Some of them stop at 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 qualitatively written. The best developers are those professionals who edit and rewrite our code in the process. They may agree with the use of some unsuccessful construction, but as soon as they have the opportunity to correct it, they will do it. Such developers understand the difference between a good and a 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 underlying 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 of additional features in them, which project customers remember far from the very beginning of their 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 quality programs. They can create both. This gives real seniors the opportunity to find creative solutions to problems in a variety of situations.

Ability to learn


A mediocre teacher sets out. A good teacher explains. Outstanding teacher shows. Great teacher is inspiring.
William Arthur Ward

These senior developers have a passion for technology that inspires their less experienced comrades, helping beginners to become top-class professionals.

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

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

Results


A real developer developer is a multifaceted creature, which sometimes, when it comes to areas outside its main activity, can look like a june or a middle. But the seigneur 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 kind of “average” programmer. Often seniors are people who are able to cover at a glance the overall picture of what is happening. They are able to look at the code without prejudice and superstition.

This gentleman will lead his fellow work habits to creating clean code. At the same time, it will not constitute a destructive force that is trying to squeeze everything that it encounters into the Procrustean bed of its own experience. This person calmly perceives 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 developer may be a person of any age, he can come from any branch of information technology, his “practical experience” can be calculated for 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" seniors.

Source: https://habr.com/ru/post/460016/


All Articles