В целом все задания сразу же проверяются с помощью unit-test’ов. Есть открытые тесты, а есть «скрытые» тесты. Явные тесты отмечены во втором окошке под редактором кода.
Часто новички в программировании, а то и мидлы, не знают где практиковать свои знания, они прошли курсы, прочитали книги, выполнили несколько заданий на фрилансе (или не несколько), однако они хотят проверить смогут ли они решить некоторые более сложные и интересные задачи, дабы приняться за более сложную работу. В данной статье я собрал сайты, на которых сам тренирую свои навыки решения разнообразных задач и создаю сниппеты, которые мне возможно понядобятся в работе.
На данном ресурсе можно тренировать не только искусство программирования (знание языка, усвоение каких-либо тем), но и умение решать алгоритмические и математические задачи с помощью разных ЯП.
Данный сервис мне нравится тем, что кроме обычных заданий, данный ресурс может выдавать сертификаты. Не то чтобы они вам сильно помогли, однако вы получите некий опыт при решении задач для получения сертификата.
Также данный сайт может помочь вам найти работу, в отличии, от вышеупомянутой Codewars.
Данный сайт посоветовал мне мой хороший приятель, при этом упоминая что данный сайт содержит достаточно сложные алгоритмические задачи. Немного порешав задачи на нём, я действительно заметил, что средний уровень задач на голову выше, нежели есть на Hackerrank и Codewars.
На данном сайте можно сразу посмотреть сколько участников решают задачи и какие именно задачи они решают. Тут также есть валидатор (впрочем, как и на двух предыдущих сайтах), и он, как мне показалось работает чуть хуже, чем на двух предыдущих.
На Topcoder можно решать задачи за деньги. На данном сайте заказчики выставляют задачи, которые нужно решить за определённую плату. Всё это похоже на фриланс, однако тут исполнители пишут только алгоритм для выполнения определённой задачи и не более.
Дабы дать не только ресурсы для практики, я также предоставлю ресурсы для изучения теории:
vc.ru(рус) – собственно ресурс, на котором вы это читаете. Вы можете найти тут кучу статей от множества людей, которые делятся своим опытом.
Programiz(англ) – сайт, на котором вы можете выучить C++, C, Python, Java, JS, структуры данных, алгоритмы. Также содержит удобную онлайн-документацию по многим ЯП.
Code-Live.ru(рус) – сайт, который предоставляют ту же информацию, что и сайт выше, однако на русском языке.
learn.javascript.ru(рус) – сайт, на котором можно выучить Javascript и фреймворки, связанные с данным ЯП.
FreeCodeCamp(англ) – сайт, на котором содержится большое количество информации по веб-разработке, Data Science, и других специальностях.
- Хочешь проверить свои знания по фронтенду?
- FrontendMentor
- Codewel
- Coderbyte
- Freecodecamp
- Codepen
- JavaScript30
- JavaScript Quiz
- Devchallenges
- Codewars
- Frontendpractice
- Cssbattle
- 100dayscss
- Codementor
- Daily UI
- Codier
- Ace Frontend
- Exercism
- Fun Javascript
- TopCoder
- Coderbyte
- Project Euler
- HackerRank
- CodeChef
- Exercism
- Codewars
- LeetCode
- SPOJ
- CodinGame
- Заключение
Хочешь проверить свои знания по фронтенду?
Однажды я где-то прочитал, что лучший способ научиться веб-разработке – это постоянно практиковаться. А для практики нужны интересные задачи и идеи для личных проектов.
В этом посте я составил список сайтов для решения задач по веб-разработке.
FrontendMentor
Решайте реальные задачи на HTML, CSS и JavaScript, создавая профессиональный дизайн. Пишите проекты, просматривайте код и помогайте друг другу становиться лучше.
Завершив проект, вы можете отправить его на рассмотрение и критику. Вы также можете ознакомиться с работами других участников.
Codewel
Улучшите свои навыки HTML и CSS, практикуясь на реальных дизайнерских шаблонах.
Завершив проект, отправьте его, чтобы получить отзывы о своих решениях.
Coderbyte
Поможет вам совершенствовать свой код, решая задачи по алгоритмам, фронтенду, бэкенду и базам данных. Также сайт предоставляет реальные задания из собеседований, которые помогут вам подготовиться.
Freecodecamp
FreeCodeCamp — это онлайн-платформа, которая поможет вам в обучении и создании проектов.
Codepen
Еженедельные испытания для развития ваших талантов. Зарегистрируйтесь, участвуйте в них, и вашу работу разместят на главной странице.
JavaScript30
30-дневный челлендж по VanillaJS. Выполните 30 заданий за 30 дней, следуя 30 руководствам.
JavaScript Quiz
Проверьте свои знания, отвечая на вопросы по JavaScript. Подробные объяснения гарантированы.
Devchallenges
Участвуйте в крутых испытаниях и развивайте свои навыки, создавая веб-сайты.
Codewars
Совершенствуйте свои навыки в разработке вместе с единомышленниками, решая задачи по программированию.
Frontendpractice
Поднимите свои навыки во фронтенде на новый уровень, воссоздавая реальные веб-сайты.
Cssbattle
Создавайте различные фигуры на CSS в каждом челлендже и улучшайте свои навыки.
100dayscss
Создайте за 100 дней что-нибудь прекрасное и выведите свои навыки CSS на новый уровень. Новые задачи каждый день!
Codementor
Совершенствуйтесь в программировании, работая над реальными проектами.
Daily UI
Daily UI поможет вам развиваться как дизайнеру, работая над различными задачами в течение 100 дней.
Завершив проект, вы можете опубликовать его на Dribble или Behance, чтобы получить оценку и критику.
Codier
Здесь можно порешать сложные, но интересные задачи по фронтенду.
Ace Frontend
Ace Front End предлагает практические задачи на написание кода с подробным объяснением идеального решения для собеседования.
Exercism
Exercism помогает достичь свободного владения 55 языками программирования. Сайт также предоставляет забавные упражнения по кодингу, которые помогут понять концепции языка.
Fun Javascript
Бесплатная серия забавных проектов на Javascript, HTML и CSS.
Перевод статьи
«The 10 most popular coding challenge websites for 2020».
Одним из самых лучших способов улучшить свои навыки программирования является решение задач. Разбираясь в различных головоломках, вы развиваете свои навыки решения проблем, знакомитесь с темными закоулками избранного вами языка программирования, готовитесь к собеседованиям, изучаете новые алгоритмы и т. д.
Но где найти подборку хороших задач по программированию? Мы составили список самых популярных сайтов с задачами, добавив для каждого пункта описание ресурса и его особенностей.
TopCoder
TopCoder это одна из оригинальных
онлайн-платформ по спортивному
программированию. На этом сайте вы
найдете список алгоритмических задач
с прошедших соревнований. Вы можете
попробовать решить их самостоятельно,
используя редактор кода на самой
платформе.
Несколько раз в месяц на TopCoder проходят
турниры — Single Round Matches, где вы имеете
возможность сразиться с другими
участниками, решая задачи на скорость.
За верные решения начисляются баллы;
побеждает участник, набравший больше
всего баллов.
Пользователи, возглавляющие турнирную
таблицу на TopCoder, являются очень
сильными программистами и регулярно
принимают участие в состязаниях. Один
из них, Петр Митричев, ведет собственный
блог «Algorithms weekly by Petr Mitrichev», в котором
пишет о соревнованиях по программированию,
алгоритмах, математике и т. п.
Coderbyte
На Coderbyte содержится больше 200 задач по
программированию. Решать их можно
онлайн, пользуясь при этом одним из 10
языков программирования на выбор (см.
пример).
Задачи распределены по группам, от
простых (например, найти самое длинное
слово в строке) до сложных.
Также на этом сайте вы найдете коллекцию
руководств по алгоритмам, вводные видео
и курсы по подготовке к собеседованиям.
В отличие от HackerRank и подобных ему сайтов,
здесь можно смотреть решения других
пользователей, а не только официальные
решения от Coderbyte.
Project
Euler
Project Euler предлагает большую коллекцию
задач по информатике и математике.
Задания обычно связаны с написанием
маленькой программы для решения
математических задач (например, для
нахождения
суммы всех чисел в последовательности).
На сайте нет редактора кода для решения
задач онлайн, так что вам нужно будет
воспользоваться собственным, а затем
вставить свое решение в форму на сайте.
HackerRank
На HackerRank вы найдете задачи из разных
областей знаний (алгоритмы, математика,
SQL, функциональное программирование,
ИИ и т. д.). Задачи можно решать онлайн
(см. пример).
По каждой задаче ведется турнирная
таблица и ветка обсуждений. Большинство
задач сопровождаются пояснениями самой
задачи и подхода к ее решению. Но
посмотреть варианты решений других
людей нельзя.
Пользователи HackerRank также могут решать
задачи, предоставляемые разными
компаниями, и отправлять
в эти компании заявки на работу.
CodeChef
CodeChef это индийский сайт по спортивному программированию. Здесь вы найдете сотни задач, отсортированных по уровню навыков. Код можно писать в онлайн-редакторе.
CodeChef может похвастаться большим
сообществом: программисты общаются на
форумах, пишут руководства
и принимают участие в соревнованиях.
Exercism
Сайт Exercism предлагает больше 3100 задач
на 52 языках программирования. Вы выбираете
язык, навыки работы с которым хотите
улучшить, а затем решаете соответствующие
задачи прямо на своей машине (Exercism имеет
собственный интерфейс командной строки,
который можно загрузить с GitHub).
Этот сайт имеет одно существенное
отличие от остальных в списке: здесь вы
после решения каждой очередной задачи
работаете с наставником. Он просматривает
ваши ответы онлайн и при необходимости
помогает улучшить решение. После
успешного решения задачи открывается
доступ к следующей партии задач.
Codewars
Codewars предлагает большую коллекцию
задач по программированию, представленных
членами сообщества. Решать эти задачи
можно онлайн
в редакторе на сайте. Для решения вы
выбираете один из нескольких предлагаемых
языков. По каждой задаче у вас есть
доступ как к обсуждению, так и к решениям
других пользователей.
LeetCode
LeetCode это популярный сайт по спортивному
программированию. Здесь вы найдете
список из больше чем 190 задач, решать
которые можно на 9 разных языках
программирования. Эти задачи помогут
вам подготовиться к техническим
собеседованиям. Работать над ними можно
онлайн.
На LeetCode вы не сможете видеть решения
других участников, зато сможете
отслеживать статистику собственных
решений. Например, можно увидеть,
насколько быстр ваш код по сравнению с
кодом других пользователей.
Также на сайте есть раздел
постановочных собеседований,
предназначенный для подготовки к
реальным интервью, и раздел
со статьями для лучшего понимания
отдельных проблем.
Кроме того, на LeetCode организовываются
соревнования между участниками.
SPOJ
Sphere Online Judge (SPOJ) это еще один сайт с уклоном в соревнования. Здесь вы найдете больше 20 тысяч задач по программированию. Свое решение можно писать в онлайн-редакторе. SPOJ проводит собственные соревнования, а также предоставляет площадку для обсуждения задач. В отличие от многих других аналогичных сайтов, здесь нет никаких официальных решений и учебных материалов.
CodinGame
CodinGame несколько отличается от остальных
сайтов в нашем списке. Здесь вы не просто
решаете отдельные задачи в онлайн-редакторе.
Здесь вы, собственно, принимаете участие
в написании кода для игр, в которые можно
играть на сайте. Список доступных в
настоящее время игр можно посмотреть
здесь, а
пример отдельной игры — здесь.
К игре прилагаются описание проблемы,
test cases и редактор, где можно писать
собственное решение на 20 языках
программирования.
Несмотря на отличия этого сайта от более стандартных сайтов по спортивному программированию, он довольно популярен среди программистов, любящих решать задачи и принимать участие в соревнованиях.
Заключение
Если вы новичок в веб-разработке, перечисленные выше сайты сделают вашу жизнь проще. На сегодня всё!
Перевод статьи Resources to help you practice web development.