The programmers had neither a gita, nor a jetbrains, nor even a laptop ++. The author wrote the first program in the crappy BASIC editor. We thought that the coolness of a programmer depended on how fast he typed. We thought that the computer's coolness can be measured by how many times Sphon Filter can be copied to it.
Time passed, fees grew. The industry has generated development approaches that allow you to understand how much time / effort you need to spend on a particular task. The industry has generated a new market and new salaries. There was a need to understand who exactly to pay them.
Interview is a game. Sometimes the game is interesting and productive, sometimes it turns into a farce. Sometimes assess the past, sometimes - the present. There is some general understanding of what needs to be asked, and there is absolutely no rationale for why it is necessary to ask just that. “Because we will be like Google”, “because it’s not clear what to do at all”, “because you need to ask something”.
')
In the article, we present an approach to assessing the level of professional development. Let's show on the fingers how burning eyes and inept hands turn into a wool sweater and all these “you explain to me in Russian what you are doing”. We will show how to sit at the piano and poke keys on the “Dog Waltz” turns into “Flight of the Valkyrie” when the piano disappears and only the music remains.
It will hurt. Because it will be true.
Why what is now is something
In computer science there are common, necessary things. Mathematical-informatic mindset, understanding of algorithms, knowledge of platforms and programming languages. In general, assessing the professional level of the candidate, there are several main areas: what he did, what he knows, whether he knows exactly what we need.
In order not to die of boredom, I will be brief. Sometimes it is important that "you are not my first." Sometimes it is important that "he saw everything, he knew everything." It is almost always important that "you can like us."
In general, this is all great, but it is from idleness. Experience - in the summary; general knowledge cannot be verified (they are almost unaware of everything - the candidate will simply not know what to tell, he will begin to repeat the summary), and one can theoretically prepare for a stack of technologies at a certain “average level” and cannot be evaluated again. Or do you just want to make sure he doesn't lie?
If with “what did” everything is clear, “like with us” you can quickly find out, then all l'amour de trua is in the evaluation of “all” knowledge. Here, every man for himself and who in that much. The choice of the Inquisition tools with low damage, such as “Google tasks”, weighty medium ones like “tell D principle from SOLID”, and BFG “exactly how volatile works”, “how jvm is added”, “what will happen if you add in TreeSet null. " The third category includes any little-known features of systems that I recently read about myself and have not yet managed to forget.
Why is it used? Because when answering a question, the candidate can open up, show the real level of their knowledge. But it may not open up. Because it can jam the memory, some feature will not be remembered, the wrong word will be called, vitamin deficiency and sleepy, broke up with the girl and suffers a loss, worries because they like the company ... But then the war and everyone for himself - “why do we in the company losers? ".
Is this all important? Important. Is it practical? In general, it works. Effectively? Rather illusory.
To avoid illusions, we need matter, the laws of its manifestation and the correct ruler to estimate the height of the pissing boy's pillar.
Reflections on matter and its laws
Nothing vulgar. Matter is not a substance. Matter is what the World consists of. At the moment, Matter is open to matter, energy, information, time and space; and transitions between them. In Chinese tradition, this is U-Sin - 5 primary elements and transitions.
For us, the practical meaning is that we can touch this very matter. Until we selected the element, we did not learn to register it - it is not clear whether it is at all. A good example is radio waves. No antennas - no waves. A bad example is space. Try unregistering it.
Generally. The material element in our case is the ability to perform operations [of a certain level]. I'll explain.
Soviet (psycho) physiologist Nikolai Alexandrovich Bernstein introduced the concept of levels of movement organization into science. Without going into technical details, everything happens like this. First, we put our fingers on the keys of the piano, then we play scales and everyones “let them run awkwardly”, and after three years there are no melodies. When the conservatory is over, and even managed to forget where your second real concert took place - if lucky and there was talent - the piano finally disappears, only the music remains.
At each stage, a person changes the level of organization of activities. First - the position of the hand, motor skills. Then the inclusion of two hands, simultaneous reading of notes from a sheet. Then so that the melody is recognizable. Then learn not to forget the flat ...
In programming, instead of “changing the level of organization”, it is customary to say “abstraction”. But such a term does not reflect the essence, this time, and there is no obvious line - two. It seems that the term is used incorrectly, but still need to think.
The cool feature is that you can always go down from the upper levels, and it is very difficult to understand from the lower levels. We will use this property [of varying complexity when performing operations of a certain level] for ranking.
A very important point. “Level change” is a change in the law of functioning. Make sure you understand this. Pulling the pen with your fingers and writing the phrase with this pen is a different activity, and it is subject to different laws.
What kind of surgery?
In psychology, there is a "man who changed everything" - this is Jean Piaget. Neither Sigmund Freud nor anyone else had such an influence on psychology. His main achievement was that he showed the development of children in a level perspective. He showed that the child passes in strict sequence levels from the sensorimotor to the stage of formal operations.
Jean Piaget measured the cognitive - mental - development through the implementation of operations of a certain level. This is genius. Brilliant because it turned out to be working. Imagine? Guessing that there are precisely levels of development of thinking, and not just “let's talk, and somehow understand everything”. Brilliant.
Stages of Piaget end at 12 years old. His theory continued to dissect, expose and develop other researchers. LM Commons and F. Richards showed that there are twice as many levels, and they can change even after 30-40 years. About it will be lower, now still an example about levels and operations.
Mathematics is also a level system. There is arithmetic. There are numbers and actions over them. Addition, subtraction there ... At school, we do this first in apples (to use the sensorimotor level), and then in real numbers and even letters as the next level of abstraction.
And then the functions and dependence of one “letter” on another appeared. Realize how cool it is. Enjoy changing the level of operations. From simple 1 + 1 = 2 we go to a + b = c, and then f (x) = k * x + b. Functions are indifferent to the "letters" themselves. Whatever gets into it (as in the meat grinder - meat, tomatoes, berries), the function will perform the same actions (will do the "cutting"). Moreover, sometimes the function will “turn off”, since in some places it will not exist (try to grind meat with nails in a meat grinder - at some point this disgrace will eat your nerves, but it won't move a millimeter of nail).
And then comes matan-no-jitsu. And we are exploring "from the next level," how functions behave. We do not need to calculate their values, we need to understand how they behave ... It's like a drunk to go home, referring to the signs. No matter how you lift your legs, it is important that the road converges to your house.
Programming is a level system. And its material base consists of operations.
Levels of operations
Commons and Richards distinguish such operations (complexity increases from top to bottom):
- sensorimotor operations,
- specific,
- formal,
- abstract,
- system,
- metasystem,
- paradigmatic,
- cross paradigmatic
More in relation to us.
Blablabla: On the example of Java type OOP, the list is quite general, the two main lines of verification are “architectural” and “basic”. “Architectural” is like an “external side”, how to connect entities, integrate, scale. "Basic" - "internal", as arranged, which is faster, what are the features.Sensory level means touch
Architecturally, this is the ability to download and install an IDE, a compiler, learn how to run it all.
In the basic - there is no mathematical (“informatic”) thinking, speculative, theoretical understanding of the algorithm, the complexity of the calculations. I think that “Google’s tasks” relate to this level.
Specific operations level
Architecture. Mastering the primitives of the language, writing elementary hellowworlds, mastering the concept of a function, the ability to create a class as such - in general, monosyllabic operations that lead to visible results.
In the “base” - data structures. Immersion level - their application, difference from each other, computational complexity, implementation of simple algorithms, sorting type.
This is not a Junior level - it will arise later. This is a trainee level. Now you can take "in the gun", but the gun itself is still early to give.
Formal operationsArchitecture. Interaction appears between the elements. The basis of formal thinking is to learn to see primitive connections, dependencies, functions. At this stage, master the interfaces, communication between classes based on them. Internal classes, abstract - in general, more complex features of the language.
Base. Multithreading, errors, files, network - the level of external use, do not immediately go into the wilds.
The intern is moving to write the first full-fledged application, it already turns out to work with the connections between the modules, but it is not yet clear how to do it correctly.
If mastered - Junior.
Abstract operationsArchitecture. The formation of abstract and independent modules. SOLID principles. Design patterns. It is still not clear what is better, but it is already clear how to do it.
Base. This is the stage to start the analysis. “Why is it like this?”, “What will be faster?”, “How exactly does it work?”. The norms of work with language and platform are mastered.
Hi, Middle.
System levelArchitecture. System - elements united by a common goal. The goal is to provide the processed data to the user, in adequate time, with a minimum load of resources. Some corridor of actions is created, “how everything works”. MVC, MVP, MVVM, Clean and other words are from here. But more is important.
At a sustainable system level, a person can modify the corridor. Because it becomes easy. One feels that the available tools are not enough, the fingers are buzzing due to the fact that the melody in the head sounds much better.
What is born on this level, these bright flashes of programmer light, will be called “system alpha operations”, or simply “alpha”. In Java it was, for example, adding functionality, rxjava. In the boiler, for example, extension functions.
In the database - exploring how the language itself is organized, the platform. On jvm they start to climb into baytkod, they watch how everything is converted, they reconfigure the virtual machine. In short, here begins relish and pleasure. In fact, only here you begin to feel that you are a creator.
At this stage, the piano begins to interfere. Came to a senior.
MetasystemThese are guys of another kind. Usually, the sense of self-importance is completely lacking and showing off like “I know that strings should be started to be compared with hashes only if these comparisons are made more often than two times”. It is easy to recognize - he knows how the stack of technologies is arranged for at least one level “down” (sometimes “up”), usually - at several levels.
The grand piano interferes as parents in love with adolescents, fingers overstrain to bang on a musical zebra, face turns blue, glasses turn into telescopes. This is how Bach's music and the code of dudes who make OpenBsd are born.
Further along the levels of “some turtles”. Differences are erased. They are all indiscriminately called "old school". They are rarely hired by ad. They rarely search for ads.
In general, it is an endangered species. As Landau is considered to be the last physicist who knew all the physics, these guys can become the last generation, who has gone from a soldering iron and a struggle for memory to “Ejile and blockchain.”
Why all this?
We can refine and concretize the entire line. In order not to use the mythical Junior, Senior, Mudakior, which differ depending on the place of work, region and country. This will add transparency, make it easier to find a job and hire.
Want to hire "as before" - no problem, but now you can
agree . To make it clear what to prepare for, how to evaluate yourself and others, and why it may fail. Just be clearer, without any Mexican immigrants.
Carthage illusions in assessing the level of professional development must be destroyed.
Important clarifications
“Level” is “level”. Its very hard to lose. But there are still “states”. He moved to another country, a close person died, insomnia torments for a week - these are all good reasons, because of which the “state” may temporarily reduce the “level”. "State" is when being at a certain level of development, a person begins to concentrate more on another, usually lower. When a person has grief - his state drops to one or two levels, sometimes down to the very bottom, when he opens a studio and sticks into the monitor, not understanding what is written there.
It is a man, it happens. Do not remain indifferent to this.
This is a dialogue; the author does not act as the “most intelligent” and does not tell others how to live. It seems to him that co-creation is more productive. It seems that people invented network interaction in order to be able to evaluate, discuss and supplement Ideas, and not their authors or authorship. It seems that we are on the verge of global change, both in the industry and in our life. It remains to understand what place we occupy there.