Programmer VS Engineer
I have been watching the IT market for quite some time, but I never wrote anything. This is the first part of my first paste, and therefore I ask you not to hate much.
This is the way
In my articles, I want to share my experience in finding, training and integrating interns or June into a product team (not to be confused with freelance teams or something).
First of all, you need to understand that everything written below is purely my personal, subjective opinion. It is based on many years of observations and experience, in particular, the experience and observations of the last five years. Of course, I do not pretend to be exclusive and do not claim that it is the ultimate truth.
In the first part, we will consider the difference between two faces of the same entity. And this, in turn, will help you decide who you want to see in your team.
Consider two basic options:
In fact, the differences between the ordinary programmer of our time (you also see these shamelessly lying advertisements “become a Java developer in 3 months!”?) And the account manager Sveta are not so many. Of course, I’m not talking about all-all account managers or all programmers. I take the main “mass”, which, apparently, will be hitting this post (the first version was much tougher). Go.
The programmer is just a performer
For most, programming has now become just a job. Yes, by all means, by simple work, which, however, is not surprising; and announcements about “Java in 3 months” courses are direct proof of this.
A programmer may or may not write.
He will do your features, ask a minimum of questions, or on the contrary, a maximum (I will talk about such in the next part).
The programmer rarely thinks about trends, innovations. He writes as the tops recommend (often) or as the top virgin bloggers recommend. For example, I don’t understand why Facebook has such a disgusting, illogical and confusing organization of the front, and why it is fashionable. Well, at least drop my karma, but I don’t understand.
Everyone can become a programmer!
Unfortunately, these are the bitter realities of our time.
On the one hand, this is awesome! Progress does not stand still, humanity is developing. And on the other hand (girls from HR agencies will understand me), the market is oversaturated with incompetent or low-skilled personnel!
Yes, it is in principle oversaturated, the price tags began to level off. There are no crazy vacancies where companies are looking for June for $ 100k. At least I haven’t seen such people for a long time. Leads are increasingly worth up to ₽250k, well, etc.
Finding a programmer is easy
This is true, but do you need such a programmer? Now if you take the average frontend developer, he will certainly be interviewed, as WebDev-type channels publish questions from social networks of different companies and, of course, answers to them, and on YouTube they’re fumbling with guides for all sorts of things like closures, promises, callbacks and other “necessary” pieces.
At the output, we get a front-end, who in a month learned everything that is usually taught in courses up to six months, and what really is?
Actually, it’s an oil painting: a developer does not understand the basic principles of web development (DOM, CSS Flow Layout, HTML 5 API, es6 +, immutability, etc), he does it “as shown in that video player”. Or does it on the principle of “I wrote to you here on the dock … the same rules?”
Who needs a programmer?
Of course, such personnel also have a certain value.
Who can they be useful in the first place?
- Large companies where all processes are debugged and the stack is settled; as an example: mail.ru, yandex, rambler, Sberteh
- For teams that work “on a thread”, the stack is usually used by what the client will say, or a maximum of some boilers + steroids (rca + bootstrap / materialui + redux / mobx + fetch / axios)
- Gos. offices, where a programmer can easily grow or simply “work off” a bet, since usually in “gosh” everything flows quite slowly due to the high bureaucracy in the processes
As a rule, most of their lives are devoted to self-development and learning.
Engineers will sort your legacy into atoms, find bottlenecks, suggest solutions, if an engineer with extensive experience, then he is able to pick up a team if he has an HR agency or even alone.
He does not need TK, since he knows that this is a waste of time, and it is easier to carry out decomposition and staging of tasseks directly by getting acquainted with the requirements for entering the project.
First, the analysis of requirements, then design, at the end of development. Yes, that’s exactly in that order. By and large, the ratio of time spent is distributed in a similar way: 40/40/20, well, of course ±.
The use of complex practices is also a key feature, because if you ask an ordinary developer what he knows about * DD, with a greater likelihood of giving a clear answer, he will not be able, with the engineers otherwise. The code is often written through TDD , planning flow work on a product from a client through a set of practices from BDD , designing a product through DDD .
The quality of the code is often an order of magnitude higher than that of programmers. Until it became fashionable to use linters and typo-checkers, everyone didn’t care how to write and what to write for, now everything has become a little different, but the trends have not changed much: the cleanliness, readability, scalability, modularity of the code for hired developers still leaves much to be desired.
Who needs an engineer?
- Again – big companies that are looking for leads or architects for the future
- International companies with offices in the Russian Federation, they usually take developers for all sorts of routine tasks, and engineers for more complex tasks with the prospect of growth to a lead architect
- Closed product teams, where they simply gather in small groups and decide what and where, and programmers will do little there
And now what?
In the next part, we will consider several options for attracting people to your team, depending on your choice (programmer or engineer). Consider the entire search process. Process automation options. What to do if there are very few responses or vice versa a lot. And most importantly, what should be an effective test case for your future keyboard mates.