воскресенье, 15 января 2017 г.

28 cайтів, на яких можна повирішувати задачі з програмування



Не секрет, що кращий спосіб підвищити свої навички в програмуванні - це практикуватися і тільки практикуватися. 




Ми підготували для вас величезну добірку сайтів з завданнями з програмування на найрізноманітніші теми




Codeforces - безсумнівно найпопулярніша і відома платформа в усьому світі для проведення змагань на алгоритмику. Крім великих контестов сайт часто проводить свої «раунди» - учасникам даються 5 завдань на дві години. Є система рейтингу, на основі якої учасники діляться на два дивізіону. Таким чином, профі не змагається з новачками безпосередньо. Всі завдання можна здати, щоб переглянути навіть після змагань. Крім «раундів» доступні і «тренування» - завдання з минулих змагань публікуються в режимі дорешіванія.


Topcoder - американська платформа, яка ненабагато відстає за популярністю від Codeforces. Примітна тим, що крім алгоритмічних контестов, які описувалися раніше, на ній проводяться і змагання з промислового програмування і марафони - змагання з завданнями на дослідження, для яких немає єдиного вірного алгоритму, а є лише відповідь, що підходить більше або менше. На вирішення таких завдань учасникам зазвичай дається одна або два тижні.









Timus Online Judge  - російськомовна (хоча англійська мова також підтримується) платформа, на якій понад тисячу завдань вдало відсортовані за темами і за складністю. 






SPOJ - Великий англомовний сайт з більш ніж 20000 завданнями на абсолютно різні теми: динамічне програмування, графи, структури даних і т.д. Зрідка проводить контести, які не представляють інтересу, якщо ви не живете в країнах їх проведення.








informatics.mccme.ru— платформа с множеством теоретических материалов и задач по соответствующим темам. Все очень удобно собрано по категориям и темам. Также содержит большую базу задач с прошедших олимпиад школьников.










Сodechef - менш великий аналог Codeforces і TopCoder, теж з величезним архівом завдань і регулярними контест.


acmp.ru - сайт, який буде корисний всім завдяки своєму архіву завдань, зручно (і здебільшого правильно) відсортовані за складністю і темам. 






projecteuler.net - збірник 500 завдань, які неможливо вирішити без знань математичних і геометричних алгоритмів. Іноді використовується на співбесідах для прийому на роботу, щоб краще з'ясувати алгоритмічну підготовку претендента.



 kaggle.com - дана платформа відрізняється від описаних раніше тим, що тут не проводиться алгоритмічних змагань - тільки завдання на дослідження (як в марафонах на вищенаведеному TopCoder). Наприклад, одне із завдань, на якій зараз там перевіряють свої вміння учасники, полягає в розпізнанні написаних вручну цифр. Ось кілька символів, для яких це не так просто, як здається (прим. Авт. - Деякі з них я не зміг розпізнати навіть не програмно):















codecombat - буде більше корисний для новачків. Ця платформа наочно демонструє, що навчання програмуванню - це не так складно і нудно, як може здатися. Сайт представлений у вигляді гри, яка розділена на кілька частин, зростаючих за складністю. У кожній частині міститься безліч завдань на ті чи інші теми, покликані навчити програмуванню з нуля будь-якої людини. Якщо ви давно мріяли зайнятися програмуванням, але ніяк не знаходили в собі, обов'язково зверніть увагу на цей сайт.








hackerrank - навпаки буде більше цікавий професіоналам, які вже багато чого вміють. На цьому сайті зібрано безліч завдань на найрізноманітніші розділи Computer Science: традиційна алгоритміка, ІІ, машинне навчання і т.д. Якщо ви вирішите багато завдань, то вами можуть зацікавитися роботодавці, регуляторно моніторять цю платформу.







Codewars — збірник задач на різні теми, від алгоритмів до шаблонів проектування


Programming Praxis блог, який включає в себе багато цікавих завдань.

Al Zimmermann’s Programming Contests - платформа, на якій раз у півроку проводяться контести з завданнями на дослідження і оптимізацію. Цікавий тим, що писати програму необов'язково - даються тільки тестові дані. Відповіді можна розраховувати вручну, або просто гадати їх на кавовій гущі.





MindCipher - збірник цікавих математичних та логічних задач (в тому числі і з програмування).

CheckIO — сайт з завданнями для програмістів всіх рівнів, оформлений у вигляді гри.


E-olimp — українська тестирующая система з великим архівом задач.


Empire of Code - сайт для програмістів, де необхідно писати код, який реалізує стратегію і тактику віртуальних бійців.








Operation Go - практика написання коду на Go в ігровій формі.





Russian AI Cup - щорічний контест від mail.ru по розробці ІІ. Брати участь можуть всі - від школярів до професіоналів. Переможцям і призерам так само покладаються круті призи. Обов'язково візьміть участь, якщо ви зацікавлені цією темою.




Задачи Типичного Программиста — да, на нашому сайті теж є завдання з співбесіду, причому на самі різні теми: від логічних і математичних до алгоритмічних. У цю добірку включені кращі з них (вона регулярно оновлюється).






Ruby Quiz  - добірка завдань для програмістів на Ruby, але рішення можна писати і на інших мовах.


Prolog Problems - аналогічно з Ruby Quiz. Добірка завдань для програмістів, що використовують Prolog.

PythonChallange — сайт з загадками, зростаючими за складністю. Для їх вирішення необхідно написати програму на Python.

LeetCode — сайт с задачами для підготовки до співбесід.

C Puzzles - добірка головоломок, специфічний для мови С, з усіма його примхами. Наприклад, дано код, який, за логікою, не повинен працювати, але, тим не менш, він компілюється і навіть правильно виконує своє завдання. Треба зрозуміти, чому так? На цьюму сайті ви зможете придбати навик налагодження програм і читання коду інших.

CodinGame — сайт, на якому програмування і відеоігри зливаються в єдине ціле. Тут ви знайдете велику колекцію завдань на програмування, оформлених у вигляді відеоігор. Також тут зрідка (раз в два місяці) проводяться контести, що містять в собі завдання на оптимізацію і ІІ, переможці яких отримують цінні призи. А якщо ви вирішите багато завдань, то на вас можуть звернути увагу компанії, які набирають на цьому сайті працівників!