Что кроме «Тетриса» создали российские программисты? Рейтинг HackerRank: самые лучшие программисты — в Китае, России и Польше.

Многие могли бы предположить, что в Соединенных Штатах. В конце концов, США является домом таких светил программирования, как Билл Гейтс, Кен Томпсон, Деннис Ритчи и Дональд Кнут. Но та же Индия славится своими университетами, например, Индийским институтом технологий (IIT), а хакеры из России считаются весьма эффективными. Есть ли способ определить, в какой стране программисты лучше?

Исследование HackerRank помогло ответить на этот вопрос.

HackerRank регулярно проводит десятки тысяч соревнований по программированию для разработчиков, чтобы улучшить их навыки в кодинге. Сотни тысяч разработчиков со всего мира участвуют в соревнованиях по различным языкам и областям программирования: от Python до алгоритмов безопасности и распределенных систем. Разработчиков оценивают и размещают в рейтинговой таблице, учитывая скорость и точность выполнения задач.

По данным HackerRank, самые талантливые программисты живут в России и Китае. Китайские программисты обгоняют все остальные страны по математике, функциональному программированию, а также проблемам структур данных, в то время как русские доминируют в алгоритмах - самой популярной и самой конкурентной сфере. Хотя Соединенные Штаты и Индия обеспечивают наибольшее число участников соревнований, в рейтинге они занимают только 28 и 31 места соответственно.

Какие области наиболее популярны?

HackerRank предлагает разработчикам принять участие в 15 соревнованиях в различных сферах, но некоторые из них более популярны, чем другие. В таблице ниже представлена доля завершенных соревнований для каждой области программирования.

Самая популярная на сегодня область программирования - алгоритмы. В ней соревнуются около 40% всех разработчиков. Эта область включает сложные задачи по сортировке данных, динамическому программированию, поиску ключевых слов и другие основанные на логике задания. Для участия в таких соревнованиях разработчики могут использовать любой язык, но их выбор может частично объяснить, почему тот или иной язык так популярен. (Алгоритмы также имеет решающее значение для технических интервью, по результатам которых программисты могут быть приняты на работу). С большим отрывом в процентном соотношении, второе и третье место занимают задачи на Java и структуры данных, на которые приходится примерно по 10% участников. Распределенные системы и безопасность — наименее популярные области.

Итак, на основе результатов этих соревнований программисты каких стран показали наилучшие результаты?

Для ответа на этот вопрос был взят средний балл каждой страны во всех областях. Прежде чем найти среднее значение, оценки были стандартизированы для каждой области (путем вычитания среднего из каждого счета, а затем делением на стандартное отклонение), что дало так называемый показатель Z, или стандартный показатель. Это позволило сравнить схожие характеристики отдельных показателей в разных областях программирования, даже с учетом того, что некоторые области являются более сложными, чем другие. Затем Z- баллы представили в таблице от 1 до 100 для легкой интерпретации.

В таблице ниже представлены данные для 50 стран с наибольшим числом разработчиков на HackerRank. Люди из этих стран приняли участие в тысячах соревнований (минимум 2000).

Поскольку Китай набрал самый высокий балл, китайские разработчики занимают первую позицию списка со счетом 100. Но Китай выиграл с минимальным преимуществом. Россия набрала 99,9 из 100, в то время как Польша и Швейцария закрывают топ рейтинга с баллами в районе 98. Пакистан, расположившийся на 50 месте, набрал всего 57,4 балла из 100.

Две страны, от которых в соревнованиях принимает участие наибольшее число разработчиков, Индия и США, расположились даже не в верхней половине списка. Индия занимает 31 место с общим счетом 76, а Соединенные Штаты - 28-ое, со счетом 78.

Какую страну представляют лучшие разработчики в конкретных областях?

Хотя Китай превзошел остальные страны по средним показателям, он не доминирует по всем направлениям. Какую страну представляют лучшие разработчики в конкретных областях программирования? Рассмотрим ведущие страны для каждой области.

Неудивительно, что Китай превосходит остальные страны в некоторых областях. Китайские разработчики вне конкуренции в области структур данных, математики и функционального программирования.

С другой стороны, Россия доминирует в алгоритмах - самой популярной области. Здесь же Китай и Польша занимают второе и третье место соответственно.

Чем объясняются уровни успешности разных стран в разных областях? Одно из возможных объяснений связано с тем, что, например, русские программисты более склонны к участию в соревнованиях, связанных с алгоритмами и следовательно больше практикуются в этой области, в то время как китайские разработчики чаще решают задачи по структурам данных.

Было также проведено сравнение, как разработчики из каждой страны распределяют свое время между различными типами заданий, и затем — какие области программирования предпочитает обычный участник HackerRank. Это позволило выяснить, какие страны чаще, чем остальные, оказываются способны пройти тест в той или иной области.

Страны и их вероятность пройти тест в определенной области. Страны со значительно высоким или низким процентом выполнения задач в определенной области. Столбцы слева-направо: область программирования; высокая вероятность; низкая вероятность.

Из приведенной выше таблицы следует, что китайские программисты участвовали в соревнованиях по математике гораздо чаще, чем можно было ожидать, учитывая предпочтения среднестатистического разработчика. Это помогает объяснить, как они заняли первую строчку рейтинга в этой области. А, например, чешские разработчики проявляют огромный интерес к соревнованиям по Shell, области в которой они занимают первое место.

Но помимо этих двух примеров, кажется, в таблице прослеживается мало общего между выбором той или иной страной определенного типа соревнований и ее деятельностью в этой сфере.

Интересно также узнать, имеют ли определенные страны предпочтения в языках программирования? Правда ли, что C++ — наиболее популярный язык в Индии? Или что большинство мексиканцев выбирают Ruby?

Следующая диаграмма показывает долю соревнований на каждом из языков по странам.

В целом, разработчики разных национальностей участвуют в Java-соревнованиях чаще, чем на любом другом языке программирования (с некоторыми исключениями, такими как Малайзия и Пакистан, где предпочитают C++, и Тайвань, где доминирует Python). Шри-Ланка занимает первое место среди стран, предпочитающих Java. Индия, которую представляет наибольшее число разработчиков на HackerRank, занимает 8 место.

Какая страна никогда не проигрывает?

Когда разработчик подает заявку на участие в соревновании HackerRank, до того как показать некий прогресс, он имеет 0 баллов. Швейцария имеет самый низкий процент разработчиков с нулевым показателем, что позволяет назвать швейцарских кодеров самыми усердными программистами в мире.

Какая страна победит на Олимпийских играх по программированию?

Каждый день разработчики по всему миру конкурируют друг с другом, чтобы стать следующим Гейтсом или Кнутом. Если провести Олимпиаду среди разработчиков, на основании рассмотренных выше данных, можно предположить, что Китай возьмет золото, Россия - серебро, а Польша - бронзу. Хотя они, безусловно, заслуживают похвалу уже за те результаты, которые демонстрируют сейчас, в то время как США и Индия не входят даже в топ-25.

Чем-то вы пользовались 100% и даже не знали, что это сделали «наши».

Идею этой статьи мне подал читатель в своем комментарии. Svergssen , большое спасибо за поддержку, но за Ваши слова о российских разработчиках обидно очень:

Неудивительно, что про российских разрабов даже в России не слышали

Peper- привел в ответ ему пару примеров:

Яндекс со всеми его сервисами, куча отличных мобильных банков, Cut the Rope, Lost Socks, Punch Club…

Остальные промолчали. Возможно, кто-то из читателей не представляет сколько действительно важных и востребованных в разных странах мира продуктов сделано российскими специалистами. Этот материал расскажет о самых значимых их достижениях и поднимет ваши патриотические чувства на новый уровень.

1. Nginx

Первая версия этого веб-сервера была разработан Игорем Сысоевым (родился в 1970-м, выпускник Бауманки) в 2002-2004 годах. В настоящий момент на нем работает каждый третий сайт в мире !.

2. Win RAR

Самый популярный архиватор под Windows в мире был создан братьями Евгением и Александром Рошалями в 1995 году. С тех пор разные версии этого приложения установили сотни миллионов пользователей по всему миру . Помимо приложения, братьями также был создан сам архивный формат RAR.

3. 7-Zip

А этот более молодой, но не менее известный архиватор был создан Игорем Павловым в 1999-ом году. Имеет версии для большинства операционных систем. Даже для React OS. Число людей, которые установили программу также исчисляется сотнями миллионов.

4. FAR Manager


С радостным удивлением обнаружила, что последняя версия этого файлового менеджера датируется 2016-м годом! А ведь он был создан вышеупомянутым Евгением Рошалем еще в 1996 году. В нем много общего со старинным Norton Commander, но тот перестал развиваться спустя два года и FAR Manager приобрел всемирную популярность (наряду с Total Commander и прочими аналогами).

4. STL

Standard Template Library (библиотека стандартных шаблонов) для C++ была разработана Александром Степановым (совместно с Менг Ли) в 80-ых годах и вскоре перестала быть сторонним дополнением и вошла в стандарт языка, который является третьим по популярности в мире (согласно Tiobe Index за июнь 2016 года). На C++ написаны многие из самых популярных приложений, включая Microsoft Office и линейку продуктов Adobe (Photoshop, InDesign, Premiere Pro). Да, основную роль в создании языка сыграл Бьерн Страуструп, но Александр Степанов тоже внес немалый вклад, создав STL.

5. IDA

Иногда случается, что чужое приложение работает неправильно и надо сделать собственную версию с несколько измененным исходным кодом. Чаще всего такая необходимость возникает, если программа требует ввести лицензионный ключ. Чтобы посмотреть исходный код чужой программы, необходимо провести процедуру дезассемблирования (технические подробности гуглить по запросу Reverse Engineering, рекомендую начать со статьи на Lurkmore).

Первая версия IDA (interactive DisAssembler) был разработана более 15 лет назад Ильфаком Гильфановом (выпускник МГУ). Это довольно узкоспециализированная программа, но она практически не имеет аналогов (мой очень давний опыт показал, что другими просто невозможно пользоваться) и является монополистом в своей нише. Помимо крекеров IDA также применяется вирусными аналитиками.

6. Антивирус «Касперского»

Лаборатория Касперского была основана в 1997 году одновременно с выпуском первой версии своего антивируса. С тех пор ведет активную деятельность по защите мира от малвари, разрабатывая защитное ПО для разных платформ и пополняя базы вирусов. Компания продает свои продукты практически во всех странах мира и имеет годовой оборот более полумиллиарда долларов.

7. ABBYY Lingvo/FineReader

Свой первый переводчик с французского языка основатель компании Давид Ян разработал еще в 1989 году. В 1993 году появилась программа для распознавания текста и пошло-поехало. Сейчас продукты ABBYY могут распознавать/переводить текст на десятках языков мира, компания продает свои продукты в большинстве стран и выручает ежегодно по 150-200 миллионов долларов. Часть своих доходов фирма инвестирует в создание искусственного интеллекта и поддержку талантливых студентов.

8. Продукты Acronis

Acronis Backup (резервное копирование данных), Acronis Disk Director (менеджер дисковых разделов), Acronis OS Selector (запуск нескольких ОС на одном компе), Acronis True Image (восстановление данных) - софт этой компании был на каждом пиратском сборнике «золотого софта» лет 7-10 назад. Эти незаменимые программы популярны во всем мире, на пике популярности в 2008-ом году оборот компании достигал 100 миллионов долларов.

Основатель компании - известный российский бизнесмен Сергей Белоусов, который также возглавляет компанию Parallels и инвестиционный фонд Runa Capital, давший путевку в жизнь десяткам стартапов по всему миру (например Lingualeo).

Веб-сервисы

Практически во всех странах самой популярной поисковой системой является Google. Лишь в Китае его обгоняет Baidu, в Южной Корее Naver и Яндекс в России. Большое спасибо компании за наличие собственной поисковой системы, почтового сервиса, облачного хранилища, карт и еще десятков полезных сервисов. Редкое государство может похвастаться таким богатством. Помимо населения России сервисы Яндекса служат жителям большинства стран СНГ.

Отечественных веб-сервисов невероятное количество. Практически для каждого годного западного сайта есть российский аналог. Но каких-то уникальных идей сайтов, которые были придуманы и реализованы в России, а потом стали действительно популярны во всем, мире я припомнить не могу.

В СССР была довольно развита разработка ПО. Большинство программ/игр писалось для себя и распространялось в частном порядке, но был и известный в широких кругах софт. Во-первых, это клон файловой оболочки Norton Commander - Volkov Commander и текстовый редактор «Лексикон». Но они были предназначены для местного населения.

Настоящей сенсацией на весь мир стал «Тетрис», разработанный Алексеем Пажитновым в 1984-м году и реализованный для IBM PC 16-летним школьником Вадимом Герасимовым (ныне инженером Google). Игра быстро пошла по рукам в Москве, потом была вывезена за границу и постепенно дело дошло до покупки прав на ее распространение компанией Microsoft (не у разработчиков, а у венгерского бизнесмена). Что заработали советские программисты на разработке мегапопулярной «времяубивалки» история умалчивает.

Также говоря об СССР, стоит отметить «Каиссу» - первую в мире чемпионку по шахматам среди компьютерных программ. Можно было бы вспомнить достижения советских ученых в области информатики, но это уже немного другая тема.

Спортивное программирование

Почему так часто можно услышать фразу «Российские программисты - лучшие в мире»? Текст выше показал, что наши способны на многое, но все же они явно не лучшие. Хорошую репутацию российскими кодерам создают участники профессиональных конкурсов.

Новости о победах российских команд/индивидуальных участников в международных соревнованиях появляются в новостных лентах мира регулярно. В первую очередь, благодаря успехам этих ребят многие люди считают, что круче русских никого нет. По количеству побед в соревнованиях наши, действительно, впереди всех.

Фаната спортивного программирования видно издалека. Если пользуетесь общественным транспортом, то советую присматриваться к одежде и аксессуарам бородатых парней с рюкзачками. Часто они получены в качестве приза за победу в соревнованиях или в память об участии в крутой международной конференции. Иногда прочитаешь надпись и думаешь: «Какие мужики в трамваях ездят!».

Github

Обзор мифов о программировании, пугающих, вводящих в заблуждение и мешающих развиваться новичкам и опытным разработчикам.

Сфера информационных технологий для непосвященного кажется загадочной и непостижимой. Любая тайна рано или поздно начинает обрастать стереотипами и мифическими образами, не избежало этой участи и программирование. В Волшебной Стране IT, где всегда тепло, а деньги растут прямо на деревьях, появились новые герои и артефакты: Всесильный Хакер, Идеальный Язык и Загадочная Женщина-Программист, подобная коту Шредингера .

Тру-программист, какой он

Существует множество мифов о программировании, которые приоткрывают завесу тайны над таинственным образом Настоящего Программиста. Этот герой предстает в разных обличьях, но его сверхспособности не подвергаются сомнению.

Настоящий Программист – это супермен, способный одним щелчком пальцев разобраться со злыми вирусами, с помощью рентгеновского зрения поставить диагноз заболевшему компьютеру и тут же на месте починить его силой мысли.

Настоящий Программист в миру – это бородатый человек в толстом свитере с кофейными пятнами. В ночи он крадется к компьютеру, чтобы немного покодить в тишине, а днем прячется от людей по темным углам.

Миф 1. Программисты не любят общаться

Основной сюжет большинства мифов о программировании – герой-социофоб, замкнутый в себе и неохотно идущий на контакт с внешним миром. Действительно, специфика разработки ПО такова, что специалист много времени проводит один на один с компьютером, сосредоточенно создавая код.

Однако это не мешает программисту тесно общаться со своими коллегами, обсуждать рабочие вопросы, посещать разнообразные конференции и просто тусоваться с друзьями. В этой сфере очень ценится теплая атмосфера и сплоченность коллектива. Считается, что чем комфортнее человеку работать, тем лучший продукт он способен создать.

Миф 2. У программистов скучная жизнь

По распространенному мнению, программисты не имеют хобби, не занимаются творчеством, все свое время проводят за монитором компьютера, питаясь полуфабрикатами быстрого приготовления. Вступая на тропу программирования, насмотревшийся стереотипных фильмов новичок опасается, не станет ли он таким же.

На самом деле программисты, как и люди любой другой профессии, разные. У каждого свои увлечения: танцы, рисование, экстремальный спорт, путешествия. Есть у них только одна общая беда – нехватка времени на все эти радости.

Миф 3. Хороший программист может все

В десятках мифов о программировании главный герой самоотверженно решает проблемы, прямо или косвенно связанные с компьютером.

Основные суперсилы тру-программиста:

  • , систем безопасности банков и государственных предприятий;
  • починка всех возможных неисправностей ПК, ноутбуков, принтеров и прочего периферийного оборудования;
  • установка и настройка различных операционных систем.

Конечно же, это не так. В сфере информационных технологий существует огромное количество направлений деятельности, не связанных напрямую друг с другом: кто-то работает с «железом», кто-то – с программами, кто-то – с сетями. Не станем же мы требовать от высококлассного педагога младшей школы провести ребенку операцию по удалению гланд только потому, что объект манипуляций тот же самый?

Миф 4. Программисты умеют только писать код

Создатели подобных мифов о программировании несомненно очень далеки от этой сферы и не представляют, как происходит процесс разработки.

Проблемы, решаемые компьютерными программами, далеко выходят за область информационных технологий. Взять хотя бы инструменты для бухгалтерского учета: чтобы создать качественный продукт, программист должен в общих чертах разбираться в этой предметной области.

Идеальным представляется вариант сотрудничества профессионального бухгалтера, который знает, чего он хочет, и кодера, который разбирается в программировании и знает, как объяснить машине, что нужно делать. Увы, так это не работает.

Бухгалтер в большинстве случаев слишком далек от компьютерных наук и просто не способен в деталях объяснить, чего он ждет от продукта. Вот и приходится программисту самостоятельно вникать в экономические понятия и схемы.

Миф 5. Тру-программист все пишет с нуля

Получив новую задачу, хороший специалист садится за компьютер и создает всю архитектуру на пустом месте. Классный программист не нуждается в чужой помощи. Он абсолютно уверен в каждом элементе своей программы и может поручиться за его бесперебойную работу.

В этом случае не появилось бы 90% всех существующих программных продуктов, работа которых основана на других программах, библиотеках и фреймворках. В программировании господствует идеология разделения труда и переиспользования уже готовых компонентов системы, модульность. Это позволяет в разы упростить и ускорить разработку, повышая ее качество.

Как стать тру-программистом

Дорога к вершинам профессионального мастерства настолько таинственна и неопределенна, что народное творчество предлагает сразу несколько мифов о программировании с противоположными вариантами развития событий.

Миф 6. Долгий тернистый путь

В программировании уже давно преобладают самоучки. Все больше профессионалов вырастает из людей, которые никогда не посещали лекций по процедурам языка Паскаль .

К сожалению, университет, каким бы хорошим он ни был, не в состоянии сделать из незаинтересованного студента мотивированного работника. А заинтересованный человек и без вуза найдет, где и чему научиться. В сфере информационных технологий работодатели прекрасно об этом осведомлены.

Это, однако, не отрицает пользы академического образования в области программирования. Глубокое понимание базовых концепций, большой опыт решения задач – великолепный фундамент для будущей работы.

Миф 7. Легкий приятный путь

Стать программистом можно за 30 минут в день. Достаточно пройти какие-нибудь курсы или посмотреть пару видеоуроков. Это очень просто, почему все люди еще не начали писать код?

Мы уже перестали верить в то, что можно за неделю выучить иностранный язык. В программировании ситуация ничуть не радужнее. Знания + реальный опыт – это единственно возможный рецепт успеха. Набираясь опыта по 30 минут в день, придется потратить долгие годы.

Путь к профессиональным высотам никогда не заканчивается. Отучившись в университете, окончив курсы, прочитав кучу учебников, нельзя останавливаться. Хороший программист учится всю жизнь.

Миф 8. Все курсы одинаковые / Идеальный курс

На просторах мировой сети и на полках книжных магазинов можно найти сотни самых разнообразных учебников, курсов, шпаргалок по программированию. Конечно же, они отличаются друг от друга. Как минимум, у них разные авторы со своей манерой изложения, подачей и выбором материала. И это замечательно, потому что все люди учатся по-разному.

Нет суперкурса, который подошел бы каждому ученику. В поисках идеального по всем параметрам материала можно прошерстить много неподходящих, это совершенно нормально.

Поэтому большинство курсов предлагают слушателям короткий бесплатный пробный период, и этой возможностью нужно пользоваться.

Миф 9. Начинать следует со сложных языков и концепций

Неизвестно откуда взялся этот нелогичный миф, однако он довольно распространен среди новичков в программировании.

Особенно полезны эти навыки для детей. Да-да, уже с 7-8 лет ребенок вполне способен понять базовые концепции и алгоритмы. Для детей даже существуют и среды разработки, например, Scratch. Подобные занятия развивают логику, память, аналитическое мышление.

Миф 18. Женщины не могут быть хорошими программистами

Рождение этого стереотипа кажется особенно странным, если вспомнить, сколько талантливых женщин-программистов знает история.

Дело в том, что представительницы прекрасного пола реже мужчин выбирают такой профессиональный путь, поэтому их в принципе меньше в этой сфере. Но объективных факторов для того, чтобы заинтересованная женщина не добилась успеха на стезе программирования, не существует.

Языки программирования

Когда преодолены страхи, пройден начальный этап обучения, и адепт уже решительно готов стать тру-программистом, на его пути встают новые стереотипы.

Миф 19. Все языки одинаковые / разные

Языки программирования похожи между собой, но одинаковыми их никак нельзя назвать.

Сходство объясняется базовыми концепциями, логикой, которая лежит в основе всего. Но каждый язык был создан для собственной цели: обучения, веб-разработки, повышенной производительности, работы с . Это определяет особенности синтаксиса и семантики, а также дополнения, отличающие один язык от другого.

В большинстве случаев программист, освоивший один язык, достаточно легко может разобраться в программе, написанной на другом. Впрочем, для детального понимания ему наверняка потребуется справочник.

Конечно, существуют низкоуровневые, высокоуровневые и другие специфические языки, непохожие ни на кого, но их мало + они узконаправленные.

Миф 20. Идеальный язык

Новички, приходя в программирование, первым делом задаются вопросом, какой из всего многообразия существующих языков самый лучший, удобный, полезный – идеальный!

Программисты, как верные своим болотам кулики, очень любят те языки, на которых преимущественно пишут, и беззастенчиво их нахваливают. Однако таинственный Идеальный Язык по-прежнему не найден.

Не нужно искать Святой Грааль программирования: его не существует. Новичку следует просто выбрать себе понравившийся язык и познавать его возможности.

Миф 21. Веб-программирование – это несерьезно

Долгое время язык среди разработчиков считался, мягко говоря, несерьезным. Сделанный на коленке, он просто не мог стать основой чего-то большого и сложного. Сейчас мнение изменилось, PHP занял свою нишу в IT-сфере.

JavaScript всегда был игрушечным языком, пригодным только для простенькой анимации веб-страниц. Сейчас этот язык усердно борется за звание самого универсального, успешно осваивая серверную сторону разработки.

– большая и активно развивающаяся сфера. Сейчас это очень серьезно.

Миф 22. Программирование – это скучно

Одно из самых упоительных чувств, испытываемых программистом – чувство творца. Благодаря ему из небытия возникают программы, которые могут приносить людям пользу и радость.

Навыки программирования применимы во всех сферах жизни: от сельского хозяйства до авиастроения и космической промышленности. Программисты , социальные сети, мобильные приложения – разве это скучно?

Волшебная Страна IT

Окутанная туманом стереотипов и мифов о программировании, Волшебная Страна IT завлекает молодых адептов иллюзиями и обещаниями.

Миф 23. Программист = миллионер

Есть мнение, что программисты прилично зарабатывают. Действительно, зарплаты многих работников имеют весьма приятные размеры. Многих, но не всех.

Спрос на IT-специалистов на рынке труда высок, но работодатели ищут работников с опытом, поэтому первое время придется довольствоваться небольшими зарплатами и нарабатывать портфолио.

Чтобы достичь профессиональных высот нужно много работать, либо придумать и создать по-настоящему крутой продукт.

Миф 24. Новички никому не нужны

Противоположный миф утверждает, что новичку в программировании невозможно и начать зарабатывать, пока он не набьет руку и не сформирует портфолио.

На самом деле на рынке есть много и юниоров, где соискатель сможет набраться опыта на реальных проектах и даже получать небольшую зарплату. В будущем возможно полное трудоустройство в эту же компанию. Кроме того, существуют фриланс-биржи, где можно найти задания, соответствующие уровню исполнителя.

Миф 25. Навыки программирования нужны только программистам

Программирование – умение специфическое, и оно нужно лишь тем, кто занимается им непосредственно? Это не так.

Компьютеры сейчас доступны и удобны, с их помощью можно существенно упростить себе жизнь и повысить собственную эффективность. Умные машины могут выполнять за человека рутинные повторяющиеся долгие операции, например, составлять отчеты, считать статистику, форматировать тексты, обрабатывать видео. Но для этого их нужно запрограммировать.

Основы компьютерной грамотности должны стать таким же естественным знанием, как умение умножать числа.

По данным HackerRank, платформы с полуторамиллионной аудиторией, на которой программисты соревнуются в решении задач, по итогам 2017 года Россия заняла второе место после Китая в рейтинге сильнейших программистов и удерживает абсолютное лидерство в области разработки алгоритмов. Но самые впечатляющие результаты показывают российские студенты, которые разбивают всех в пух и прах на международных олимпиадах и чемпионатах.

С 2000 года Россия получила 32 золотые медали на Международном студенческом чемпионате по спортивному программированию ICPC, оставив далеко позади Китай с 13 медалями и США - с шестью.

Что же делает российских IT-специалистов востребованными и успешными?

«ЛИТМО-1» (1958) была первой универсальной электронной цифровой машиной для инженерных расчетов, содержала 850 электронных ламп, производила 100 операций в секунду и имела 2048 байт памяти.
.

Преемственность

От Советского Союза современной России досталась сильная математическая школа. Советские ученые совершали революционные прорывы в технических и естественнонаучных областях - достаточно вспомнить имена Петра Капицы, Игоря Курчатова, Льва Ландау.

После распада СССР в девяностые годы IT-специалисты пользовались большим спросом. Программирование было чуть ли не единственной профессиональной сферой, в которой можно было заработать. Хорошо подкованному математику освоить программирование просто, потому что информатика - это практическое приложение математики. Поэтому информатика в России, хоть и с запозданием, тоже стала развитой областью науки и практики.

Умники из школы

Российские школьники уже с начальных классов решают много задач, в которых надо удерживать в голове сразу несколько шагов. Фору нашим ученикам дает и запрет на пользование калькулятором на уроках и олимпиадах. Во Франции и США упрощать себе расчеты разрешается с третьего класса.

К тому же наши школьники довольно рано начинают оперировать абстрактными понятиями. Например, многочлены у нас проходят уже в средней школе. Числа - это понятие вообразимое, а вот (a+b)2 осознать гораздо сложнее. Здесь требуется навык абстрактного мышления.

В России также хорошо развита система спецшкол, лицеев с физико-математическим уклоном, разделения на специализации в старших классах. Олимпиады помогают уже со школьной скамьи отобрать и направить талантливых ребят в лучшие вузы страны. Проходя этапы Всероссийской олимпиады школьников, ученики тренируются на сложных задачах и получают опыт соперничества с лучшими из лучших. Как итог - уже на школьном этапе Международных олимпиад по информатике и физике российские ребята показывают незаурядные результаты.

Всем, кто увлекается спортивным программированием, хорошо известно имя Геннадия Короткевича. Он является самым титулованным олимпиадным программистом в мире и занимает первую строчку в рейтинге кодеров на платформе Codeforces. Сначала Короткевич был самым юным абсолютным победителем международной олимпиады школьников по информатике IOI от Белоруссии, а позже поступил в российский вуз и в 2013 и 2015 годах на студенческом чемпионате мира по программированию ICPC в составе команды Университета ИТМО выиграл абсолютное золото. Короткевич также многократно выигрывал «Яндекс.Алгоритм», VK Cup, Google Code Cup и многие другие соревнования.

Студенты Университета ИТМО - шестикратные абсолютные чемпионы мира по программированию 2015 года/Фото Википедия
.

Университеты

Большой вклад в подготовку сильнейших IT-кадров в России делают университеты: МФТИ, СПбГУ, Университет ИТМО, МГУ им. Ломоносова, Саратовский государственный университет, Уральский федеральный университет. Вузы проводят соревнования по программированию. В Москве Центр развития ИТ-образования МФТИ проводит Международный фестиваль MosCode Festival. Ежегодно проводится чемпионат Урала по спортивному программированию, регулярные соревнования проходят в Санкт-Петербурге, а также в маленьких городах вроде Коврова.

В России и странах бывшего СССР с начала 2000-х проводятся регулярные тренировочные соревнования: учебные сборы в Петрозаводске, Открытый кубок имени Е. В. Панкратьева по программированию. А с 2012 года сначала на кампусе МФТИ, а сейчас во Владивостоке, Гродно, Барселоне и Колламе (Индия) начали проходить сборы Moscow Workshops ICPC, куда со всего мира съезжаются студенческие команды для подготовки к Олимпийским играм по программированию ICPC. На сегодняшний день в них уже приняли участие 167 вузов из 50 стран. Результаты тренировок на буткэмпах впечатляют - 10 из 13 победителей финального чемпионата ICPC 2018 проходили подготовку в Moscow Workshops ICPC. Локальная история российских буткэмпов переросла в глобальную сеть и не имеет похожих по масштабу аналогов в других странах.

Базовые программы у нас и за рубежом в целом похожи, но важен еще и уровень студентов. У нас во многих университетах настолько строгий отбор, что там собираются уникальные по уровню группы. Например, в МФТИ проходной балл по ЕГЭ уже много лет - 94, что наравне с МГИМО делает его самым сложным вузом для поступления в России. Прошедшие отбор ребята получают углубленное образование и много работают в командах. Умение работать в коллективе, хорошо закрепленное физтехами, - это важный навык в бизнесе. Сейчас ведущие вузы России, среди которых, например, НИУ ВШЭ и университет ИТМО, активно развивают предпринимательские компетенции студентов. МФТИ движется в сторону технологического предпринимательства, и многие ребята продолжают после учебы работать в сложившихся во время учебы командах. Это важно, потому что на этапе поиска инвесторов одни из ключевых вопросов - это «кто ваша команда» и «как в ней происходит взаимодействие».

Яркий пример - компания Looksery Inc, основанная Виктором Шабуровым, команда которой разработала популярное приложение, добавляющее маски на лица людей в режиме видео. Ядром компании были участники одной команды по олимпиадному программированию. Спустя всего три года с момента создания, в 2015 году, они продали ее Snapchat за $150 млн. Шабуров сейчас активно поддерживает программы обучения для школьников и студентов. Недавно он организовал фонд Botan Investments и открыл грантовую программу для преподавателей в области машинного обучения.

В московской компании - разработчике алгоритмов трейдинга AIM Tech, которую основал Илья Седошкин, тоже работают медалисты World Finals ICPC из МФТИ: Ренат Гимадеев, Александр Останин, Константин Семенов и другие. Это область, где ценится скорость проведения сделок. А скорость и алгоритмы - это то, что особенно хорошо нарабатывается в спортивном программировании.

Технологическое предпринимательство коснулось и банков, которые теперь все больше превращаются в IT-компании. Например, проект iPavlov на основе технологий машинного обучения разрабатывает автоматический чат для Сбербанка России.

IT-корпорации и их подопечные

Скоординированная работа вузов и поддержка со стороны IT-компаний сформировали культуру программирования в нашей стране. Бизнес совместно с вузами организует учебные программы, тем самым привносит новые компетенции и модели бизнес-процессов, которые университеты внедряют в образовательную деятельность. Среди компаний, поддерживающих IT-образование в стране: «Яндекс», JetBrains, Mail.Ru Group, «1C», Тинькофф Банк, Сбербанк и другие.

Например, компания JetBrains развивает программу бакалавриата на кафедре математических и информационных технологий в СПбАУ, а также совместно с компанией Acronis - магистратуру в МФТИ. Mail.Ru Group организовал пять образовательных программ по web- и мобильной разработке, искусственному интеллекту и высоконагруженным проектам: «Технопарк» с МГТУ им. Н. Э. Баумана, «Техносфера» с факультетом вычислительной математики и кибернетики МГУ им. Ломоносова, «Технотрек» с МФТИ, «Технополис» с СПбПУ и «Техноатом» с МИФИ.

У «Яндекса» создано много образовательных программ, например, «Школа анализа данных» для старшекурсников и выпускников технических специальностей. «Яндекс» также учредил стипендию для олимпиадников, которые учатся на первом курсе факультета компьютерных наук НИУ ВШЭ.

Компании черпают кадры из студенческой среды. Разработка «ВКонтакте» очень близка к олимпиадному подходу в решении задач, потому что его создатели со школы были в этой системе. Например, программной разработкой социальной сети «ВКонтакте» занимался Николай Дуров, двукратный победитель чемпионата мира по программированию ICPC от СПбГУ, и его соратник по команде Андрей Лопатин, тренер Moscow Workshops ICPC, который тренировал победоносные команды СПбГУ. И сейчас во «ВКонтакте» работают чемпионы ICPC Дмитрий Егоров и Павел Кунявский.

За рубежом компании тоже помогают студентам, но нас отличают работающие, эффективные программы. «Яндекс» создал относительно простую для использования платформу «Яндекс.Контест», где проводятся соревнования по программированию. Там преподаватели вузов могут сами загружать свои задания. Проверка автоматизирована, а значит, непредвзята, и это помогает региональным вузам встроиться в систему подготовки ведущих программистов.

Трудоспособность русских

Чемпионы международных соревнований - это ребята, которые очень много работали еще со школы. Например, в команде МФТИ у одного из участников была медаль Международной школьной олимпиады по информатике. Другой в течение шести лет в вузе, помимо учебы, по нескольку часов в день уделял тренировкам, ездил на бесчисленное количество чемпионатов, тренировочных сборов.

На самих соревнованиях студенты преодолевают большие психологические перегрузки. Сложнейшие задачи, сжатые сроки и сильные соперники - это еще полбеды. На чемпионате ICPC, например, ребята находятся как под микроскопом: их постоянно снимают камеры, экран с кодом транслируется в интернет. Те, кто выдерживает нагрузку, в стрессовых ситуациях на работе уже чувствуют себя гораздо увереннее.

Свобода

IT-индустрия в России и мире во многом развивается самостоятельно, по принципу «Выживает самый эффективный». Нет никакой разницы, откуда ты, если твои алгоритмы ускоряют процессы и делают работу системы быстрее и дешевле. Поэтому программирование - это та вещь, в которой человек может преуспеть и в России, и за рубежом. Российские программисты, вопреки расхожему мнению, далеко не всегда хотят эмигрировать. Скорее они ищут интересные для себя задачи, которых много сейчас в «Яндексе», во «ВКонтакте» и в стартапах.

Преподаватели

В сфере IT в России и мире большая нехватка кадров. Поэтому, какую страну или регион ни возьми, средняя зарплата IT-специалиста будет выше, чем в других отраслях. По данным HeadHunter, средняя зарплата в сфере IT в России - 88 246 рублей при средней по России 45 640 рублей. В США, по данным Glassdoor, средняя зарплата IT-специалиста в пересчете на рубли - примерно 330 000 в месяц. В Великобритании зарплата программиста составляет 31 901 фунт стерлингов в год (около 220 000 рублей в месяц). В Швейцарии, по данным SwissInfo, программисты получают в среднем 4608 швейцарских франков (около 230 000 рублей в месяц). Но при работе со статистикой надо понимать, что уровень цен в других странах тоже значительно разнится, на сумму влияет курс рубля по отношению к другим валютам. Также во многих зарубежных странах уровень налогов сильно снижает реальную зарплату, которой фактически оперирует работник.

Высокие зарплаты в сфере IT - это еще не вся картина. Программистов из ведущих вузов расхватывают сразу после выпуска и даже раньше - компании стараются обеспечить лояльность будущих специалистов уже со школьной скамьи. И такая тенденция не только в России. В Силиконовой долине не хватает квалифицированных программистов. В Калифорнии стали пользоваться популярностью курсы длиной в несколько месяцев по программированию для выпускников местных колледжей, потому что студенты после выпуска самостоятельно не могут писать код.

Казалось бы, надо просто готовить больше выпускников, но это кто-то должен делать? А зарплаты в образовании ниже, чем в компаниях. Именно в IT-отрасли большой разрыв, что вызывает отток качественных преподавателей. Выходит, следующее поколение некому готовить. Поэтому большую роль в том, чтобы люди вовлекались и оставались в профессии, играет опять же культура программирования. В Европе и США она не так развита, а нам удалось вовлечь достаточное количество людей в эту систему. Чтобы успехи в сфере IT продолжались и дальше, надо повышать престиж IT-образования, популяризировать этот род деятельности.

Внимание! Мнение людей, отвечающих на вопрос, может не совпадать с мнением редакции.

Кого вы считаете лучшим программистом за всю историю?


МИТЧ РИС-ДЖОНС

программист

«ДОНАЛЬД КНУТ.

Он известен по монографии «Искусство программирования», состоящей из нескольких томов. В ней есть подробнейшие описания всего, начиная от структур данных и случайных чисел и заканчивая сортировкой, перебором, а также анализом алгоритмов - направлением, основы которого он и заложил. Во всех книгах он приводил примеры, написанные на языке ассемблера - машинных команд. Вот что по поводу этой монографии сказал Билл Гейтс: «Если вы считаете себя хорошим программистом, прочитайте „Искусство программирования“ Кнута. Если вы сможете прочитать её всю, обязательно пришлите мне резюме».

Кнут начал работать над монографией в 1962 году и на сегодня закончил четыре тома. Пятый том появится в 2020 году, а значит, работа над пятью томами займёт у него 58 лет. А ведь он собирается написать ещё два. И это не говоря о том, что он создал TeX, одну из самых распространённых систем компьютерной вёрстки, язык METAFONT для разработки векторных шрифтов, а также системы грамотного программирования WEB и CWEB. Он награждён медалью Джона фон Неймана, медалью Франклина, премией Тьюринга и Национальной научной медалью США. За его работу над «Искусством программирования» ему даже дали звание Почётного профессора искусства программирования».


программист

«Андерс Хейлсберг.

Он написал компилятор Pascal на языке ассемблера для двух господствующих операционных систем того времени DOS и CPM. Позднее компилятор вошёл в интегрированную среду разработки Turbo Pascal. Благодаря ему компиляция, компоновка и запуск программы стали занимать секунды, а не минуты.

Компилятор Хейлсберга купила компания Borland International, которая также наняла программиста на работу. Borland продавала компилятор вместе с полноценной средой разработки за куда меньшие деньги, чем конкуренты. Благодаря Хейлсбергу продуктивность программистов выросла в разы. Тогда я настолько впечатлился его работой, что даже написал книгу Using Turbo Pascal, впервые изданную в 1986 году. Её всё ещё можно найти на Amazon и eBay.

Андерс Хейлсберг возглавлял команду по созданию Borland Delphi (Object Pascal), работавшей так же быстро, как и Turbo Pascal. Сейчас Delphi занимает 11-е место в рейтинге языков программирования и сред разработки TIOBE. Позднее Хейлсберг перешёл на работу в Microsoft, где руководил разработкой C#, который сейчас занимает 5-е место в рейтинге TIOBE».


РАВИ КУМАР

студент

«Линус Торвальдс.

Создатель Linux. Все знают, что он умеет программировать лучше Марка Цукерберга и Билла Гейтса. В такой напряжённой, параноидальной индустрии, где зарабатывают очень много денег, никто не мог предвидеть выход Linux - бесплатной и открытой операционной системы, ставшей результатом совместного труда многих программистов. Также он создал систему управления версиями файлов Git и программу для профессиональных дайверов Subsurface.

Джеймс Гослинг.

Создатель языка Java, который используют по всему миру. На основе интерпретатора языка описания страниц PostScript он разработал систему Network Extensible Windowing System (NEWS), распределяющую вычисления в сети. Над чем он только не работал: и над наземным анализом телеметрии со спутника ISIS 2, и над первой версией текстового редактора Emacs для Unix, и над многим другим.

Ричард Столлман.

Основатель Free Software Foundation и основоположник движения открытого исходного кода, один из важнейших деятелей в истории информационных технологий. Он работал над GPL, самой распространённой в мире лицензией, используемой в том числе в Linux, а также над набором компиляторов GCC, текстовым редактором Emacs и другим открытым программным обеспечением».



 

Пожалуйста, поделитесь этим материалом в социальных сетях, если он оказался полезен!