10 самых популярных веб-сайтов Coding Challenge [обновлено в 2020 году]

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

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

1. TopCoder

TopCoder - одна из оригинальных платформ для соревновательного программирования в Интернете. Он предоставляет список алгоритмических задач из прошлого, которые вы можете решить самостоятельно прямо в Интернете, используя их редактор кода. Их популярные матчи в один раунд проводятся несколько раз в месяц в определенное время, где вы соревнуетесь с другими игроками, решая задачи быстрее всех и набирая лучший результат.

Лучшие пользователи TopCoder - очень хорошие конкурентоспособные программисты и регулярно участвуют в соревнованиях по программированию. Лучший пользователь ведет собственный блог Петра Митричева « Алгоритмы еженедельно», в котором пишет о соревнованиях по программированию, алгоритмах, математике и многом другом.

2. Кодербайт

Coderbyte предоставляет 200+ задач по кодированию, которые вы можете решать непосредственно в Интернете на одном из 10 языков программирования (посмотрите этот пример). Задачи варьируются от простых (найти самое большое слово в строке) до сложных (вывести соответствие максимального числа элементов в графике).

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

3. Проект Эйлер

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

Вы не можете напрямую кодировать веб-сайт в редакторе, поэтому вам нужно будет написать решение на своем собственном компьютере, а затем предоставить решение на своем веб-сайте.

4. HackerRank

HackerRank предлагает задачи для нескольких различных областей, таких как алгоритмы, математика, SQL, функциональное программирование, искусственный интеллект и другие. Вы можете решить все задачи прямо в Интернете (посмотрите этот пример). Они предоставляют обсуждение и таблицу лидеров для каждой задачи, и большинство задач сопровождается редакционной статьей, в которой подробно объясняется проблема и то, как подойти к ней, чтобы найти решение. Помимо редакционной статьи, в настоящее время вы не можете просматривать решения других пользователей на HackerRank.

HackerRank также дает возможность пользователям подавать заявки и подавать заявки на вакансии, решая проблемы кодирования, спонсируемые компанией.

5. CodeChef

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

6. Exercism.io

Exercism - это веб-сайт, посвященный программированию, который предлагает более 3100 задач, охватывающих 52 разных языка программирования. После выбора языка, который вы хотите освоить, вы решаете проблемы кодирования прямо на своем компьютере (у Exercism есть собственный интерфейс командной строки, который вы можете загрузить с GitHub).

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

7. Кодовые войны

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

8. LeetCode

LeetCode - популярный онлайн-судья, который предлагает список из более чем 190 задач, которые помогут вам подготовиться к собеседованию по техническим вопросам. Вы можете решать задачи прямо онлайн на одном из 9 языков программирования. Вы не можете просматривать решения других пользователей, но вам предоставляется статистика для ваших собственных решений, например, насколько быстро выполнялся ваш код по сравнению с кодом других пользователей.

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

9. SPOJ

Sphere Online Judge (SPOJ) - это онлайн-судья, который предлагает более 20 тысяч задач по кодированию. Вы можете отправить свой код в онлайн-редакторе. SPOJ также проводит свои собственные конкурсы и дает пользователям возможность обсудить проблемы программирования. Однако в настоящее время они не предоставляют никаких официальных решений или редакционных статей, как это делают некоторые другие веб-сайты.

10. CodinGame

CodinGame немного отличается от других веб-сайтов, потому что вместо простого решения задач кодирования в редакторе вы фактически принимаете участие в написании кода для игр, в которые вы играете непосредственно в сети. Вы можете увидеть список игр, предлагаемых в настоящее время, здесь и пример одной здесь. Игра поставляется с описанием проблемы, тестовыми примерами и редактором, в котором вы можете написать свой код на одном из 20+ языков программирования.

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

Этот список был основан на нескольких вещах: мой собственный опыт использования веб-сайтов, некоторые поисковые запросы в Google, публикации на Quora и такие статьи, как эта и эта. Я также часто посещал некоторые форумы и субреддиты, такие как r / learnprogramming, чтобы узнать, какие веб-сайты обычно рекомендуются там пользователями. Отказ от ответственности: я работаю на Coderbyte, который является одним из упомянутых выше веб-сайтов.