(and how not to spoil an intern)
It will be mainly about internships for programmers. I myself justified the need for internships to my management four years ago and since then, in addition to the main duties of the head of the department, I have also been developing, improving and conducting internship programs for newcomers to the industry. During this time, experience has accumulated that I want to share and put the pros and cons of internships on the shelves.
I want to say right away that everything I write in this article is my personal experience and the experience of my team. Therefore, what is written is not an indisputable truth, it is normal if something (or everything) does not suit you. However, I think that my recipes are useful, and with a little modification and scaling will be useful in any company.
Let’s start with the pros:
you will have freelance staff for a simple routine routine;
you will be able to unload your juniors and middles from the most tedious part of the work;
you will be able to grow your employees with such competencies that you need;
in fact, an internship is an additional trial period that will allow you to understand whether you need such an employee for a permanent job or not;
interns are worth less than joons in money;
an intern who enjoys learning is likely to appreciate your team more than a junior from the street.
And now the cons:
you need an internship program. Without a program, simply by throwing a person from task to task, you won’t achieve much, unless you raise the requirements for candidates;
part of the time of middles and juniors will be taken away by communication with interns and training of the latter;
additional resources will be needed for the selection and screening of trainees;
a poorly chosen trainee, like any poorly chosen employee, can demotivate the entire team;
an internship is a game for the long haul: you will not be able to put the intern into work from the first day, it will take some time to check the skills and basic training.
I would like to dwell separately on the internship program. The people in the market are all different now, especially those coming into trainee positions, and often require very different basic training. It is almost impossible to immediately find a person who owns exactly the technology stack that is used in your team. Therefore, a program for testing the basic skills of an intern should be drawn up for your technology stack. It is advisable to do this in the form of tasks. For each task, you need to have a list of points that you need to pay attention to when solving, and a prepared reference solution. This will save you a lot of time checking.
After the trainee confirms his skills, you can give him “combat” tasks. Of course, their execution also needs to be carefully checked, the trainee should be given feedback and, if necessary, forced to redo it to the correct result.
It is necessary to keep in mind the necessary conditions that are mandatory for a successful internship:
a team with a sufficient number of junior and middle specialists so that, for example, you do not have to pull your only middle all the time between interns and the main job;
a sufficient number of routine tasks to transfer to the work of interns. If all your tasks are unique and require a qualified specialist, it is unlikely that the trainee will quickly enter the topic and be able to give you the required level of their solution. Fortunately, this almost never happens;
patience. Tons of patience. Every trainee is new to your profession. Each new trainee needs to be explained again and again all the same mistakes that the previous trainees made. Your team constantly needs to explain why they need all this. In general, patience will come in handy;
kindness and tact. There is nothing worse than the head of the internship, who scornfully grimaces at every mistake of the intern and loudly comments on what a moron he got. No matter how annoying the repetition of the same mistakes or the inability of trainees to understand elementary things, you have no right to demonstrate your superiority. An internship leader for interns is like a mom who forgives any stupidity, as long as they are not the result of a conscious desire to mischief.
A portrait of a typical novice developer in our time: non-core education, some (not always sensible) courses from six months and a desire to self-realize in the industry. It is immediately clear why Forbes writes that juniors are no longer needed in Russia: in fact, they are in great demand – but not like that. The employer wants “a canary for a penny, and to sing in bass”, that is, a junior who, as soon as he came and sat down at a working computer, would immediately begin to issue high-quality code in the style and those standards that are accepted in the company.
But that doesn’t happen.
The internship should not only reveal valuable personnel for you, it should bring these valuable personnel to the idea that you work well. Often “good” for a modern person is not only money (on the position of a junior, especially from another industry, there are rarely significant advantages in this regard), it is rather an understandable opportunity for career and professional growth, comfortable working conditions and a pleasant team.
A good team usually starts with a good relationship between the employees and the manager. Therefore, I advise the team leader, the head of the department or the one who is responsible for the work of programmers in your company, be sure to communicate with the interns even before the decision is made to accept or not to hire specific individuals, and build communication in a positive way.
People who are not confident in their abilities often go to internships, respectively, it is much easier to demotivate such people than an experienced specialist. On the other hand, novice specialists, with the right treatment, will grow in exactly the competencies that you need as a leader.
I repeat once again that no programmer is ready to fully work in your technology stack from the first day he was connected to the project. In the experience of my program, an intern becomes a full-fledged work unit within a minimum of three months of work in a team.
An intern at the start of work is not a ready-made specialist. In order for his education to go in the direction you need, he must be accompanied, helped, supported. If the trainee has to work in a team, support and assistance should not come from just one person, they should come from the whole team. The motivation of the team in this case is that the employees teach a person who will subsequently unload them from part of the work.
I would like to end the article with such a simple thought – people will give you exactly the same thing that you put into them. Be patient, teach interns without negativity, show that they are important to your team, and you will get excellent team players with the right competencies. If you show irritation, intolerance, do not devote enough time to the intern, you should not expect anything good for him, for yourself and the company.