10-те най-популярни уебсайтове за предизвикателство за кодиране [Актуализирано за 2020 г.]

Чудесен начин да подобрите уменията си, когато се научавате да кодирате, е чрез решаване на предизвикателствата за кодиране. Решаването на различни видове предизвикателства и пъзели може да ви помогне да станете по-добър решаващ проблем, да научите тънкостите на езика за програмиране, да се подготвите за интервюта за работа, да научите нови алгоритми и др.

По-долу е даден списък на някои популярни уебсайтове с предизвикателства за кодиране с кратко описание на това, което всеки от тях предлага.

1. TopCoder

TopCoder е една от оригиналните платформи за конкурентно програмиране онлайн. Той предоставя списък с алгоритмични предизвикателства от миналото, които можете да изпълните самостоятелно директно онлайн, като използвате техния редактор на код. Техните популярни мачове с единичен кръг се предлагат няколко пъти месечно в точно определено време, когато се състезавате срещу други, за да решавате предизвикателствата най-бързо с най-добър резултат.

Най-добре класираните потребители на TopCoder са много добри състезателни програмисти и редовно се състезават в състезания по програмиране. Най-добре класираният потребител поддържа свой собствен блог, озаглавен „ Алгоритми“ седмично от Петър Митричев, където пише за състезания по кодиране, алгоритми, математика и др.

2. Кодербайт

Coderbyte предоставя над 200 предизвикателства за кодиране, които можете да разрешите директно онлайн на един от 10 езика за програмиране (вижте този пример). Предизвикателствата варират от лесно (намиране на най-голямата дума в низ) до трудно (отпечатайте максимално съвпадение на мощността на графика).

Те също така предоставят колекция от уроци по алгоритми, уводни видеоклипове и курсове за подготовка на интервюта. За разлика от HackerRank и други подобни уебсайтове, вие можете да видите решенията, които другите потребители предлагат за всяко предизвикателство, освен официалните решения, публикувани от Coderbyte.

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

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

Не можете директно да кодирате на уебсайта в редактор, така че ще трябва да напишете решение на собствения си компютър и след това да предоставите решението на техния уебсайт.

4. HackerRank

HackerRank предлага предизвикателства за няколко различни домейни като алгоритми, математика, SQL, функционално програмиране, AI и др. Можете да разрешите всички предизвикателства директно онлайн (вижте този пример). Те осигуряват дискусия и класация за всяко предизвикателство, а повечето предизвикателства идват с редакция, която обяснява повече за предизвикателството и как да се подходи към него, за да се намери решение. Освен редакционната статия, понастоящем не можете да видите решенията на други потребители на HackerRank.

HackerRank също така предоставя възможност на потребителите да подават заявления и да кандидатстват за работни места чрез решаване на спонсорирани от компанията предизвикателства за кодиране.

5. CodeChef

CodeChef е индийски уебсайт за конкурентно програмиране, който предлага стотици предизвикателства. Можете да пишете код в техния онлайн редактор и да разглеждате колекции от предизвикателства, които са разделени на различни категории в зависимост от нивото ви на умения (вижте този пример). Те имат голяма общност от програмисти, които допринасят за форумите, пишат уроци и участват в състезанията по кодиране на CodeChef.

6. Упражнение.io

Упражнението е уебсайт за предизвикателство за кодиране, който предлага 3100+ предизвикателства, обхващащи 52 различни езика за програмиране. След като изберете език, който искате да овладеете, се справяте с предизвикателствата за кодиране направо на вашата машина (Exercism има собствен интерфейс на командния ред, който можете да изтеглите от GitHub).

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

7. Codewars

Codewars предоставя голяма колекция от предизвикателства за кодиране, подадени и редактирани от тяхната собствена общност. Можете да решите предизвикателствата директно онлайн в редактора им на един от няколко езика. Можете да видите дискусия за всяко предизвикателство, както и потребителски решения.

8. LeetCode

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

Те също имат секция Mock Interview, която е специално за подготовка за интервю за работа, те организират свои собствени конкурси за кодиране и имат раздел за статии, които да ви помогнат да разберете по-добре определени проблеми.

9. SPOJ

Sphere Online Judge (SPOJ) е онлайн съдия, който предоставя над 20 000 предизвикателства за кодиране. Можете да изпратите кода си в онлайн редактор. SPOJ също е домакин на собствени състезания и има зона за потребители, за да обсъдят предизвикателствата за кодиране. Понастоящем те не предоставят никакви официални решения или редакции, както правят някои други уебсайтове.

10. CodinGame

CodinGame е малко по-различен от другите уебсайтове, защото вместо просто да решавате предизвикателствата за кодиране в редактор, вие всъщност участвате в писането на кода за игри, които играете директно онлайн. Можете да видите списък с игри, предлагани в момента тук, и пример за една тук. Играта идва с описание на проблема, тестови случаи и редактор, където можете да напишете кода си на един от 20+ езика за програмиране.

Въпреки че този уебсайт се различава от типичните уебсайтове за конкурентно програмиране като гореспоменатите, той все още е популярен сред програмистите, които обичат да решават предизвикателства и да участват в състезания.

Този списък се основава на няколко неща: моят собствен опит с използването на уебсайтове, някои търсения в Google, публикации в Quora и статии като този и този. Също така посещавах някои форуми и подредакти като r / learnprogramming, за да видя какви уебсайтове обикновено се препоръчват от потребителите там. Отказ от отговорност: Работя в Coderbyte, който е един от уебсайтовете, споменати по-горе.