После освоения основ любого языка программирования необходимо как можно больше практиковаться. Это поможет закрепить полученные знания и запомнить конструкции языка. Один из способов — решение задач. Такой подход заставляет использовать все возможности изученной технологии и думать над оптимальным алгоритмом решения.
Проект Эйлера
Проект Эйлера — сайт с математическими задачами по программированию, основанный в 2001 году. Задачи разделяются по уровню сложности, всего их более 800 штук. Для решения начинающим разработчикам необходимо вспомнить школьную математику, а в некоторых случаях — даже университетскую программу. Решать задачи можно на любом удобном языке программирования.
w3resource
W3resource предлагает пользователям подробные обучающие материалы и задачи по технологиям веб-разработки. В сервисе есть встроенный редактор кода, чтобы решать задачи в браузере. Можно отточить знания JavaScript, Python, HTML, CSS, SQL, PHP и Java.
Codewars
Сервис с задачами на 45+ языках программирования. Пользователям доступны практические задания на закрепление основ, паттернов и алгоритмов. В Codewars есть внутренняя система рангов, которая помогает выбирать задачи подходящего уровня. Ранг повышается при каждом правильном решении. Доступен как общий уровень пользователя, так и уровень владения каждым языком программирования.
Сборник задач CppStudio
Онлайн-сборник задач на языке C++. На сайте доступны задачи 5 уровней сложности на знание основ программирования и умение пользоваться алгоритмами. Условия задач не подстроены под особенности С++, поэтому решение можно реализовать на любом удобном языке.
CheckIO
Браузерная игра, мотивирующая решать задачи с помощью инструментов геймификации. Проходить испытания можно с помощью Python или TypeScript. Сложность возрастает по мере приближения к последним уровням, а если пройти регистрацию, то можно сохранить прогресс и вернуться к решению задач позже. Спонсор и партнер проекта — компания JetBrains.
LeetCode
Сервис с алгоритмическими задачами, которые помогут подготовиться к собеседованию. Задачи охватывают все аспекты разработки, включая базы данных, алгоритмы, теорию графов, структуры данных и динамическое программирование. Кроме задач доступны обучающие планы, чтобы освоить тему с нуля.
HackerRank
HackerRank проводит для разработчиков онлайн-соревнования, которые спонсируют мировые IT-компании. Если хорошо зарекомендовать себя и показать свои навыки, то можно получить приглашение на стажировку. Также призовые места в соревнованиях HackerRank могут стать хорошим достижением для резюме.
Codecombat
Браузерная стратегия, для игры в которую понадобятся навыки программирования. На выбор доступны Python и JavaScript. Сервис создан для детей, но подойдет и начинающим разработчикам старшего возраста. Также есть режим для преподавателей, позволяющий организовать совместную работу во время занятий.
CodeAbbey
Сервис с более чем 300 задачами. Часть из них доступна на русском языке, а за решение 125 задач можно получить сертификат. Также на сайте есть форум с активными участниками сообщества, которые могут помочь с решением.
Ruby Quiz
Сборник головоломок на языке Ruby. Решения задач описаны с учетом особенностей Ruby, но условия позволяют использовать любой язык программирования.
Rosalind
В Rosalind собраны задачи для разработчиков в области биоинформатики. Сервис подойдет далеко не всем, так как охватывает узкую область знаний. Разработчики Rosalind рекомендуют использовать головоломки из списка для закрепления изученных ранее тем.
CodingBat
Сборник задач на Java и Python. С помощью сервиса пользователи могут освоить основы и особенности этих языков программирования. Доступны как легкие задачи на знание синтаксиса, так и более сложные, заставляющие разобраться со структурами данных и логикой.
UVa Online Judge
Сборник сложных задач олимпиадного программирования, требующих глубоких знаний не только синтаксиса, но и алгоритмов. Решение необходимо оптимизировать по скорости выполнения кода и потребляемой памяти.
Школа программиста
Сервис с задачами для школьных олимпиад. Но его часто используют для преподавания на младших курсах университетов. Большой сборник включает головоломки разного уровня, требующие глубоких знаний информатики. На сайте есть автоматическая проверка решений и форум поддержки.
Codechef
Платформа для соревнований программистов, которые проводят несколько раз в месяц. К ним можно готовиться с помощью коллекции задач. В некоторых соревнованиях можно участвовать только командой. Codechef регулярно разыгрывает денежные призы, а на сайте есть внутренний рейтинг пользователей.
Codingame
Браузерный квест, который можно пройти с помощью решения задач. Управлять игровым процессом можно с помощью написания кода, а на выбор доступно более 20 языков программирования. Также на сайте есть геймифицированный сервис для проверки навыков во время собеседований.
Exercism
Exercism предоставляет пользователям доступ к большому количеству головоломок на разных языках программирования. В списке есть как популярные, так и редкие языки. Все задачи построены на реальных ситуациях из жизни. Так новички могут лучше понять условия. Кроме задач на сайте есть образовательные программы для самостоятельного обучения.
InterviewBit
Сервис для подготовки к собеседованиям в мировые IT-компании. На сайте есть сложные задачи на знание алгоритмов и особенностей синтаксиса, теоретические вопросы и советы для подготовки. Сервис содержит более 800 задач по различным направлениям разработки.
SQL EX
Русскоязычный сборник задач для изучения SQL и баз данных. На сайте есть внутренний рейтинг пользователей, а после прохождения экзамена можно получить сертификат, подтверждающий уровень знаний.
Питонтьютор
Сайт для практики языка программирования Python на русском языке. В сервис встроен редактор кода, поэтому можно решать задачи в браузере. Для каждой задачи есть альтернативные способы решения, которые помогут найти наиболее лаконичный способ.