November 30, 2020

Ресурсы, чтобы "набить руку"

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

  1. https://codingbat.com/java
    Визуально - не самый красивый сайт, но очень хорошо показывает, какие тесты прошёл Ваш код, а какие нет, что позволяет сориентироваться, в каком направлении думать дальше. Лучшая подборка простейших задач.
    Язык интерфейса: только английский
    Задачи: Java, Python
    Сложность задач: 0 - 4
  2. https://hackerrank.com
    Портал, который позиционирует себя как объединяющий компании и исполнителей на основе решения проблем в разных областях знаний. Лучшая подборка задач на алгоритмы и математику.
    Язык интерфейса: пишет, что есть русский, но мне не удалось включить
    Задачи: Algorithms, Data Structures, Mathematics, C, C++, Java, Python, Ruby, Linux Shell, Functional Programming, AI, SQL, Databases, Regex
    Сложность задач: 1 - 4
  3. https://leetcode.com
    На мой взгляд немного сложноватая навигация, но симпатично сделанный портал, нацеленный на обучение. Хорошие фильтры для задач, но даже с применением фильтров - задачи не отсортированы по нарастанию сложности. Есть подсказки и секция "похожие вопросы".
    Язык интерфейса: не нашёл, где можно поменять
    Задачи: C, C++, C#, Java, Python, Python3, JavaScript, Ruby, Swift, Go, Scala, Kotlin, Rust, PHP
    Сложность задач: 1 - 5
  4. https://www.codewars.com
    Хорошая навигация и усложнение задач по мере прохождения. После решения показывает не только правильный вариант, но и то, как решили другие участники. Лучший редактор кода.
    Язык интерфейса: только английский
    Задачи: C, C++, C#, Go, Haskell, Java, JavaScript, PHP, Python, Ruby, Rust, Shell, SQL, Swift и ОЧЕНЬ много других, в том числе экзотических, вроде Brainfuck
    Сложность задач: 1 - 5
  5. https://www.codingame.com
    Пожалуй, самый красивый портал из этого списка. И с самой интересной идеей. Идеально подойдёт тем, кто хочет дальше писать игры. Все задачи завязаны на игровой процесс и шикарно визуализированы.
    Язык интерфейса: только английский
    Задачи: C, C++, C#, Java, Python3, JavaScript, Bash, Ruby, Swift, Go, Groovy, Scala, Perl
    Сложность задач: 2 - 5