How students become advanced programmers



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

    The University in every way contributes to the development of young talents - 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 follow global trends get more job opportunities. The U.S. Bureau of Employment has 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 - it is worth paying attention to the benefits that a specialized university can bring to a novice programmer.

    First year development


    Programming is a complete area of ​​knowledge that requires engineering training. You can draw an analogy with construction: you can build a country house yourself, without special education, and many sites can be written just by reading a couple of books on PHP, CSS and HTML. However, without special knowledge, it will not work to build a huge multi-storey building, just as it will not be possible 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 the undergraduate department of computer technology at ITMO University, students are taught the basics of computing systems architecture, the arithmetic basics of computers (number systems, operations with numbers, logic), the physical fundamentals of computers (semiconductors, transistors, integrated circuits), the theory of algorithms (algorithms, structures data, the presentation of information 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 the structure of the chosen discipline (future ITU programmers are taught a discipline called “Programming Paradigms”), as well as a systematic approach to learning - the foundations that try to instill from the first days of study not only in ITMO, but also in many other famous universities.

    In particular, this approach is also practiced at the American MIT - Massachusetts Institute of Technology. According to Amy Guyomard from the Faculty of Mathematics, MIT needs to work hard: “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 people thought they understood the lecture material, but then stumbled on the simplest things when the tasks got harder,” says David Koh, who graduated from MIT in 2011. “You need to know the basics.”

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

    Mentorship was also widespread, including at ITMO University. A mentor is not just an adviser, he is a person who transfers his technical knowledge, wisdom to students, provides support and helps them even after graduation. Mentoring allows students to understand how studying at the 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, the reverse can also happen - the mentee's mentee 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 an independent life, which is also good (stopping communication with a mentor is completely optional).



    Additional resources and self-education


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

    However, new versions of programs, applications and frameworks are released every month, equipment is updated, so IT specialists should be aware of the changes. The possibilities for self-education in the computer sciences are now enormous. You can try to create a training program for yourself by choosing special literature for your liking, since there are entire digital libraries on the Internet - this approach is also actively encouraged at ITMO University. For example, a number of materials from the ITMO University Department of Computer Technology can be found here .

    In addition to literature, there are quite a number of free open educational platforms on the network (Stepic, Сoursera, Codecademy, Code School, Treehouse). On them you can find understandable interactive lessons in all existing programming languages, during which it is proposed to listen to theoretical material and then complete practical tasks (in ITMO they are recommended to first-year students who have not received an adequate knowledge base at school and during preparation for entering university).

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

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

    Not so long ago, another application was found for online courses - the preparation of students. Such classes allow young people to begin acquaintance with the university program, which simplifies the subsequent adaptation and assimilation of the material. For this purpose, ITMO University also has special face-to-face training courses - all this allows future students to get an idea of ​​how training will be conducted at the university.

    Self-education skills are incredibly important for future programmers, if only because information technologies are developing very fast. Enrolling in online courses and reading additional (albeit accessible) literature is not the most exciting activity, so now in Russia holding the so-called “summer schools” similar to Western universities is gaining popularity, when students take part in various educational programs in the summer, held on campus. At such courses, students relax and do what they love 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 for continuing education in the student community, one of the most famous summer schools of ITMO, the Laser Technology School, is aimed at high school students and helps not only to deepen their knowledge of physics and optics, but also to determine their future profession.

    Olympics and training


    However, the most important thing in the learning process is not so much listening to lectures and reading books, but rather solving practical problems. Most advanced programmers have been interested in computer science since school. Participation in online olympiads, starting from the seventh (or tenth) grade, provides a gradual mastery of the material, which leads to the highest results at all subsequent olympiads of regional and world levels. Systematic participation in contests allows you to consolidate knowledge and skills that are later applied in solving problems and come in handy during training and work. Olympiads are organized by both higher educational institutions and regional educational bodies and other organizations. They are heldand under the auspices of ITMO. Winners and prize-winners of olympiads for schoolchildren receive benefits upon admission to Russian universities.

    Having entered a university, freshmen are just starting their way. In ITMO, advanced “first-time students” are taught by the same advanced teachers and professors, but if they suddenly find themselves having a little university program, then a lot of additional events take place at the university: training in sports programming and data analysis, various thematic meetings, conferences and seminars, and also other projects. In addition, a competition platform is being developed.

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



    Another example of the fact that you can learn with excitement is the PokerBots competition, during which, as you might guess, teams need to program a bot for poker in one month. At the end of time, all programs converge at one "table" for an exciting poker tournament.

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

    "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 their composure.

    ITMO University has not only experience in conducting programming competitions, but also experience in winning them. For many years, the Department of Computer Technology has been working according to a proven and well-established scheme: working with budding students, 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 again honored the teamprogrammers composed of Gennady Korotkevich, Artem Vasiliev, Boris Minaev and coach Andrei Stankevich. They won the prestigious ACM ICPC World Championship, the popularity of which is growing every year.



    Number of participants in ACM ICPC

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

    The tasks can be found on the competition sites; very often their analyzes are published there ( here and here ).

    For the 2015 medalist Gennady Korotkevich from the ITMO University team, this is the second medal at ACM ICPC. He won the first in 2013 with Mikhail Kever and Niyaz Nigmatullin. According to the rules of the championship, one student can take part in the finals only twice. At his first international Olympiad in 2006, he won silver (only 6 points were missing before the first place) and since then has not “crawled out” of prizes - Gennady became the first ever winner of all the prestigious world sports programming competitions held by iconic companies, including foreign ones: Facebook Hacker Cup, Russian Code Cup, Kotlin Challenge and Topcoder Open. And in the summer of 2015, Gennady Korotkevich managed to become a three-time winner of the Yandex.Algorithm World Cup and a two-time champion of Google Code Jam.

    There is an opinion about programmers that they are not interested in anything except the computer, but Gennady is interested in tennis, and in between classes he likes to play soccer. In general, playing sports, especially team types, allows you to establish relationships between team members, including, strangely enough, in programming teams.

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



    The graphs show that the IQ test was better done by people who were actively involved in sports and participated in sports.

    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, help them improve and reach new heights. On December 5-6, the twentieth semi-final of the student programming team world championship was held (a similar event for students in schools was held on December 12-13). Among the 226 teams, 12 finalists were identified, including students of ITMO University. The final of the championship will be held in May 2016 in Thailand - in it the team of ITMO University programmers will again fight for the championship.

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

    Also popular now: