
The road to young people or how to grow your own personnel in IT
Greetings.
In the light of recent talk about the lack of qualified personnel in IT, I am publishing the first part of my article written at the end of 2006. The situation has not changed much over the past, so everything described is still relevant.
Dear young! We grow our own personnel in IT.
Introduction
In recent years, the demand for qualified personnel in the information technology market has seriously exceeded supply. This has long been a trend: salaries are growing and growing, new jobs are appearing, and there are not enough specialists. For example, in April 2005. the average salary of a .NET programmer in Moscow was about $ 1,200, in January 2006. she began to make $ 1600, and now I often see vacancies with salary offers in excess of $ 2000. If you search for vacancies in Moscow for developers on the .NET platform on job.ru with a specified salary of $ 2,500 or more, you will find that 12-15 ads appear every day that meet the specified criteria. At the same time, an IT specialist with low qualifications is much more difficult to find, and the offer exceeds demand several times. In this article I will tell
It is far from always wise to pay a software developer $ 2000 / month, however, the market is growing, and, as you know, there is no arguing against the market.
Personally, I believe that almost every IT company needs to implement a program to grow its own personnel. And to bring up real professionals from talented young people who have eyes burning, who are ready to program day and night, who want to feel like part of a team, want to learn, understand, want to become real professionals, want to get the result and see their name in the About about the created product ... In the end, for the sake of the above, these guys are ready to work for food ... This, of course, is a joke, but you can start with $ 200. And I’m ready to prove that with a competent approach, real “bison” will grow out of them in just a few months, while projects will be successfully implemented, and budgets will cease to melt at the usual speed.
Idyll, dream, fairy tale, delirium? That’s about half the Atis company’s development team said, where I suggested introducing such a program. However, I managed to defend my point of view, and the company gave the green light to expanding the team working on the Password Commander project.
A year has passed since then. It is time to look back and take stock. In three parts: in the first I will talk about how to hire talented interns, in the second - how to help talents open up and become real professionals, and in the third I will summarize and talk in detail about the results.
Part 1. How to find talented superstar interns?
Baseline
Moscow, a small IT company (20 people).
Working conditions:
It is worth noting:
For a salary, an employee according to this scheme requires $ 6250 per year, while the employee reaches the mark of $ 800 / month. by the end of the year.
For a salary, a programmer working at a rate of $ 1,700 / month requires $ 20,400 per year.
Requirements
We needed several programmers to develop Password Commander. The project was originally created on Delphi 7, so the candidate had to own this development tool. We wanted to find talented and enthusiastic programmers who alone in the evenings or in the company of other such amateur students wrote programs for various needs. We needed people who were able to think, knew the basic concepts and constructions of the language (there was absolutely no desire to tell what if, case and for were), and most importantly, they approached programming with unprecedented enthusiasm and had a great desire to work and learn new technologies. If the candidate writes the code in one line and names the variables “a1”, “a2”, “xxx” and “yyy”, I don’t care, we will teach.
Training
Understanding that candidates for such a position can be completely “zero”, which does not suit me at all, it was decided to ask everyone three control questions, which allow to approximately determine the level of knowledge of the candidate. Given the specifics of the project (you need to be very well oriented in OOP, a lot of your own controls), the following questions were selected:
Candidates who were interviewed by telephone were told the terms of their salary and schedule, and if they satisfied them, the candidate was invited to the office.
Naturally, I didn’t want to accept a candidate for work only because he answered correctly three questions that you can ask a dad programmer. Therefore, I developed a test task: to create an on-screen keyboard that could snap to any object of type TEdit and that would allow you to enter characters into it. I drew up the terms of reference, and then completed the test. It took me 40 minutes. I decided to give candidates an hour and a half.
Then the following requirements for the test task were formed:
With candidates who successfully completed the test task, a personal conversation, a story about the company, acquaintance with the leadership, and, possibly, a job offer were supposed.
Search for candidates
Search for candidates was carried out in four areas:
According to published or sent resumes, the most suitable candidates were selected. I myself am a person who is very attentive to trifles, and I know that each letter in a resume can tell something about a person.
For example, the candidate’s email address.
I don’t like these email addresses:
lenkagirl@somedomain.com - in the end, childhood ended, we seem to be looking for work and lenkagel - somehow it’s not businesslike.
zombiekill@somedomain.com - for friends, this address may be suitable. But for the employer - hardly. Who is hiding behind a similar address? I don’t know, but it seems to me that I will not like him.
But this address immediately hooked me:
soapwithoutcord@somedomain.com - it is immediately obvious that a person can correctly write three words in English, which is also not often found. In addition, it turned out some interesting combination. In the end, I decided to invite this candidate to work, and, believe me, I was not mistaken.
Of course, I looked not only at the email address, but also at the structure of the resume, to myself I noted the literacy of the Russian language (if a person was too lazy to check his own resume in Word, how will he relate to his code?), The indicated skills. You should not invite for an interview a candidate who wrote in a resume instead of Delphi - “Delfi”. Shame and disgrace - not be able to write the name of the instrument with which you have to work!
According to the results of telephone interviews with candidates, I came to a disappointing conclusion: almost no one answered all three questions correctly, so I had to look at the general sanity of the candidate and knowledge of the basic constructions of the programming language.
It should be noted that the requests of candidates are very uneven and often do not obey any logic: you can find a 4th year student who is ready to work three full days a week, is well versed in programming and agrees to a salary of $ 200 per month, but you can find a student, who knows nothing at all, cannot answer a single question and at the same time has salary expectations of $ 600 a month for a probationary period.
As a result, the requirements for candidates during a telephone interview were as follows:
I invited all candidates satisfying these requirements for an interview and warned in advance that they would be offered a test task lasting approximately 1.5 hours.
As experience has shown, it is not necessary to conduct long conversations with the candidate before writing a test task. Therefore, the interviews were as follows: I met the candidate, briefly told him about the outline of our conversation (no more than 10 minutes), and then offered to complete the test task.
The results of the assignment turned out to be even less reassuring: only 20% of the candidates somehow coped with the task, while 50% of them had to devote extra time to see at least some result. Ideally, no one completed the task. If possible, I showed all candidates how to optimize the code, make it more understandable and readable.
With the most powerful programmers, the third stage of the interview immediately began, to which the company management was invited whenever possible. The conversation usually went about life, I asked insidious and not so questions, and we finally settled the working conditions. It should be noted that at this stage of the interview, I first asked myself the question: “how comfortable will I work with this person?”, And then I remembered the professional qualities of the candidate.
Bottom line: it took about three weeks to search for three people, but such painstaking work made itself felt: I was able to hire really talented employees.
Conclusions:
In the light of recent talk about the lack of qualified personnel in IT, I am publishing the first part of my article written at the end of 2006. The situation has not changed much over the past, so everything described is still relevant.
Dear young! We grow our own personnel in IT.
Introduction
In recent years, the demand for qualified personnel in the information technology market has seriously exceeded supply. This has long been a trend: salaries are growing and growing, new jobs are appearing, and there are not enough specialists. For example, in April 2005. the average salary of a .NET programmer in Moscow was about $ 1,200, in January 2006. she began to make $ 1600, and now I often see vacancies with salary offers in excess of $ 2000. If you search for vacancies in Moscow for developers on the .NET platform on job.ru with a specified salary of $ 2,500 or more, you will find that 12-15 ads appear every day that meet the specified criteria. At the same time, an IT specialist with low qualifications is much more difficult to find, and the offer exceeds demand several times. In this article I will tell
It is far from always wise to pay a software developer $ 2000 / month, however, the market is growing, and, as you know, there is no arguing against the market.
Personally, I believe that almost every IT company needs to implement a program to grow its own personnel. And to bring up real professionals from talented young people who have eyes burning, who are ready to program day and night, who want to feel like part of a team, want to learn, understand, want to become real professionals, want to get the result and see their name in the About about the created product ... In the end, for the sake of the above, these guys are ready to work for food ... This, of course, is a joke, but you can start with $ 200. And I’m ready to prove that with a competent approach, real “bison” will grow out of them in just a few months, while projects will be successfully implemented, and budgets will cease to melt at the usual speed.
Idyll, dream, fairy tale, delirium? That’s about half the Atis company’s development team said, where I suggested introducing such a program. However, I managed to defend my point of view, and the company gave the green light to expanding the team working on the Password Commander project.
A year has passed since then. It is time to look back and take stock. In three parts: in the first I will talk about how to hire talented interns, in the second - how to help talents open up and become real professionals, and in the third I will summarize and talk in detail about the results.
Part 1. How to find talented superstar interns?
Baseline
Moscow, a small IT company (20 people).
Working conditions:
- A free schedule of 24 hours a week, the opportunity to work on Saturday and Sunday (for students), for graduates and students on vacation - a 40-hour work week.
- The first two weeks, training is provided, during this period no salary is paid, but the candidate is provided with free food. The candidate may not be hired based on the results of training.
- After training, a trial period of one month is set, which is paid at a rate of $ 200.
- Upon successful completion of the probationary period, the trainee is assigned a salary of $ 300 / month.
- After each month of work, the employee's salary may be increased by $ 50, subject to the availability of professional growth. This should be understood as follows: if an employee works normally, each month his salary will increase by $ 50.
- An increase in employee salaries is envisaged up to $ 1200, upon reaching which an employment contract is concluded on other conditions with a fixed salary.
- Social package, bonuses, etc. was not provided.
It is worth noting:
For a salary, an employee according to this scheme requires $ 6250 per year, while the employee reaches the mark of $ 800 / month. by the end of the year.
For a salary, a programmer working at a rate of $ 1,700 / month requires $ 20,400 per year.
Requirements
We needed several programmers to develop Password Commander. The project was originally created on Delphi 7, so the candidate had to own this development tool. We wanted to find talented and enthusiastic programmers who alone in the evenings or in the company of other such amateur students wrote programs for various needs. We needed people who were able to think, knew the basic concepts and constructions of the language (there was absolutely no desire to tell what if, case and for were), and most importantly, they approached programming with unprecedented enthusiasm and had a great desire to work and learn new technologies. If the candidate writes the code in one line and names the variables “a1”, “a2”, “xxx” and “yyy”, I don’t care, we will teach.
Training
Understanding that candidates for such a position can be completely “zero”, which does not suit me at all, it was decided to ask everyone three control questions, which allow to approximately determine the level of knowledge of the candidate. Given the specifics of the project (you need to be very well oriented in OOP, a lot of your own controls), the following questions were selected:
- What class access modifiers do you know? What is the difference between Public and Private?
- What is the difference between override and overload?
- Why are the as and is keywords needed? Where and how are they commonly used?
Candidates who were interviewed by telephone were told the terms of their salary and schedule, and if they satisfied them, the candidate was invited to the office.
Naturally, I didn’t want to accept a candidate for work only because he answered correctly three questions that you can ask a dad programmer. Therefore, I developed a test task: to create an on-screen keyboard that could snap to any object of type TEdit and that would allow you to enter characters into it. I drew up the terms of reference, and then completed the test. It took me 40 minutes. I decided to give candidates an hour and a half.
Then the following requirements for the test task were formed:
- The candidate must complete the test task in 1.5 hours or less;
- For the allotted time, the candidate can use the Internet and any literature that he brings with him unlimitedly. Almost everything is allowed, except for direct transfer to the third party of the test task and obtaining the finished result.
With candidates who successfully completed the test task, a personal conversation, a story about the company, acquaintance with the leadership, and, possibly, a job offer were supposed.
Search for candidates
Search for candidates was carried out in four areas:
- Placement of vacancy on sites like job.ru;
- Placement of vacancies in specialized forums for programmers and on forums of institutes;
- A survey of employees for the presence of familiar programmers with the necessary knowledge and willing to work on these conditions;
- Search for resumes on job sites such as job.ru.
According to published or sent resumes, the most suitable candidates were selected. I myself am a person who is very attentive to trifles, and I know that each letter in a resume can tell something about a person.
For example, the candidate’s email address.
I don’t like these email addresses:
lenkagirl@somedomain.com - in the end, childhood ended, we seem to be looking for work and lenkagel - somehow it’s not businesslike.
zombiekill@somedomain.com - for friends, this address may be suitable. But for the employer - hardly. Who is hiding behind a similar address? I don’t know, but it seems to me that I will not like him.
But this address immediately hooked me:
soapwithoutcord@somedomain.com - it is immediately obvious that a person can correctly write three words in English, which is also not often found. In addition, it turned out some interesting combination. In the end, I decided to invite this candidate to work, and, believe me, I was not mistaken.
Of course, I looked not only at the email address, but also at the structure of the resume, to myself I noted the literacy of the Russian language (if a person was too lazy to check his own resume in Word, how will he relate to his code?), The indicated skills. You should not invite for an interview a candidate who wrote in a resume instead of Delphi - “Delfi”. Shame and disgrace - not be able to write the name of the instrument with which you have to work!
According to the results of telephone interviews with candidates, I came to a disappointing conclusion: almost no one answered all three questions correctly, so I had to look at the general sanity of the candidate and knowledge of the basic constructions of the programming language.
It should be noted that the requests of candidates are very uneven and often do not obey any logic: you can find a 4th year student who is ready to work three full days a week, is well versed in programming and agrees to a salary of $ 200 per month, but you can find a student, who knows nothing at all, cannot answer a single question and at the same time has salary expectations of $ 600 a month for a probationary period.
As a result, the requirements for candidates during a telephone interview were as follows:
- The candidate can clearly explain the difference between private and public access modifiers, and also gives examples of the use of these modifiers;
- The candidate answers either the question about override and overload (which is preferable), or about as and is;
- The candidate demonstrates general sanity when talking on the phone;
- The candidate agrees with the working conditions, which are announced to him in a short version.
I invited all candidates satisfying these requirements for an interview and warned in advance that they would be offered a test task lasting approximately 1.5 hours.
As experience has shown, it is not necessary to conduct long conversations with the candidate before writing a test task. Therefore, the interviews were as follows: I met the candidate, briefly told him about the outline of our conversation (no more than 10 minutes), and then offered to complete the test task.
The results of the assignment turned out to be even less reassuring: only 20% of the candidates somehow coped with the task, while 50% of them had to devote extra time to see at least some result. Ideally, no one completed the task. If possible, I showed all candidates how to optimize the code, make it more understandable and readable.
With the most powerful programmers, the third stage of the interview immediately began, to which the company management was invited whenever possible. The conversation usually went about life, I asked insidious and not so questions, and we finally settled the working conditions. It should be noted that at this stage of the interview, I first asked myself the question: “how comfortable will I work with this person?”, And then I remembered the professional qualities of the candidate.
Bottom line: it took about three weeks to search for three people, but such painstaking work made itself felt: I was able to hire really talented employees.
Conclusions:
- Ideally, the last / penultimate student or recent graduate with no work experience, however, having a certain non-commercial experience, is suitable for this position. Ideally, if the candidate lives in Moscow with his parents and does not really need money, and, most importantly, has the motivation to improve his professional level and participate in interesting projects. Students living in dormitories are also suitable for this position. Most importantly, I emphasize once again, the desire to improve my professional level.
- In my opinion, every project manager should be a little psychologist. Therefore, I believe that when recruiting a team, you should not resort to the services of personnel managers. You form a new team, you form YOUR team, you choose with whom you will work side by side for a long time. You will have plenty to choose from, do not forget that demand in this segment greatly exceeds supply. And if a person has completed all the test tasks perfectly, but you feel that it will be unpleasant for you to work with him - do not take such a candidate. You should feel 100% certain that you need this person.
- Look not only at the result of the test task, but also at what methods and approaches the candidate uses. For example, I hired an intern who completed the test task by 30%. At the same time, I saw that this candidate was confused in languages, often using C ++ constructs, however, the way he worked with the keyboard: quickly, professionally, often used hot keys, etc., spoke about his experience working with Borland C ++ Builder This was enough to understand that this candidate will improve his knowledge in Delphi without any problems. I was not mistaken. Conclusion: be more flexible in your grades. Do not evaluate candidates only by the results of a test task. After all, sometimes there are exceptions.
- At the interview, the candidate should be explained why the proposed initial conditions are somewhat lower than the market. It is necessary to motivate him.
I saw companies that recruit junior programmers, but there is no special program for working with interns. Books are offered for beginners, if necessary (at the initiative of the trainee) consultations can be obtained from more experienced colleagues. After some time, such an employee begins to pose simple tasks. If tasks are completed, the company believes that the trainee is successfully studying. Everything would be fine, but since there is no established training program, the employee learns everything on his own. Of course it works. But how…
Somehow I opened the source code of a module of one large system, which needed to be finalized. Outwardly, the module worked without failures, but as soon as I opened its code, I was horrified. It is not difficult to guess that it was the result of the work of a junior programmer whom no one had trained. Result: 3 days spent on refactoring.
“So, we offer a starting salary below the market, because we train the candidate. We work with him a lot and tightly. We are interested in improving his professional level, ”should be something like motivational speech.