17 предизвикателства при кодирането, за да изострите критичното си мислене

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

Много платформи и уебсайтове станаха достъпни през годините, предоставяйки вълнуващи предизвикателства за програмисти от всички нива. Независимо дали става въпрос за нов език, който се опитвате да научите, или искате да изпробвате съобразителността си в стресови ситуации — предизвикателствата при програмирането могат да бъдат едновременно забавление и изпитание.

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

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

Edabit

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

Edabit е утвърдена платформа, която предлага малки предизвикателства за кодиране, които могат бързо да подобрят вашите способности за кодиране.

HackerRank

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

В момента разработчиците могат да използват Java, Python, JavaScript, PHP, C++ и SQL за решаване на предоставените предизвикателства.

Всеки път, когато изпратите вашите решения, платформата автоматично оценява вашето изпращане въз основа на фактори като точност. След това вие сте поставени в глобалната класация, докато култивирате постижения (значки) по пътя. Има и „спринтове“, което е друг термин за състезания, хоствани от платформа.

House of Codes написа вълнуващо произведение, изобразяващо най-добрите 50 предизвикателства в Hacker Rank. Ако имате любопитството към него, струва си да го прочетете, с много примери и материали.

Кодърбайт

Coderbyte е уникално приложение, базирано на модерни практики за програмиране. Основната му характеристика са предизвикателствата при кодирането, които са помогнали на милиони хора по целия свят да станат по-добри разработчици. За разлика от подобни приложения на пазара, Кодърбайт е посветен на това да помага на хората да се справят с проблеми на ниво индустрия.

Едно от предимствата на използването на тази платформа е, че тя работи съвместно с някои от водещите софтуерни марки. Например Google, LogMeIn, HBO, PWC и много други. Ако някога пожелаете да намерите работа в такива компании, тогава бъдете сигурни, че Coderbyte може да ви даде необходимите предизвикателства, за да тествате уменията си.

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

  Ето как да го направите бързо

Организациите могат да се регистрират и да управляват своя процес на проверка. Като станете регистрирана организация, вие получавате достъп до допълнителни инструменти, които могат да ви помогнат да проверите всеки разработчик поотделно.

Кодови войни

Красотата на последователната практика на кодиране е, че винаги измисляте нови начини за решаване на проблеми. Кодови войни капитализира тази идея. Базирана на „ката“, платформата предоставя упражнения и предизвикателства на голямо разнообразие от езици.

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

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

Ето някои от поддържаните езици:

  • Clojure
  • Ръжда
  • Суифт
  • Python
  • Haskell
  • Черупка
  • JavaScript
  • PHP
  • Котлин
  • Скала

И много други езици са в БЕТА програмата, налични, но с потенциални затруднения.

По принцип Edabit иска да предостави платформа, която може да преодолее пропастта между начинаещи и напреднали програмисти. Можете да проверите на Пътна карта за да видите пълния списък с функции.

CodinGame

Игрите като платформи за обучение не са съвсем ново нещо, но изглежда, че сега има много повече играчи в областта. CodinGame е само една от многото платформи, които предоставят предизвикателства за програмиране чрез геймифицирано изживяване. Вместо да пишете ясен код, вие изграждате игрова среда. Целият код, който пишете, по някакъв начин влияе върху начина, по който върви „играта“.

Ретроспекция, платформи като CodinGame може да помогне много на разработчиците на технологии относно причината и следствието. И как определени решения водят до конкретни резултати.

Това не е просто един от онези евтини сайтове, където пишете небрежен JavaScript код. CodinGame включва някои алгоритми от най-високо ниво и има безброй програмисти от световна класа, които помагат да се предоставят решения както на нови, така и на опитни разработчици.

HackerEarth

HackerEarth е добре позната платформа, която провежда хакатони, предизвикателства за кодиране и различни видове състезания.

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

И как е възможно това? Е, най-вече защото истинската цел на HackerEarth е да предоставя решения за набиране на персонал на първокласни технологични компании. Ако искаш да те смятат за най-добрия, трябва да общуваш с най-добрите. Това е печеливша ситуация за вас.

Programmr

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

От страна на предизвикателствата, Programmr има персонализиран набор от предизвикателства за Java, C++, PHP, C#, Ruby, Python и iOS. Всеки комплект включва 100+ предизвикателства, които могат да бъдат сортирани по популярност (въз основа на гласовете на потребителите) и други фактори.

  Как да споделяте и присвоявате напомняния на iPhone и iPad

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

Кодиращият влак

Даниел Шифман е самонаправена армия от един човек, която създава и произвежда страхотен материал за програмиране. Кодиращият влак е личната YouTube платформа на Daniels, където той споделя вълнуващи и полезни видеоклипове за справяне с проблеми, свързани с програмирането.

Но той има този интересен подход. Вместо да хоства всичко на уебсайта си, той използва YouTube като платформа за предизвикателството, а уебсайта си като платформа за решението.

Запазете това, на което се основават предизвикателствата му P5.js и Обработка — две популярни решения, използвани в изкуството и графичния дизайн.

Wolfram Предизвикателства

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

Въпреки че нашият фокус не е върху Wolfram Alpha, нова граница, въведена в началото на 2018 г. — Wolfram Предизвикателства.

Има много примери за предизвикателства, които човек може да си представи, които включват намирането на „най-евтиното решение“ или „най-доброто решение“. И това е подобна настройка с типичните задачи за машинно обучение: намиране на функция (да речем базирана на невронна мрежа), която се представя най-добре при класифициране на определен тестов набор и т.н.

В сравнение с други уебсайтове/платформи в този обзор, Wolfram покрива широка област от предизвикателства, а не само кодиране. Като цяло, ако искате да изострите критичното си мислене – това ще бъде платформата, за да го направите!

LeetCode

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

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

Има също така статии, дискусионни табла и други аспекти на общността за насърчаване на безпроблемно изживяване. Много потребители на LeetCode са „дипломирани“, за да работят в компании като Uber, Amazon, Stripe и други.

Codeforces

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

И да започнете е по-лесно, отколкото си мислите.

Упражнение

Страхотно е да се видят инициативите зад много платформи за предизвикателства за кодиране.

И Упражнение не е изключение. Катрина Оуен, основателят, казва, че нейната цел е „да помогне на хората да научат достатъчно кодиране [using Exercism] за да могат да си намерят работа в развитие.”.

Към момента на писане на това има повече от 2600 упражнения на 48 езика — всичките безплатни! Искали ли сте да научете Kotlinили може би се ориентирайте по-добре във Vim? Сега е вашият шанс да научите някои нови умения чрез интересни предизвикателства!

Кодиер

Колкото и изненадващо да е за някои от вас, все още има кодиране, което се случва и в front-end разработката!

Предизвикателствата тук са обединени предимно от потребителите. Например, някой може да публикува „карта за дизайн на материали“ и да ви предизвика да я направите по-добра или да създадете подобна вариация.

  Как да премахнете заключване за активиране на iPhone

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

Flexbox Froggy

Говорейки за преден край, как върви вашето разбиране за Flexbox? Винаги е хубаво да получите малко опресняване на паметта, за да останете ясни и точни!

Flexbox Froggy е хубава малка игра, която ви превежда през 28 стъпки на различни употреби и подравнявания на Flexbox. Може би това е по-малко предизвикателство, отколкото напомняне, но можете ли да преминете всички нива, без да търсите отговори?

Мрежова градина е много подобна игра; единствената разлика е, че работите с функцията Grid, а не с Flex.

PyBites

Python е широко приет като най-простият език за изучаване. И често се препоръчва на новите програмисти да проучат първо. Но не позволявайте това да ви обезкуражава да вярвате в капацитета на Python.

В наши дни много машинно обучение и генериране на набори от данни се извършват изключително с Python — и това не е малко!

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

CodeCombat

CodeCombat е още една игра за кодиране, предоставяща динамична и предизвикателна среда за кодиране. Разликата между продукт като CodinGame е, че CodeCombat се фокусира върху учителите. В резултат на това можете да използвате тази платформа, за да преподавате програмиране и решаване на проблеми на училищно ниво.

Има инструменти, материали и други ресурси, специално пригодени за тази цел. Освен това е много забавно. Игрите на CodeCombat, които създавате, са едновременно интересни, но и визуално зашеметяващи. А игрите вече са толкова популярни сред децата. Даването на предизвикателството на децата да развиват своята виртуална среда може да ги вдъхнови да изградят нещо невероятно в бъдеще!

Тинкър

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

И не се заблуждавайте, Tynker е адаптиран към съвременните стандарти повече, отколкото си мислите. Ако имате деца, които пълзят в тийнейджърските си години, можете да им позволите да пишат решения с помощта на Python или JavaScript, вместо да използват само Blocks.

Заключителни думи: Предизвикайте себе си!

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

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

Може също да помислите за DataCamp, за да научите науката за данните, която включва предизвикателства и проекти при кодирането.

След това какво ще кажете да намерите как да добавяте коментари на популярни езици за програмиране?