📜 ⬆️ ⬇️

How students become advanced programmers



Since the beginning of programming, many applications and libraries have been written, hundreds of algorithms have been implemented, more than one generation of programmers have been born and changed. A rather impressive share of specialists in this field in its rich history has been prepared by ITMO University .

The university in every possible way promotes the development of young talents - in order to become an advanced programmer, a student only needs to show a craving for knowledge.

In the 21st century, there has been a general increase in technological literacy. People who have time to follow the global trends, get more job opportunities. The US Bureau of Employment predicted the emergence of nearly 140,000 new high-tech jobs by 2022. Now there is a lot of talk about how to become a programmer, having a couple of books and access to useful Internet resources - you should pay attention to the benefits that a beginner programmer can bring to a specialized university.
')

Development from the first course


Programming is a complete area of ​​knowledge that requires engineering training. You can draw an analogy with the construction: you can build a country house with your own hands, without having a special education, and many sites can be written just by reading a couple of books on PHP, CSS and HTML. However, without having special knowledge, to build a huge multi-storey building will not work, as it will not work to write any serious project like a search engine.

Therefore, the first course of the university is extremely important - students receive fundamental knowledge, laying a solid foundation for all subsequent areas of study. For example, in the first year of undergraduate studies at the ITMO Department of Computer Technologies, students are taught the basics of computer architecture, computer arithmetic bases (number systems, operations with numbers, logic), computer physical bases (semiconductors, transistors, integrated circuits), the theory of algorithms (algorithms, structures data, information representation in computer memory and programming languages ​​(their tasks, levels of abstraction, principles and paradigms, as well as an overview of existing languages).

Fundamental knowledge in the chosen field, understanding of the structure of the chosen discipline (future ITMO programmers are taught a discipline that is called “Programming Paradigms”), as well as a systematic approach to learning - the basics that they try to inculcate from the first days of study not only in ITMO, but also in many other famous universities.

In particular, this approach is also practiced in the American MIT - Massachusetts Institute of Technology. According to Amy Guyomard from the Faculty of Mathematics, MIT needs a lot of work: “Just four days after the start of the semester, we were already given two sets of tasks and a written assignment. In addition, I need to prepare a 20-minute presentation. ” To study well, simple zeal is not enough. You need to structure your day, understand how your memory works, and learn to distinguish between knowledge and understanding. “I saw how many thought they understood the lecture material, but then they stumbled over the most simple things when assignments became more and more difficult,” said David Koh, who graduated from MIT in 2011. “You need to know the basics.”

When the basis is learned, teachers work with students who are invited from various companies, who not only give overview lectures, but also conduct practical classes where they understand the problems they face in their professional activities. In ITMO, cooperation is conducted with such companies as Mail.ru Group, Yandex, JetBrains, Transas, DevExperts, VisualSVN (in them, starting from the third year, students can do practical work and work on real projects). It helps children to get the most complete picture of the specifics of work and modern technologies, as well as acquire useful skills.

Mentoring was also widespread, including at ITMO University. A mentor is not just an adviser, it is a person who gives students their technical knowledge, wisdom, provides support and helps them even after graduation. Mentoring allows students to understand how studying at a university will help them realize their ambitions. The relationship between the student and the mentor develops gradually and can develop into a professional relationship when the student becomes a junior employee. However, it can happen and vice versa - the ward of the mentor begins to check his own ideas and moves away from the teacher - this is a sign that he can act alone and is ready for independent living, which is also good (it is not necessary to stop communicating with the mentor).



Additional resources and self-education


Most of the students entering technical colleges are familiar with programming for a long time: they participated in competitions or wrote projects for themselves. If suddenly programming turns out to be something new, then one of the basic languages ​​can be found on the introductory course of the university.

However, every month there are new versions of programs, applications and frameworks, the equipment is updated, so IT-specialists should be aware of the changes taking place. There are a lot of opportunities for self-education in computer science. You can try to make yourself a training program, choosing a special literature to your liking, since there are whole electronic libraries on the Internet - this approach is actively encouraged at ITMO University. For example, a number of materials from the Department of Computer Technology at ITMO University can be found here .

In addition to the literature in the network, there is a fairly large number of free open educational platforms (Stepic, oursera, Codecademy, Code School, Treehouse). You can find clear interactive lessons on all existing programming languages, during which you are invited to listen to theoretical material, and then perform practical tasks (ITMO recommends them to first-year students who did not receive a sufficient knowledge base at school and during preparation for entering the university).

For example, MIT's Open Courseware offers more than 2,100 courses on a wide variety of topics, including computer science with electrical engineering, and Coursera has exceeded 1 million students. As for the ITMO University itself, it has become one of the eight universities in Russia leading the online project “National Platform for Open Education”, where users can take the chosen course and (if necessary) reread it in their own university.

Now, on the Open Education platform, there are 4 courses of ITMO University - among them there are, for example, courses on web programming and management of mechatronic and robotic systems.

Not so long ago, another application was found for online courses - schoolchildren training. Such classes allow young people to begin acquaintance with the university program, which simplifies the subsequent adaptation and assimilation of the material. At ITMO University for this there are special full-time training courses - all this allows future students to get an idea of ​​how they will be trained in high school.

Self-education skills are incredibly important for future programmers, if only because information technologies are developing very quickly now. Signing up for online courses and reading additional (albeit affordable) literature is not the most exciting thing to do, which is why it is now popular in Russia to hold so-called “summer schools” modeled on Western universities, where students take part in various educational programs during the summer period, held on campus. At such courses, students relax and do their favorite business at the same time.

In isolation from (sometimes) routine university activities, students achieve great results. Despite the great popularity of summer schools as a format of additional education in the student environment, one of the most famous ITMO summer schools, the School of Laser Technology, is focused on high school students and helps not only to deepen their knowledge of physics and optics, but also to determine their future profession.

Olympiad and training


However, the most important in the learning process is not so much listening to lectures and reading books, as solving practical problems. Most advanced programmers are interested in computer science since high school. Participation in online competitions, starting with the seventh (or tenth) class, provides a gradual mastery of the material, which leads to the highest results at all subsequent competitions of regional and world levels. Systematic participation in competitions allows you to consolidate the knowledge and skills that are later used in solving problems and come in handy in the process of training and work. Olympiads are organized by both higher education institutions and regional education authorities and other organizations. They are also held under the auspices of ITMO. Winners and prize-winners of olympiads for schoolchildren receive benefits when they enroll in Russian universities.

Enrolling in college, first-year students are just beginning their journey. In ITMO, advanced “pervaki” are taught by the same advanced teachers and professors, but if they suddenly have a little university program, then the university hosts a huge number of additional activities: training in sports programming and data analysis, various thematic meetings, conferences and seminars, and also other projects. In addition, a platform is being developed for the competition.

Moreover, the Olympiad does not have to be strictly mathematical or scientific. It is very easy to add elements of the game to a serious competition: the same MIT holds a Battlecode contest that lasts four weeks. During this time, teams of no more than four people need to write and calibrate the artificial intelligence that will lead the virtual soldiers in 3D space. Final BattleCode always collects in the audience a few hundred students.



Another example of what you can learn with passion is the PokerBots competition, during which, as you can guess, the teams need to program the bot to play poker in one month. At the end of time, all the programs converge at one “table” for an exciting poker tournament.

In general, the concept of competition came into the world of science from sports, art and military affairs. By analogy with the Olympic Games, in the 18th century, European academies organized peculiar competitions with prizes in order to spur young scientists to solve important mathematical and scientific problems. Since competition is a part of our culture, and the thirst for rivalry is in our blood, such Olympiads help students achieve high results and prepare them for independent living.

"School" of winners in olympiads


Team programming is an intellectual sport, like chess, where three participants must be able to competently coordinate their actions, distribute functions and tasks, maintain maximum concentration and not lose self-control.

ITMO University has not only the experience of programming competitions, but also the experience of winning them. The Department of Computer Technologies has been working for many years using a proven and well-established scheme: working with promising schoolchildren, special classes with students, creating conditions for the self-realization of graduates. This approach has allowed the university to repeatedly win in many Russian and world programming championships.

In 2015, Peter once again honored a team of programmers consisting of Gennady Korotkevich, Artem Vasilyev, Boris Minaev and trainer Andrei Stankevich. They won the prestigious ACM ICPC world championship, which is growing in popularity every year.



Number of ACM ICPC participants

ITMO teams became world champions 6 times, while no university could win more than three. Participants were required to offer a solution to thirteen problems in 5 hours. The IMTO team set a new record in the framework of the championship, having solved all the tasks correctly - so far no one has managed to do this. In 2015, the top four leaders, besides ITMO, also included teams from Tsinghua University (China), University of Tokyo (Japan), Moscow State University. Mv Lomonosov (Russia).

Tasks can be found on the competition sites; very often their analyzes are published in the same place ( here and here ).

For the winner of 2015, Gennady Korotkevich from the ITMO University team, this is the second medal at the ACM ICPC. He won the first in 2013, together with Mikhail Kever and Niyaz Nigmatullin. According to the rules of the championship, one student can take part in the final only twice. At his first international Olympiad in 2006, he won silver (only 6 points were missing to the first place) and since that time he hasn’t gotten out of prizes - Gennady became the first winner in history of all prestigious world competitions in sports programming held by significant companies. including foreign ones: Facebook Hacker Cup, Russian Code Cup, Kotlin Challenge and Topcoder Open. In the summer of 2015, Gennady Korotkevich managed to become a three-time winner of the World Championships Yandex. The algorithm and two-time champion of Google Code Jam.

There is an opinion about programmers that they are not interested in anything other than a computer, but tennis is interesting to Gennady, and in between classes he likes to play football. Generally, playing sports, especially command sports, allows us to improve relations between team members, including, oddly enough, in programming teams as well.

Of course, in the life of a programmer, sport is an optional component, but nonetheless important: a general sociological survey in the United States showed that there is a relationship between sports and the level of intelligence. People were asked when they played sports the last time, and what they did, and also asked to pass an IQ test.



The graphs show that people who were actively involved in sports and participated in sports competitions coped better with the IQ test.

Here is a good video on this topic:



Current activities


ITMO University is not going to slow down - it is necessary to find and inspire students and young professionals, to help them improve and reach new heights. On December 5-6, the twentieth semifinal of the student team world programming championship took place (a similar event for school students took place on December 12-13). Among the 226 teams, 12 finalists were identified, including ITMO students. The final of the championship will be held in May 2016 in Thailand - the ITMO team of programmers at the university will again fight for the championship.

Follow the announcements on the ITMO website: neerc.ifmo.ru and neerc.ifmo.ru/school

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


All Articles