10 сайтов с задачами, которые сделают из вас профи
10 популярных сайтов с задачами, которые обязательны для новичков и желающих больше практиковаться. Не упустите шанс ознакомиться!
Для подготовки к интервью, повышения качества кода и прогресса в карьере разработчика неоценимую помощь оказывает решение задач по программированию. В этой публикации десяток популярных вебсайтов с задачами для разработчиков всех уровней подготовки. Ресурсы расположены в порядке от простого к сложному. Приступим! :)
1. Coderbyte
Проект Coderbyte содержит более 200 задач по программированию, которые вы можете решить в онлайн-редакторе при помощи одного из десяти ЯП. Доступ к части задач бесплатный, вот только к остальным он открывается после покупки подписки.
Прилагается более 800 000 решений, проранжированных по оценке пользователей. Кроме раздела с задачами имеются также пособия по написанию программных решений на различных языках. Приобретение подписки открывает доступ к туториалам по собеседованиям в крупных компаниях и задачи с собеседований. Также в свободном доступе находятся однонедельные вводные курсы по языкам программирования и веб-разработке.
Уровень сложности: для новичков и середнячков
2. Codewars
При регистрации на Codewars нужно пройти простое задание, подтверждающее ваши навыки в одном из 20 языков программирования, для которых на сайте есть большая коллекция упражнений. Для каждого задания есть форма обсуждения самого задания и его решений. Работа с задачами обрамлена в игру: выполняя упражнения, вы получаете очки, накопление которых позволяет перейти к более высокому разряду.
Уровень сложности: для новичков и середнячков
3. CodeFights
Важен алгоритм решения задач программирования? Тогда вы по адресу.
CodeFights содержит задания для решения в онлайн-редакторе и форум для обсуждения. В качестве целей можно поставить изучение новых концепций программирования или подготовку к собеседованию. Программы можно писать более чем на 30 различных языках.
В работе над кодом вы можете посоревноваться с Company Bots – ботами, написанными инженерами таких компаний как Uber, Dropbox и Quora. Обучение, как и в случае с Codewars, построено в игровой форме с получением очков и прогресс-баром. Заработанные за выполнение заданий очки можно тратить на открытие новых заданий.
Уровень сложности: для новичков и середнячков
4. CodinGame
А вот CodinGame постулирует игровую начинку уже в названии! Но игра здесь подразумевает не игровую форму оценки результата, а то, что вы учитесь писать код в процессе создания онлайн-игры, например, космического шутера.
При решении задания вы видите блок, связанный с какой-то концепцией, который вы должны запрограммировать в этой игре. Если вы сделаете это правильно, игра оживет. Для написания кода можно использовать один из 20 языков. Круто, правда? ;)
Уровень сложности: для новичков и середнячков
5. TopCoder
TopCoder – это один из сайтов для онлайн-соревнований по программированию с задачами на алгоритмы. Соревнования проходят несколько раз в месяц в заранее оговоренное время. Кроме этого, дополнительно можно выбрать одну из трех ветвей продолжительных соревнований: UX/UI дизайн, разработка и Data Science. Победители соревнований получают денежные призы от нескольких сот до пары тысяч долларов.
Уровень сложности: для середнячков и продвинутых
6. HackerRank
HackerRank сосредоточен на вопросах информатики и содержит проблемы для таких областей, как алгоритмы, математика, SQL, функциональное программирование, искусственный интеллект и т. д.
Аналогично предыдущим ресурсам, здесь задачи по программированию можно решить и протестировать в онлайн-редакторе (пример). В структуру сайта также включены возможность обсуждений и рейтинг лидеров по каждой задаче. Большинство заданий содержат пояснения и наводящие вопросы.
Уровень сложности: для середнячков и продвинутых
7. LeetCode
На LeetCode собрана отличная коллекция алгоритмов программирования, связанных понятиями структур данных, таких как бинарные деревья, динамическая память, связанные списки и т. д.
Эти задачи по программированию немного более общие и продвинутые, чем те, что на приведенных выше ресурсах. Они важны для тех, кто готовится к собеседованию на должность разработчика программного обеспечения. На сайте есть специальный раздел Mock Interview, предназначенный для подготовки к собеседованиям. Ресурсом проводятся собственные конкурсы по программированию. Также есть раздел статей, которые помогут вам лучше разобраться в определенных проблемах в области алгоритмов.
Уровень сложности: для середнячков и продвинутых
8. CodeChef
CodeChef посвящен спортивному программированию и содержит сотни упражнений. Вы можете писать код в онлайн-редакторе и просматривать коллекцию упражнений, разделенных по категориям с указанием вашего уровня (пример). Здесь большое сообщество программистов, участвующих в обсуждении на форуме, написании учебных пособий и принимающих участие в соревнованиях по кодингу.
Уровень сложности: для середнячков и продвинутых
9. GeeksforGeeks
GeeksforGeeks содержит одну из лучших подборок статей, объяснений и примеров кода для алгоритмов и структур данных. Посмотрите, как один сложный вопрос разбивается на несколько более простых с поэтапным объяснением решений при помощи примеров кода на разных языках. Прежде чем посмотреть ответ к задаче, вы можете потренироваться в онлайн-редакторе. Если вы решили разобраться в вопросах алгоритмов, этот сайт – лучшее решение.
Уровень сложности: для середнячков и продвинутых
10. Codeforces
На российском ресурсе Codeforces, спонсируемом командой Телеграма, регулярно проводятся международные соревнования, в которых соперничают профи спортивного программирования. Если вы начинающий разработчик, эти задачи по программированию, скорее всего, будут для вас слишком сложными. Хотите убедиться? Просмотрите пару вариантов на сайте.
Да, решение задач по программированию такого уровня требует продвинутых знаний в математике и алгоритмах.
Уровень сложности: для продвинутых
Общие сведения по сайтам с задачами
Большинство приведенных ресурсов обеспечивают возможность выполнения заданий и тестирования результатов в онлайн-режиме. Многие задания носят игровую форму, что делает сложный процесс программирования более интересным и мотивирует к занятиям. На большинстве приведенных сервисов можно зарегистрироваться или упростить регистрацию с помощью аккаунтов в социальных сетях или на Github.