Сервисы

Как войти в рейтинг лучших программистов

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

Anton F, 27.05.2018

Самые популярные рейтинги программистов

Есть масса способов добиться успеха, разные программисты определяют для себя разные цели. Кто-то мечтает работать в Google, кто-то – разработать инновационный продукт. Поэтому и оценивают программистов по-разному.

Codeforces

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

На данный момент лидером этого проекта по количеству набранных баллов (3600) является Геннадий Короткевич из Беларуси. Этот парень впервые заявил о себе еще 7 лет назад. Регулярно участвуя в конкурсах, он постепенно поднимался в списке, и в конечном итоге занял первое место. Примеры задач последнего состязания, в котором он участвовал (413-й этап) можно посмотреть тут: А, B, C, D, E, F и G. К слову, задачу «E» он тогда так и не решил, что не помешало Геннадию занять первое место. Ему предлагалось место в IBM без собеседования (многие победители олимпиад и соревнований получают такую возможность), а в России ему лично предлагал работать над оборонными проектами Сергей Шойгу.

Чтобы войти в Топ-100 Codeforce, нужно набрать более 2600 баллов, но следует учитывать, что это число постоянно увеличивается, ведь соревнования происходят постоянно и общий рейтинг участников неизменно растет. За каждый конкурсный этап можно заработать в среднем 40-50 балов. В год происходит более 15 соревнований, так что на выход в лидеры может потребоваться от четырех лет и более. Неверно выполненные задания уменьшают количество баллов.

ACM/ICPC

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

В мае 2017 года первое место заняла команда Санкт-Петербургского Университета ИТМО, а второе место заняли студенты из Университета Варшавы (Польша). Примеры заданий олимпиады (на английском языке) можно посмотреть здесь: A, B, C, D, E, F, G, H, I, J, K и L.

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

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

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

TopCoder

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

Лидером рейтинга на данный момент является Петр Митричев, действующий сотрудник Google, работающий над поисковым ядром компании, что является одним из самых престижных и приоритетных направлений. Петр участвует в соревнованиях уже более 13 лет (с 19 лет). На третьем месте в рейтинге лидер Codeforces – Геннадий Короткевич. В последнем состязании, в котором участвовал Петр, ему нужно было решить три следующие задачи: Fox and Cake 2, Distance Zero and One и Four Lamps.

Система начисления рейтинга тут схожа с Codeforces. То есть минимальное количество баллов для вхождения в топ-100 показатель постоянно растет. Сейчас это 2500 баллов.

HackerRank

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

Единого рейтинга тут нет, он разбит на несколько категорий по направлениям программирования. Здесь намного проще стать лидером в той дисциплине, в которой молодой специалист разбирается лучше всего.

Как добиться признания?

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

Упорство

Программирование требует усидчивости и упорства. Чтобы полноценно освоить программирование, необходимо потратить очень много времени, к тому же это не всегда будет интересно и увлекательно.

Вице-президент компании Acronis Иван Луковников считает, что именно упорство – одно из главных качеств, необходимых любому программисту

Образование

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

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

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

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

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

Без сравнений

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

Стивен Макконнелл, программист, в 1998 был признан одним из самых влиятельных людей в сфере программирования на одном уровне с Линусом Торвальдсом и Билом Гейтсом. Он говорил: «Способ использования интеллекта важнее, чем его уровень»

Английский язык

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

Специалист в сфере программирования и искусственного интеллекта Дмитрий Сошников, преподающий в МФТИ и имеющий около 60 научных работ, утверждает, что незнание английского языка ограничивает человека, на дает возможности читать нужную литературу или общаться с людьми

Тестирование

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

Учиться все время

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