Internship for atypical programmers

    Many IT companies have internships for students (Nexign - previously Peter-Service - is no exception). It goes without saying that most interns look forward to continued employment in the state. But how do future IT pros imagine further work and how do these ideas coincide with the company's expectations - and modern reality?

    The fact is that the ideas of many yesterday’s graduates with little or no experience at all about what a “real” programmer should be are often lagged behind reality by a good number of years. In practice, the portrait of an IT specialist, in demand today, already weakly correlates with the traditional image of a gloomy introvert in a tattered sweater.

    So what does the IT specialist that we need here and now look like?

    image

    From separation to full-stack


    Probably the most frightening thing young specialists have to cope with is the gradual dissociation of the very concept of “programmer”. This trend has not yet been manifested everywhere, but in large and modern companies, this is precisely the point. A “programmer" is a lesser profession and more and more a role, and only one of the potentially many.

    It's not about the fact that the programmer is obligated to tear on all fronts at the same time. The bottom line is that he is capable of this. A modern developer is able to connect to different phases of a project - he can analyze, test, provide "emergency assistance" and deliver the product to the client. And, by the way, the opinion that the developer should be kept as far away from business as possible in every possible way protecting the finely tuned “techie” psyche from external disturbances is also outdated. On the client side, by the way, are the same developers. Who do they communicate with on technical issues? Obviously not with the sales department.

    Here, for some graduates, a logical question arises: how can one person combine all these roles in himself? And how many, in that case, cores should its intracranial processor run on?

    Download the base


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

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

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

    All of the above fully applies to young professionals. If you are well versed in one technology, even if it’s peak (you learned Python), this is more or less normal for the first place where you find a job. But then you need to perceive this place as a starting position not only for work, but also for long persistent self-development.

    image

    Not a single code


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

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

    There were also those who knew how to work with the requirements. They called analysts, and their task was to convey the wishes of the customer to those who wrote the code. Why, of course, it was not out of place to understand the subject area - but, in general, these people served as a kind of intermediate link, a shock absorber between the client and the encoder’s gentle thinking apparatus.

    Today, systems are becoming increasingly complex, and they expect an order of magnitude more from the analyst. Yes, the analyst is still a kind of interface that the development company exposes to receive and transmit signals from the outside. But first of all, this is a person who accelerates the implementation of business solutions. Which is completely impossible with the ability to manage requirements alone. The analyst has not only to model, analyze and synthesize, but also to understand what the developers will do - enough to speak their language to them and clearly understand where the system does not work as it should. And ideally, even a little more to understand in the design of interfaces.

    Even a programmer needs to see end consumers and know what they need. Even a tester has to write code. And the analyst is required to understand the general device, 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 run the distant future is likely that the analysis will be undertaken by developers.

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

    image

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

    Where to get the universal soldier


    Our company has such a division as the Laboratory for Training Projects. This division 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, a year and a half.

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

    The hypothetical company “X”, alas, will refuse such a candidate. 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-teams, T-shape is requested and fully engaged. Since it is understood, firstly, that all members of the link are equal and are capable, if necessary, of assuming the functions of comrades. And secondly - that at the output, this trinity will give a solution that is suitable for use and exactly the one requested by the product team. By the way, the link receives the task at the entrance in the form of a business case, so the produced value and acceptance criteria guaranteeing the required quality of the result are completely transparent.

    Owing to its “wide profile”, such a link can be temporarily connected to different teams and projects (mutual love often breaks out during joint work, and the link can join the team on an ongoing basis). So the atypical programmer of the future is not a white unicorn at all: he is already very real and really in demand.

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

    Materials for publication were provided by the head of the BSS-box development laboratory Alexander Zolotarev, chief analyst Egor Vershinin, the head of the laboratory for educational projects Artyom Nazyrov and the head of the laboratory development center Mikhail Igonin.

    Also popular now: