When I finished school, my computer science teacher at the last lesson said the following words: “The longer you study and the later you start working, the higher your salary you can count on.” Since then, a lot of water has flowed under the bridge, and I managed to change my own opinion on this issue several times, but in the light of recent posts about the problems of education in IT, I would like to discuss this topic again.
Companies usually need two types of programmers. Some are “working hands”, i.e. those who are able to do well the task assigned to them, and the second are “workers' brains”, i.e. those who can generate new ideas, propose new approaches, develop new directions.
As for the first category, in order to work there it can really be enough for a couple of institute courses and books before going to bed. With the second category, everything is more complicated ... The fact is that specialists of this level should have knowledge broader than is required for their direct work.
Here's how to train specialists of the second category and I want to talk today. And start with the basics - with a bachelor degree.
If you try to search for Habre in the word "bachelor", then from the results you should have the following impression - a) a normal bachelor is only abroad, and b) in Russia everything is bad.
In this post I will not discuss foreign universities (although it seems to me that everything is not so smooth there too), but I want to talk about what is wrong with the undergraduate degree in IT in Russia and in particular in St. Petersburg.
')
Problems.
One of the main problems of modern IT education is its isolation from the IT industry. The reasons for this are quite simple - the business is weakly cooperating with universities, and educational programs are outdated by 10 years.
The first problem is gradually being solved, although in most cases companies are ready to offer universities a platform for research. However, they can influence the training program very poorly, since the set of objects and the number of hours are rigidly set for most subjects. In Moscow, this is easier, and there ABBYY and Yandex manage to teach students their programs based on MIPT. In St. Petersburg (and the rest of Russia) everything is more complicated ...
The second problem is how to teach. A significant part of the subjects is weakly interconnected and even worse attached to the practical tasks and skills needed in the work. The teaching staff for the most part is not working, but is engaged exclusively in teaching, and the material of their lectures repeats what they read ten years ago.
What does all this lead to?
As a result, the overwhelming majority of students after the second or third year go to work. First, because it is impossible to live on a state scholarship (about 2-3 thousand rubles). And, secondly, because the knowledge that they acquire during work, are much more popular and useful than what they are taught at the university.
What to strive for?
First of all, it is necessary to make the student really learn. And I wanted this. In my opinion, if a person receives a bachelor's degree, then this should be enough for him to be able to get a job as a programmer and deal with tasks from a fairly wide range of areas. And it is this “breadth of knowledge” that the university should give.
What are we doing at our university?
St. Petersburg Academic University , where I work, is quite young. But over the 12 years of its existence, he managed to become a “national research university” (among the first 12), win the mega-grants competition and build a high-quality master's degree.
However, it is necessary to develop further and in this connection, realizing all the problems described above, we decided this year to open a bachelor's program at St. Petersburg Academic University.
How are we better?
- Our training program was developed jointly with the management of our partner companies: JetBrains, Yandex, Parallels. At the same time, we tried to remove as much “extra” items from the program as possible so that more hours were left on specialized items.
- Profile subjects are read by teachers - representatives of the IT industry.
- We recruit only 30 people a year. This gives us the opportunity to work individually with each student not only in terms of the educational process, but also in terms of scientific work.
- We pay a significant stipend (about 15 thousand rubles). We also sponsor trips to numerous conferences and schools.
- The main focus of the training is on practical work. As a result, every student every practice takes place, including in the largest companies in St. Petersburg. At the same time, we try to make sure that during the course of study, students would be able to try themselves in various areas of programming.
- We regularly conduct student surveys to improve the quality of our programs and the learning process. Such surveys allow us to change courses that are not read at the proper level or outdated to more modern ones.
What are we learning?
As in the magistracy, we have three specializations (their number will increase with time).
- Education in the specialty “Theoretical Informatics” is conducted with the direct participation of the staff of the Laboratory of Mathematical Logic of the POMI RAS, as well as the algorithmic laboratory created under the guidance of the winner of the 2014 mega-grants program professor F.V. Fomina (University of Bergen, Norway).
- The program of the specialty “Software Development” is based on modern international standards and based on the results of consultations with experts from major IT companies. Students are required to participate in the development of software projects under the guidance of industry consultants. Many student projects are conducted as part of the actual production process of the university's partner companies - JetBrains, Yandex, Parallels, EMC, SimEx
- The program "Algorithmic Bioinformatics" is open at the laboratory of algorithmic biology, headed by Professor Pavel Pevzner (University of California San Diego). Students take part in solving real bioinformatics problems: developing algorithms and programs for assembling genomes, solving problems in the field of computational proteomics and mass spectrometry.
At our university, we are trying to train specialists possessing not only a broad outlook, but also serious practical skills. And how do you achieve the same?