📜 ⬆️ ⬇️

Where to get a programmer

This topic was written by me as a result of communication with representatives of IT companies, who, having become interested in a series of articles about student projects , came to Mat-mekh in search of people who could be hired by the company. As a result, hiring has failed somewhat, since, according to employers, “recruiting programmers from student projects is possible only on a geographical basis.” It seems that the problem of recruiting qualified personnel exists and is quite acute. I tried to reveal my thoughts about where to get programmers or how to grow them.

Problem


In the article Straustrupa, the translation of which was in Habré , the old Björn describes the problem of IT education, focusing on Western education. It lies in the gap between academic education (what is called computer science) and training specialists for the needs of the IT industry.
Briefly by points:

Actually, I agree with all the allegations. I can give you an example that happened to my student in this session. One student did the job, his code was used and was in demand, but the teacher said that it didn’t pull on the coursework at all and as an example of a good coursework he brought a certain review of technologies where there is no need to write code at all.

Stroustrup in its article offers a solution, consisting in the certification of specialists. Perhaps this will help the cause, although in Russia it may turn into a regular exam. Stroustrup himself compares programmers with doctors. Indeed, why no one will allow a doctor who has not gained experience in the internship, and a programmer who writes a program responsible for some part of the same operation can write code only after having listened to lectures, following a couple of labs and writing a thesis work

Decision


In my opinion, when teaching programming, the same principle should be used as in the development: “ we write code! ” That is, they do not create a programmer, they become one, and for this they need to write more than one thousand lines of code.
But the question arises, where can students gain practice? Moreover, practice is needed precisely in the real industry. For doctors it is an internship, and for programmers it is ...
')
Student projects

In fact, the situation is not as bad as I just described it.
Many students go to an internship at an IT company, for example, it is difficult to find a student at the department of system programming who is not working (interning) in the fourth year. The IT industry is clearly growing and, faced with the problem of shortage of personnel, it began to set its own requirements for the educational process. And here it should be noted that many directors and managers of companies themselves began to teach at universities (even if from their own purely mercantile interests) and send them to teach engineers of their companies. Professionals from the IT industry not only began to recruit students for internships in their companies, but also thought about a more global task - the quality training of an IT specialist. After all, who else but they know what they want from students.

One of such attempts is student projects, for example, the aforementioned Mat-Mech . But links to projects from “VolgGTU” . The trend, as they say, is evident.

It is wonderful that such practices and people interested in them appear. But this approach has drawbacks. For example, as one of the major drawbacks, I would like to note that most of these projects are designed for one academic year. Thus, even completed (implemented) projects do not have time to test on real users, and therefore the project life cycle is not complete. Another big disadvantage is that this method involves geo-referencing to universities and project managers.

Opensource projects

A slightly different approach is to attract students to open source projects. This, for example, is famous for Google with its Google summer of code. Yes, and other major Western IT companies are also not lagging behind. Mark Mitchell, director of Mentor Graphics, who is responsible for working with open source projects, was an active contributor to GCC in the past.

The undoubted advantage of this approach is that students participate in a complex project that is actually used with their own development process, existing code, coding style, documentation, bugs and cockroaches . Moreover, since the project code is open, the future employer will always be able to evaluate the contribution of a particular student to it.
There are a lot of similar projects, you can choose for every taste and practically in any subject.

As proof, I will cite statistics from our project. We take only one metric, which is very primitive and does not fully reflect the quality of the developer, namely the number of lines of code modified by him. Here is an account on ohloh.net one student 4 course AntonKozlov . It can be seen that he has enough experience developing in the C language, because he has changed more than 30,000 lines of code. And although this is our most active student, but the rest are also quite recruited by 10,000, and these are not separate labs, but a complex composite project, in which quite a lot of developers are involved.

Thus, in my opinion, a good student in the course of training should participate in any open source project (and preferably several), where he can gain experience in developing industrial systems with the appropriate topics.

And even in the Russian-speaking territory there are quite a lot of open source projects of various types. For example, a recent review of open messengers . It is worth mentioning the open client direct connect EiskaltDC ++ , which is being developed, including in the Peterhof campus, along with the very Mat-mech. According to the article , one of the main developers of PostgreeSQL in Russia - Oleg Bartunov - “concurrently” astronomer and an employee of the SAI MSU. Here is an article describing opensource projects to which you can join.

I think these are not the only examples. And ideally, universities and IT companies should contribute to this movement. In the west, the opensource movement was born in the university environment, and companies successfully use the achievements of open source.

Conclusion


So, to the question “where to get a programmer,” I would answer: “search in open source projects”. This, by the way, is actively used by the same Google, which has found several participants in our project at ohloh.net . To the question “how to grow a programmer,” I would say that companies need to actively participate in open source thematic projects, perhaps by organizing joint projects with universities and other companies and involving students there.

Well, developers who have gained experience will probably know the differences between the abstract class and the interface .

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


All Articles