📜 ⬆️ ⬇️

Internship for atypical programmers

Internships for students are in many IT companies (Nexign - formerly Peter-Service is not an exception). It goes without saying that the majority of interns are counting on further employment in the state. But how do future IT pros imagine further work and how much do these ideas coincide with the company's expectations - and the current reality?

The fact is that the ideas of many yesterday's graduates with little experience (or even without it) about what a "real" programmer should be, often lag behind reality by a fair amount of years. In practice, the portrait of an IT specialist in demand today is already weakly correlated with the traditional image of a gloomy introvert in a torn sweater.

So what does an IT person who we need here and now look like?
')
image

From separation to full-stack


The most probably frightening thing that young professionals have to get together with is the gradual dissociation of the very concept of “programmer”. This trend has not yet manifested itself everywhere, but in large and modern companies it goes to exactly that. “Programmer” is less and less a profession and more and more - a role, and only one of potentially many.

This is not about the fact that the programmer is obliged to erupt on all fronts at the same time. The bottom line is that he is capable of it. A modern developer is able to connect to different phases of work on a project — he can both analyze, and test, and provide “emergency assistance”, and deliver the product to the client. And, by the way, the opinion that the developer should be kept as far as possible from the business, in every way preserving the finely tuned "tech-nary" psyche from external disturbances, is also outdated. On the client side, by the way, the same developers are sitting. Who do they talk to about technical issues? Clearly not with the sales department.

Here some graduates have a logical question: how can one person combine all these roles? And on how many, in this case, cores should its intracranial processor work?

We swing the base


No matter how trite it sounds, the foundation of everything is knowledge of the basics. A good, correct understanding of the fundamental principles and concepts - algorithms, databases and the same mathematics - is necessary for a novice developer. The trick is that in our industry a specialist in a certain sense has to swim against the current: the lifespan of technology is constantly decreasing. Any new products, for example, specific frameworks, in a few years no one needs them. On the front end, everything is constantly flowing and changing. In the end, it remains - what?

There remains a tendency to higher-level knowledge, abstractions, system thinking. And the base. Deep knowledge is very good when they mean general engineering knowledge. Deep knowledge of java ... Not bad, of course. But this is not a strategic position.

We have to admit that today multidisciplinarity, breadth of outlook, strong soft-skills and ability to synergy, as a rule, outweigh the extremely deep expert knowledge of a particular field. Nowadays, anecdotal closed geek coder is, generally speaking, a dead end. Even if he understands the glorious works of G. Shildt ten times better than G. Shildt himself. Of course, such a lone genius will find his place, but for this he will be required to be, at a minimum, a notable outstanding talent in his field. And in this case, career growth will be, shall we say, complicated.

All of the above fully applies to young professionals. If you are good at one technology, even if it is peak (learned Python), this is more or less normal for the first place you work. But then you need to take this place as a starting point not only for work, but also for long, stubborn self-development.

image

Not a single code


An IT specialist is not only and not necessarily a programmer. It is so? Or…

In times of not so remote, there were those who knew how to write code. Later, there were those who knew how to check this code. And it was very important and necessary when manual testing was widely used - which we don’t see today. In our company, as in many others, the position of a specialist in manual testing is no longer there. And we would be sad for those testers who “do not want to code anything, but want a black box”.

There were those who knew how to work with the requirements. They were called analysts, and their task was to convey the wishes of the customer to those who write the code. For which, of course, it was useful to understand the subject area - but, in general, these people served as something of an intermediate link, a shock absorber between the client and the gentle thinking apparatus of the coder.

Today, systems are continuously becoming more complex, and the analyst is expected to receive an order of magnitude more. Yes, the analyst is still a kind of interface that the developer company exposes to receive and transmit signals from outside. But first of all it is a person who accelerates the implementation of business decisions. What is absolutely not possible with the only ability to manage requirements. The analyst has not only to model, analyze and synthesize, but also to understand what the developers will create - enough to speak with them in their language and clearly understand where the system does not work as it should. And ideally, even at least some understand in the design of interfaces.

Even a programmer needs to see the end users and know what they need. Even the tester has to write code. And the analyst is required to understand the general structure, architecture, functionality and interface of the system, plus the ability to test its work for compliance with customer requirements. Already, the line between architects, systems and business analysts has become very blurred, and in the long-term future perspective it is likely that the developers will take on the analysis tasks.

As a result, we again get a portrait of a certain spherical engineer - T-shaper, who has some idea about architecture, about development, and design, and about testing. And - yes, whenever possible socialized, to the best of the outgoing and friendly.

image

A young specialist, who was first voiced by such a paradigm, may have a feeling that he is being called to believe in some kind of utopia about the superman. Which to him, a beginner, in any case, can not have any relation. But it is not.

Where to get the universal soldier


In our company there is such a unit as a laboratory of training projects. This unit is also involved in the implementation of the concept of cross-functional mini-teams - the so-called links. The links are collected, however, not from interns, but from specialists who already have some kind of work experience - say, in a year and a half.

It looks like this: suppose a person with good potential wants to work for us. In our understanding, this is one who has covered quite widely the very base about which we have already spoken, and at the same time is active, interested and ready to develop. However, it is not suitable for the needs of precisely those projects for which we are recruiting specialists - suppose there is not enough knowledge of the specific technologies with which the project team works.

The hypothetical company "X", alas, will refuse to such an applicant. We can offer him to learn a little on the basis of the laboratory and become part of one of the new links.

Each such link consists of 3-4 specialists who work under the supervision of a curator (mentor), but at the same time they are independent and solve combat tasks. And in these mini-commands, T-shape is requested and involved at 100%. Since it is implied, firstly, that all members of the link are equal and are able, if necessary, to assume the functions of comrades. And secondly - that at the exit this trio will issue a solution that is usable and exactly the one that the grocery team requested. By the way, the task at the entrance of the link receives in the form of a business case, so that the produced value and acceptance criteria that guarantee the required quality of the result are completely transparent.

It is precisely because of its “broad profile” that such a link can be temporarily connected to different teams and projects (in the course of joint work, mutual love often flares up, and the link can join the team on a permanent basis). So the atypical programmer of the future is not a white unicorn at all: it is already very real and really in demand.

So, going back to summer internships : they go to Nexign annually. And, by the way, according to statistics, 80% of trainees remain working in the company. But we very carefully select candidates and try to invite those who are attracted by the path of the multi-IT specialist described above. :)

Materials for publication were provided by Alexander Zolotaryov, Head of the FSN-box Development Laboratory, Yegor Vershinin, Chief Analyst, Artyom Nazyrov, Head of the Laboratory for Training Projects, and Mikhail Igonin, Head of the Laboratory Development Center.

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


All Articles