27 cайтов с задачами по программированию
Сохраняем себе и тренируемся!
А кто хочет освоить программирование с нуля у нас подготовлены курсы http://goo.gl/EzUEgk
Codeforces | https://www.topcoder.com/ — несомненно самая популярная и известная платформа во всем мире для проведения соревнований на алгоритмику. Кроме крупных контестов сайт зачастую проводит свои «раунды» — участникам даются 5 задач на два часа. Есть система рейтинга, на основе которой участники делятся на два дивизиона. Таким образом, профи не соревнуются с новичками напрямую. Все задачи можно сдать и проверить даже после соревнований. Кроме «раундов» доступны и «тренировки» — задачи с прошедших соревнований публикуются в режиме дорешивания.
TopCoder | https://www.topcoder.com/ — ненамного отстающая по популярности от Codeforces американская платформа. Примечательна тем, что кроме алгоритмических контестов, которые описывались ранее, на ней проводятся и соревнования по промышленному программированию и марафоны — соревнования с задачами на исследование, для которых нет единого верного алгоритма, а есть лишь ответ, подходящий больше или меньше. На решение таких задач участникам обычно дается одна или две недели.
Timus Online Judge | http://acm.timus.ru/ — русскоязычная (хотя английский язык также поддерживается) платформа, на которой более тысячи задач удачно отсортированы по темам и по сложности. Также тут регулярно проводятся контесты уральского региона, которые, впрочем, не представляют для вас ничего интересного, если только вы не студент УрФУ или другого близлежащего вуза :)
SPOJ | http://www.spoj.com/ — крупный англоязычный сайт с более чем 20000 задачами на абсолютно разные темы: динамическое программирование, графы, структуры данных и т.д. Изредка проводит контесты, которые не представляют интереса, если вы не живете в странах их проведения.
CodeChef | https://www.codechef.com/ — менее крупный аналог Codeforces и TopCoder, тоже с огромным архивом задач и регулярными контестами.
acmp | http://acmp.ru/ — сайт, который будет полезен всем благодаря своему архиву задач, удобно (и по большей части правильно) отсортированному по сложности и темам. Соревнования проводятся, но участвовать в них имеет смысл только школьникам Красноярского края, для которых эта платформа изначально и предназначалась.
Project Euler | https://projecteuler.net/ — сборник 500 задач, которые невозможно решить без знаний математических и геометрических алгоритмов. Иногда используется на собеседованиях для приема на работу, чтобы лучше выяснить алгоритмическую подготовку претендента.
Kaggle | https://www.kaggle.com/ — данная платформа отличается от описанных ранее тем, что тут не проводится алгоритмических соревнований — только задачи на исследование (как в марафонах на вышеприведенном TopCoder). Например, одна из задач, на которой сейчас там проверяют свои умения участники, состоит в распознании написанных вручную цифр. Вот несколько символов, для которых это не так просто, как кажется (прим. авт. — некоторые из них я не смог распознать даже не программно):
CodinGame | https://www.codingame.com/start — сайт, на котором программирование и видеоигры сливаются в единое целое. Здесь вы найдете большую коллекцию задач на программирование, оформленных в виде видеоигр. Также тут изредка (раз в два месяца) проводятся контесты, содержащие в себе задачи на оптимизацию и ИИ, победители которых получают ценные призы. А если вы решите много задач, то на вас могут обратить внимание компании, которые набирают на этом сайте работников!
CodeCombat | https://codecombat.com/ - будет больше полезен для новичков. Эта платформа наглядно демонстрирует, что обучение программированию — это не так сложно и скучно, как может показаться. Сайт представлен в виде игры, которая разделена на несколько частей, возрастающих по сложности. В каждой части содержится множество задач на те или иные темы, призванные научить программированию с нуля любого человека. Если вы давно мечтали заняться программированием, но никак не находили в себе, обязательно обратите внимание на этот сайт.
HackerRank | https://www.hackerrank.com/ - наоборот будет больше интересен профессионалам, которые уже многое умеют. На этом сайте собрано множество задач на самые разные разделы Computer Science: традиционная алгоритмика, ИИ, машинное обучение и т.д. Если вы решите много задач, то вами могут заинтересоваться работодатели, регуляторно мониторящие эту платформу
C Puzzles | http://www.gowrikumar.com/c/index.php — подборка головоломок, специфичный для языка С, со всеми его причудами. Например, дан код, который, по логике, не должен работать, но, тем не менее, он компилируется и даже правильно выполняет свою задачу. Надо понять, почему так? На этой сайте вы сможете приобрести навык отладки программ и чтения кода других.
Codewars | http://www.codewars.com/ — cборник задач на разные темы, от алгоритмов до шаблонов проектирования.
LeetCode | https://leetcode.com/ — сайт с задачами для подготовки к собеседованиям.
Programming Praxis | https://programmingpraxis.com/ — блог, включающий в себя много интересных задач.
PythonChallange | http://www.pythonchallenge.com/ — сайт с загадками, возрастающими по сложности. Для их решения необходимо написать программу на Python.
Al Zimmermann’s Programming Contests | http://www.azspcs.net/ — платформа, на которой раз в полгода проводятся контесты с задачами на исследование и оптимизацию. Интересен тем, что писать программу необязательно — даются только тестовые данные. Ответы можно расчитывать вручную, или просто гадать их на кофейной гуще.
Ruby Quiz | http://rubyquiz.com/ — подборка задач для программистов на Ruby, но решения можно писать и на других языках.
Prolog Problems | https://sites.google.com/site/prologsite/ — аналогично с Ruby Quiz. Подборка задач для программистов, использующих Prolog.
MindCipher | http://www.mindcipher.com/ — сборник занимательных математических и логических задач (в том числе и по программированию).
Сборник задач для практики от СppStudio | http://cppstudio.com/cat/285/ Рекомендуется решать на С++, но можно и на других языках.
CheckIO | http://www.checkio.org/ — сайт с задачами для программистов всех уровней, оформленный в виде игры.
E-olimp | http://www.e-olymp.com/ru/ — украинская тестирующая система с большим архивом задач.
Empire of Code | https://empireofcode.com/ — сайт для программистов, где необходимо писать код, реализующий стратегию и тактику виртуальных бойцов.
Operation Go | http://gocode.io/ — практика написания кода на Go в игровой форме.
Russian AI Cup | http://russianaicup.ru/ — ежегодный контест от mail.ru по разработке ИИ. Участвовать могут все — от школьников до профессионалов. Победителям и призерам так же полагаются крутые призы. Обязательно примите участие, если вы заинтересованы этой темой.
Задачи Типичного Программиста | https://tproger.ru/category/problems/ — есть задачи с собеседованний, причем на самые разные темы: от логических и математических до алгоритмических.