How to exploit children
To you for it was nothing
A couple of years ago, good people came to us at QIWI with a suggestion to exploit children a little. In the sense of concluding an agreement with us, according to which we take schoolchildren for internship programs, we look at how interesting they (and us) are, and whether something can be done from this whole undertaking.
The idea was to take schoolchildren and throw them into departments or food teams. Productologists, of course, met it without a proper fire in their eyes with the expected motto: “What the hell is this for us in general, everything works, don’t touch it.”
Under the cut - details about our internship programs, reviews of two guys, one of whom, after the internship, is already working with us on staff, and the second is still an intern (guys are now 16 and 18 years old, by the way) and leads impressions of the process.
Before that, there was a program called QIWI FINTEEN - there we taught financial literacy to schoolchildren, told them about QIWI, about maps, showed how things work. They recognized the experience as successful and rolled out the program to the whole of Russia, starting to teach children in Artek and other camps. And not only financial literacy, but also the basics of information security. The program, by the way, continues to take awards as a good educational project. We trained over 150,000 people.
So, we invited students with any practical programming skills. Some even had profiles on github. We agreed that we would take as a pilot 4 people (approximately out of 40 who had passed the preliminary selection). All interns went to different departments, from SMM and analysts to development and terminals.
How to understand what tasks to immerse a student for a month? We took a test task (and a real test task for analysts), which allowed us to evaluate in general terms the level of knowledge of schoolchildren and, most importantly, their preferences. We decided not to connect to the processing and Java development, but chose the fullstack JavaScript command. We picked up small, but realistic tasks, the results of which could be issued in open source, so that each had a repository, verified by a technical mentor. We threw the guys right into the code.
Of the projects that they have mastered to do, there was a mechanism for sharing in social networks and a service for comparing service tables of the combat and test databases.
And what leads? It turned out that communication with schoolchildren raises the morale of current employees. When you, as a mentor, explain to a beginner, what and how is arranged, you also begin to look at your own work a little more critically. The main thing that we learned from this for us is that you need to select tasks for people, not people for tasks. In large companies, quite often do the opposite.
And now - the word guys.
For my part, it looked like this: a year ago I was passing a training program at the School of IT solutions during the school year, and there we were clearly hinted that those who have cool projects will be able to go on an internship in a real company, now we are negotiating with QIWI. As a result, they sent a link to the registration, there was a hefty profile with several mini-essays. Filled an hour almost.
Then he was invited to an in-person interview, with all at once, with the leaders of the directions. I thought I would wait a long time for an answer, but they called me the next day and told me which of the QIWI departments I could go for an internship. I went to Gosha GEG , which scared everyone with code. I wanted to go exactly to him, because he had real projects. Other departments are analytics and design, this is not mine.
Very pleased that there was complete freedom of action. You choose when you come and when you finish. I worked in QIWI for a month in person, then for some time I supported my project during the school year, and sometimes there were different tasks. And now, a year later, I am already on the staff and working as a junior programmer.
It’s cool here, the values that the internship gave left after leaving for work, that is, no bureaucracy and human relations. Before QIWI, I was an intern at one small company that did educational projects. We were there with two more interns at the computers and they said that you were developing your project on Unity, go ahead, maybe this engine will suit us. In general, we did something for about a month, and then, most likely, they threw it away. And this is not cool, this attitude to work, we sat on it for 4-5 hours a day, and it was not useful anywhere.
And then in another way, he came right away - and here are the real tasks. They told me what problems there are, said why they even need this database comparator. That is, this was a real combat mission, on the technology that is used in the company. And this thing is useful to people, we use it even now, and not just scored as a test project. When I was developing it, they said that they would launch it every couple of months. And it is still actively used and included in the release process.
Then at the next meeting I was offered a choice - either get settled in QIWI and combine it with studying in 11th grade, or wait a year and come later. I chose to wait and have no regrets - after all, a lot of time was spent on the Unified State Exam and so on, I would not be so productive at work at that time.
And then I turned 18 and they took me to work. It was very cool - to understand that after the internship you continue to wait in the company.
There is more to tell about what exactly the thing was written by Zhenya. We have a test circuit and combat. From release to release, the data in the service tables change, which is why a lot of manual changes have to be made. And the base is large. And the release should only get all the freshest, so that we also need an adequate process of reviewing these changes. So Zhenya wrote us a utility that takes a test pattern, takes a combat one, displays differences, and then generates the necessary DML scripts for INSERT / UPDATE.
At the very beginning of the internship, we immediately tell the guys that it is not paid (we only compensate for meals in the office). This is more of a training, because the time of qualified specialists also costs a certain amount to the company, and the process of such a code review from the leads is in itself valuable. We now take schoolchildren for the summer, for about a month of quite productive work. In general, even a month is not enough - if we talk about the development that took place with experience, he will spend this month to properly integrate into the formed team and understand how everything works.
And with schoolchildren more difficult. For a while, you spend on understanding what things are interesting to him and what tasks he should be given. Then you enter the course on the technologies used. In general, enough of all.
The number of places for internship directly depends on open vacancies. Offhand for 2019 - will be about 30-40. Maybe more.
With the schedule, everything is pretty loyal. The main (and obvious) requirement is that as an intern, try to just be in the office from noon to your convenient time, but to directly intersect with the team you work with. Specifically, Zhenya now has a slightly different story, he is already a student, he is trying to adequately assess himself, what is there like with his load and how much time is needed for him. If it is necessary - it comes early, it releases something, goes to the institute for a couple. Then sometimes he sits here until 10 in the evening with his tasks. We tried to drive him home, but so far it’s not very successful.
Now he will have a session, of course, he will have a little less time for work. But then in February holidays (read - hello, full time).
In fact, a rather large percentage of developers are doubtful of mentoring. Everyone is sitting and thinking, what for me schoolchildren in general, thank you, the next one. If you come to the java-middle then you will leave.
We did it all a bit differently, because specifically in the team where the interns were sent, there is no Java. In general, the architecture of the project itself and the languages used to some extent determine how easy it is to take a person from the street and immerse in the work for a month. Our stack allows it, plus we didn't throw the guys into some critical root pieces. Not processing, in general. But this does not negate the necessity and importance of the tasks.
One could say here that the system we have is highly loaded, but the term itself, although fashionable, is IMHO not quite rightly used. We believe that if the application is bad, initially, then for him there is some kind of serious load - this is highload. And if you did everything right, then even serious numbers should be in the “normal situation” discharge. Because you can write any services on Node.JS, typescript, PostgreSQL. Fronts are usually developed at React, but there is also a project on Angular.
And in all this you can easily take a person and for a month to do so that he will understand what is happening. For example, there is some kind of feature that the conditional middle will sit and saw a week. And the feature is not very urgent, nobody needs it right tomorrow. So, you can give it to the schoolboy, who will saw it for a month. In the worst case, it will be a waste of time on our part. In the normal - mutually beneficial exploitation of the student.
For each mentor we usually assign 2 schoolchildren a maximum. It strongly depends on the current load of the mentor himself and his ability to distribute his time, as well as on the independence of the trainees. By the way, Eugene this year is not weakly involved - he is now actively helping newcomers to set up a working environment and understand our processes, and introduces a stack of technologies.
That is seriously and jokingly - the guy who has gone from a trainee student to a junior programmer for a year, today he himself is helping other people along this path. Cool.
And about technologies - it is important to immediately invest in the head for beginners, that there are technologies that allow you to solve problems. Any of them just need to take the right place and attach to the case. Each of the schoolchildren has a rather different background - someone did something in Pascal, someone in C and so on. I try to give them an understanding that a programmer will change a lot of languages during his professional life, they must be mastered. Choosing the right stack for life is an illusion. You develop in breadth.
I looked for all sorts of summer schools related to programming for the summer and accidentally stumbled upon FINTEEN. Before that, I studied programming myself on my own for a year, but I wanted to try myself in something more. I filled out an application, about a month later they called me and told me to come to the office for an interview, let's see what you can do. Well, I came. After the interview, they said that they would issue a pass and you could leave in a week.
A week later, they gave a test task on the databases to do, did it in a day. The next day already gave something more or less combat to do (static button). To do this, I had to plunge into the technology stack and understand how it deploitsya, what processes in the company. And I came almost from scratch. So everything taught already here.
And then there was a demo. It was an unusual day for me, because I did not understand what a demo is and why. I came, I was told to just tell me what I was doing all this week. I was preparing for half a day, then we went to the conference hall and spoke to other programmers. I said that I screwed the button and that I am 16 years old. Now, the speakers often come out to the demo and begin their speech with the words “Hello, my name is like that, and I'm not 16”.
Then I began to give more complex tasks already. The longest task was for two weeks - internationalization + kolorpiker. I dealt with the frontend because it was interesting for me, there were atomic puzzles that the team could give me.
I really liked the atmosphere, there are cool people. And free coffee and hot chocolate.
QIWI gave me a good start, I understood how tasks are distributed, for which all these fees. Now I lead my team, participate in hackathons and in the School of IT solutions. And I also began to use the github frequently.
Here's another thing. We in the test task had a base on Amazon. And the whole thing coincided with the attempt of the RKN to block the telegram, as a result of which the polintern was interrupted, except for the telegram. Including our base. So for the guys who went to do the test, such a spontaneous adjustment was made — to make a test, one had to be able to bypass such things as well.
For us as a company, the trainee program has become another impetus in the development of our open-source movement - we threw all the tasks there. Moreover, the test task for developers immediately makes it clear to the person what kind of infrastructure he will have to work with us, all tasks are alive, this is not spherical garbage in a vacuum.
By the way, do you want to be a cool mentor in the new year? Join our team. :)
A couple of years ago, good people came to us at QIWI with a suggestion to exploit children a little. In the sense of concluding an agreement with us, according to which we take schoolchildren for internship programs, we look at how interesting they (and us) are, and whether something can be done from this whole undertaking.
The idea was to take schoolchildren and throw them into departments or food teams. Productologists, of course, met it without a proper fire in their eyes with the expected motto: “What the hell is this for us in general, everything works, don’t touch it.”
Under the cut - details about our internship programs, reviews of two guys, one of whom, after the internship, is already working with us on staff, and the second is still an intern (guys are now 16 and 18 years old, by the way) and leads impressions of the process.
How it all started
Before that, there was a program called QIWI FINTEEN - there we taught financial literacy to schoolchildren, told them about QIWI, about maps, showed how things work. They recognized the experience as successful and rolled out the program to the whole of Russia, starting to teach children in Artek and other camps. And not only financial literacy, but also the basics of information security. The program, by the way, continues to take awards as a good educational project. We trained over 150,000 people.
So, we invited students with any practical programming skills. Some even had profiles on github. We agreed that we would take as a pilot 4 people (approximately out of 40 who had passed the preliminary selection). All interns went to different departments, from SMM and analysts to development and terminals.
How to understand what tasks to immerse a student for a month? We took a test task (and a real test task for analysts), which allowed us to evaluate in general terms the level of knowledge of schoolchildren and, most importantly, their preferences. We decided not to connect to the processing and Java development, but chose the fullstack JavaScript command. We picked up small, but realistic tasks, the results of which could be issued in open source, so that each had a repository, verified by a technical mentor. We threw the guys right into the code.
Of the projects that they have mastered to do, there was a mechanism for sharing in social networks and a service for comparing service tables of the combat and test databases.
And what leads? It turned out that communication with schoolchildren raises the morale of current employees. When you, as a mentor, explain to a beginner, what and how is arranged, you also begin to look at your own work a little more critically. The main thing that we learned from this for us is that you need to select tasks for people, not people for tasks. In large companies, quite often do the opposite.
And now - the word guys.
Zhenya, 18, junior developer
For my part, it looked like this: a year ago I was passing a training program at the School of IT solutions during the school year, and there we were clearly hinted that those who have cool projects will be able to go on an internship in a real company, now we are negotiating with QIWI. As a result, they sent a link to the registration, there was a hefty profile with several mini-essays. Filled an hour almost.
Then he was invited to an in-person interview, with all at once, with the leaders of the directions. I thought I would wait a long time for an answer, but they called me the next day and told me which of the QIWI departments I could go for an internship. I went to Gosha GEG , which scared everyone with code. I wanted to go exactly to him, because he had real projects. Other departments are analytics and design, this is not mine.
Very pleased that there was complete freedom of action. You choose when you come and when you finish. I worked in QIWI for a month in person, then for some time I supported my project during the school year, and sometimes there were different tasks. And now, a year later, I am already on the staff and working as a junior programmer.
It’s cool here, the values that the internship gave left after leaving for work, that is, no bureaucracy and human relations. Before QIWI, I was an intern at one small company that did educational projects. We were there with two more interns at the computers and they said that you were developing your project on Unity, go ahead, maybe this engine will suit us. In general, we did something for about a month, and then, most likely, they threw it away. And this is not cool, this attitude to work, we sat on it for 4-5 hours a day, and it was not useful anywhere.
And then in another way, he came right away - and here are the real tasks. They told me what problems there are, said why they even need this database comparator. That is, this was a real combat mission, on the technology that is used in the company. And this thing is useful to people, we use it even now, and not just scored as a test project. When I was developing it, they said that they would launch it every couple of months. And it is still actively used and included in the release process.
Then at the next meeting I was offered a choice - either get settled in QIWI and combine it with studying in 11th grade, or wait a year and come later. I chose to wait and have no regrets - after all, a lot of time was spent on the Unified State Exam and so on, I would not be so productive at work at that time.
And then I turned 18 and they took me to work. It was very cool - to understand that after the internship you continue to wait in the company.
About internships and graphics
There is more to tell about what exactly the thing was written by Zhenya. We have a test circuit and combat. From release to release, the data in the service tables change, which is why a lot of manual changes have to be made. And the base is large. And the release should only get all the freshest, so that we also need an adequate process of reviewing these changes. So Zhenya wrote us a utility that takes a test pattern, takes a combat one, displays differences, and then generates the necessary DML scripts for INSERT / UPDATE.
At the very beginning of the internship, we immediately tell the guys that it is not paid (we only compensate for meals in the office). This is more of a training, because the time of qualified specialists also costs a certain amount to the company, and the process of such a code review from the leads is in itself valuable. We now take schoolchildren for the summer, for about a month of quite productive work. In general, even a month is not enough - if we talk about the development that took place with experience, he will spend this month to properly integrate into the formed team and understand how everything works.
And with schoolchildren more difficult. For a while, you spend on understanding what things are interesting to him and what tasks he should be given. Then you enter the course on the technologies used. In general, enough of all.
The number of places for internship directly depends on open vacancies. Offhand for 2019 - will be about 30-40. Maybe more.
With the schedule, everything is pretty loyal. The main (and obvious) requirement is that as an intern, try to just be in the office from noon to your convenient time, but to directly intersect with the team you work with. Specifically, Zhenya now has a slightly different story, he is already a student, he is trying to adequately assess himself, what is there like with his load and how much time is needed for him. If it is necessary - it comes early, it releases something, goes to the institute for a couple. Then sometimes he sits here until 10 in the evening with his tasks. We tried to drive him home, but so far it’s not very successful.
Now he will have a session, of course, he will have a little less time for work. But then in February holidays (read - hello, full time).
Mentoring and doubts
In fact, a rather large percentage of developers are doubtful of mentoring. Everyone is sitting and thinking, what for me schoolchildren in general, thank you, the next one. If you come to the java-middle then you will leave.
We did it all a bit differently, because specifically in the team where the interns were sent, there is no Java. In general, the architecture of the project itself and the languages used to some extent determine how easy it is to take a person from the street and immerse in the work for a month. Our stack allows it, plus we didn't throw the guys into some critical root pieces. Not processing, in general. But this does not negate the necessity and importance of the tasks.
One could say here that the system we have is highly loaded, but the term itself, although fashionable, is IMHO not quite rightly used. We believe that if the application is bad, initially, then for him there is some kind of serious load - this is highload. And if you did everything right, then even serious numbers should be in the “normal situation” discharge. Because you can write any services on Node.JS, typescript, PostgreSQL. Fronts are usually developed at React, but there is also a project on Angular.
And in all this you can easily take a person and for a month to do so that he will understand what is happening. For example, there is some kind of feature that the conditional middle will sit and saw a week. And the feature is not very urgent, nobody needs it right tomorrow. So, you can give it to the schoolboy, who will saw it for a month. In the worst case, it will be a waste of time on our part. In the normal - mutually beneficial exploitation of the student.
For each mentor we usually assign 2 schoolchildren a maximum. It strongly depends on the current load of the mentor himself and his ability to distribute his time, as well as on the independence of the trainees. By the way, Eugene this year is not weakly involved - he is now actively helping newcomers to set up a working environment and understand our processes, and introduces a stack of technologies.
That is seriously and jokingly - the guy who has gone from a trainee student to a junior programmer for a year, today he himself is helping other people along this path. Cool.
And about technologies - it is important to immediately invest in the head for beginners, that there are technologies that allow you to solve problems. Any of them just need to take the right place and attach to the case. Each of the schoolchildren has a rather different background - someone did something in Pascal, someone in C and so on. I try to give them an understanding that a programmer will change a lot of languages during his professional life, they must be mastered. Choosing the right stack for life is an illusion. You develop in breadth.
Emil, 16 years old, intern
I looked for all sorts of summer schools related to programming for the summer and accidentally stumbled upon FINTEEN. Before that, I studied programming myself on my own for a year, but I wanted to try myself in something more. I filled out an application, about a month later they called me and told me to come to the office for an interview, let's see what you can do. Well, I came. After the interview, they said that they would issue a pass and you could leave in a week.
A week later, they gave a test task on the databases to do, did it in a day. The next day already gave something more or less combat to do (static button). To do this, I had to plunge into the technology stack and understand how it deploitsya, what processes in the company. And I came almost from scratch. So everything taught already here.
And then there was a demo. It was an unusual day for me, because I did not understand what a demo is and why. I came, I was told to just tell me what I was doing all this week. I was preparing for half a day, then we went to the conference hall and spoke to other programmers. I said that I screwed the button and that I am 16 years old. Now, the speakers often come out to the demo and begin their speech with the words “Hello, my name is like that, and I'm not 16”.
Then I began to give more complex tasks already. The longest task was for two weeks - internationalization + kolorpiker. I dealt with the frontend because it was interesting for me, there were atomic puzzles that the team could give me.
I really liked the atmosphere, there are cool people. And free coffee and hot chocolate.
QIWI gave me a good start, I understood how tasks are distributed, for which all these fees. Now I lead my team, participate in hackathons and in the School of IT solutions. And I also began to use the github frequently.
Total
Here's another thing. We in the test task had a base on Amazon. And the whole thing coincided with the attempt of the RKN to block the telegram, as a result of which the polintern was interrupted, except for the telegram. Including our base. So for the guys who went to do the test, such a spontaneous adjustment was made — to make a test, one had to be able to bypass such things as well.
For us as a company, the trainee program has become another impetus in the development of our open-source movement - we threw all the tasks there. Moreover, the test task for developers immediately makes it clear to the person what kind of infrastructure he will have to work with us, all tasks are alive, this is not spherical garbage in a vacuum.
By the way, do you want to be a cool mentor in the new year? Join our team. :)