Пройти курс — не всегда достаточно для оффера. Например, на собеседовании кандидатам-разработчикам могут устроить лайфкодинг: попросить выполнить задачу и написать код онлайн. Чтобы впечатлить рекрутера скоростью и нестандартным подходом, нужно тренироваться. Рассказываем, где это можно сделать, и какое решение разработали в SkillFactory.
IT HERO
Платформа от Skillfactory, созданная для студентов, которые хотят научиться лучше кодить. Это не просто тренажер. Сервис геймифицирован. Тренировка проходит в режиме матча один на один или человек с ботом. Регистрируйтесь на платформе и начинайте набивать рейтинг в матчах с другими пользователями, зарабатывать достижения и прокачивать навыки.
Платформа не только помогает более успешно справиться с лайфкодингом. Формат соревнований позволяет повысить скорость выполнения задач, потренироваться работать под стресс-фактором, а также проработать ошибки и кодить более осознанно. Все, что было неверно, платформа подсвечивает красным цветом. Таким образом можно оценить свой код, проанализировать, какие ошибки были допущены и почему, продумать, как не допускать их в дальнейшем.
Пройдите наш тест и узнайте, какой язык программирования вам подойдет. Ссылка в конце статьи.
TopCoder
Topcoder — это олдскульное сообщество спортивного программирования: регулярные соревнования проходят с 2001 года.
На TopCoder собраны головоломки по проектированию, разработке и алгоритмам. И марафоны — недельные (иногда двух-) исследования, в финале которых участники ищут не единственно верное решение, а предлагают максимально приближенные к идеалу варианты. Правильного ответа в марафонах вообще может не быть — заходить на марафоны новичкам рановато. Но если решать головоломки на скорость и за деньги (иногда соревнования предполагают денежные призы) хочется, начать стоит с простых подготовительных челленджей от создателей платформы.
Codeforces
Михаил Мирзаянов, создатель проекта, со школы любил олимпиады за соревновательный дух и возможность доказать себе, что способен на большее. Так Михаил пришел в спортивное программирование, а затем создал свою платформу для киберсоревнований. Так что мотивационной «мамой» платформы стали интеллектуальные бои школьников. А «отцом» — TopCoder: по сути, Codeforces — русскоязычный аналог.
Проект во многом напоминает социальную сеть: есть группы, пользователи добавляют друг друга в друзья, ведут блоги и получают баллы за их пользу, следят за активностью товарищей по рейтингу и истории участия в соревнованиях. В месяц проводит 8-11 челленджей: олимпиады по информатике для школьников, продвинутые задачи по тестированию и взлому, универсальные код-головоломки, которые создают сами пользователи для других участников. Обычная длина раундов — около 2 часов.
PythonChallange
Как сказано на самом сайте — он создан просто для веселья, и в конце вас ничего не ждет. Ни денежных наград, ни горячих офферов. Только повышение скорости и качества кода.
У платформы консервативный дизайн и простая организация: заходите, нажимаете на стартовую ссылку и решаете задачи с помощью Python. Уровень сложности выпадающих заданий будет расти: с первыми справятся совсем новички, но дальше будут и задачи со звездочкой. Или с тремя звездочками. И все решаются короткими скриптами — сохраняйте их, могут пригодиться.
CodeCombat
Полезный ресурс для новичков, школьников, учителей: на CodeCombat программировать учат в формате игры. Пользователям предстоит пройти обучающий квест и с нуля освоить Python, JavaScript и C ++, «перепрыгивая» от задачи к задаче.
Кстати, можно присоединиться к бета-тестированию CodeCombat Worlds — онлайн-симулятора, на 3D-просторах которого участники программируют своих питомцев, кодят на Lua и полноценно практикуются в создании игр.
Timus Online Judge
Тысячи задач разной тематики и уровня сложности с автоматической системой проверки. Открывайте архив и выбирайте: геометрические и графовые задачи, для начинающих и посложнее, головоломки по теории чисел и строковым алгоритмам. А еще задачи динамического программирования, на структуры данных и про палиндромы.
LeetCode
Известная платформа для подготовки к техническим интервью — ссылка на LeetCode, вероятно, встретится в большинстве гайдов серии «Как стать разработчиком в “Яндексе”, “Тинькофф” или Ozon». Из плюсов: каждая задача сопровождается обсуждением, в котором можно подсмотреть интересные подходы и подсказки к решению. Подойдет для адептов Java и JavaScript, Python, C, C++, С#, Ruby, Bash.
CodeChef
Некоммерческая платформа спортивного программирования с огромным спектром задач. Например, можно поучаствовать в раунде по взлому и дебагу игр. CodeChef проводит индивидуальные и командные соревнования, а еще на платформе есть раздел с обучающими мини-курсами по Python, C, C++, Java и C#.
CheckiO
Проект для Python- и TypeScript-разработчиков, которым важна эстетика. Задачи тренажера «разбросаны» по гейм-полю: исследуйте карту обучающего мира и решайте головоломки, чтобы пройти сюжет до конца.
В маршруте CheckiO 500 задач, можно выбрать уровень сложности и наблюдать, как решают головоломки другие игроки: иногда код-ревью соседа по игре научит большему, чем собственное прохождение.
Screeps
Учиться играючи можно и в Screeps. Это массовая многопользовательская стратегия, в которой нужно захватывать территории, застраивать свою космоколонию, добывать ресурсы и отбиваться от врагов — все с помощью кода на JavaScript. Вариант не для изучения языка с нуля, но поможет отточить скиллы не по учебникам, в «живом» режиме.
CodinGame
Еще одна игра-тренажер: на выбор 10 языков для прокачки, но действительно сложные головоломки встречаются редко. Зато на платформе устраивают «рыбалку» рекрутеры крупных компаний: можно и до оффера доиграться.
HackerRank
Прямой конкурент LeetCode — HackerRank тоже используют для хардовой подготовки к техническим интервью. Механика та же: участвуете в конкурсах, решаете задачи на алгоритмизацию и программирование, увеличиваете скорость и качество кода, поражаете рекрутеров.
C Puzzles
Сборник головоломок для фанатов языка C. Поможет отточить навыки код-ревью: в задачах просят отыскать мелкую ошибку в рабочем коде, предсказать результаты программы и потенциальные проблемы неидеальных отрезков кода.