17 provocări de codificare pentru a vă ascuți gândirea critică

Îmbunătățește-ți Abilitățile de Programare prin Provocări de Codare

Dacă dorești să-ți perfecționezi competențele într-un limbaj de programare pe care-l cunoști deja sau să te familiarizezi cu unul nou, participarea la provocări de codare este una dintre cele mai eficiente metode.

De-a lungul timpului, au apărut numeroase platforme și site-uri web care oferă provocări captivante pentru programatori de toate nivelurile. Fie că dorești să înveți un limbaj nou sau să-ți testezi abilitățile într-un mediu solicitant, provocările de codare pot fi atât o sursă de divertisment, cât și un instrument de evaluare a cunoștințelor tale.

Pe lângă beneficiile evidente, participarea la aceste provocări îți dezvoltă abilitățile de rezolvare a problemelor, aprofundează înțelegerea limbajului de programare și oferă satisfacția de a învăța algoritmi noi. După cum bine știi, algoritmii sunt des întâlniți în procesul de recrutare, așa că familiarizarea cu aceștia îți poate oferi un avantaj competitiv.

Acest articol prezintă câteva dintre cele mai bune site-uri web și platforme dedicate provocărilor de codare. Unele sunt potrivite pentru începători, în timp ce altele se adresează unui public mai experimentat. În plus, am inclus și câteva resurse educative pentru copii, ținând cont de faptul că programarea pentru copii a devenit din ce în ce mai populară.

Edabit

Cea mai simplă metodă de a asimila cunoștințe noi este prin interacțiunea regulată cu domeniul pe care vrei să-l înveți. Acest principiu se aplică și în programare. Citirea unor cărți de specialitate îți va oferi cunoștințe teoretice, dar fără a le aplica practic, progresul tău va fi limitat.

Edabit este o platformă binecunoscută, care oferă provocări de codare concise, menite să-ți îmbunătățească rapid abilitățile de programare.

HackerRank

HackerRank este o companie axată pe furnizarea de provocări de codare atât pentru programatorii individuali, cât și pentru organizații. De obicei, provocările constau în instrucțiuni pentru un proiect pe care trebuie să-l duci la bun sfârșit, modul în care îl abordezi fiind la latitudinea ta.

În prezent, dezvoltatorii pot folosi limbaje precum Java, Python, JavaScript, PHP, C++ și SQL pentru a rezolva provocările disponibile.

După ce trimiți soluțiile, platforma le evaluează automat, ținând cont de criterii precum acuratețea. Apoi, ești inclus într-un clasament global și, pe măsură ce progresezi, primești insigne de realizare. Platforma organizează și „sprinturi”, care sunt, de fapt, concursuri de codare.

House of Codes a publicat un articol interesant care prezintă primele 50 de provocări de pe HackerRank. Dacă ești curios, merită să-l citești, deoarece oferă numeroase exemple și informații utile.

Coderbyte

Coderbyte este o platformă unică, concepută pe baza practicilor moderne de programare. Principalul său atu sunt provocările de codare, care au ajutat milioane de oameni din întreaga lume să devină programatori mai buni. Spre deosebire de alte platforme similare, Coderbyte are ca scop principal să îi ajute pe utilizatori să rezolve problemele cu care se confruntă industria IT.

Unul dintre avantajele acestei platforme este colaborarea cu unele dintre cele mai importante companii de software, cum ar fi Google, LogMeIn, HBO și PWC. Dacă îți dorești o carieră în cadrul acestor companii, Coderbyte îți poate oferi provocările de care ai nevoie pentru a-ți testa abilitățile.

După ce te înregistrezi, poți alege dintr-o gamă variată de provocări și algoritmi. Există sute de mii de soluții trimise de alți utilizatori, care te pot ajuta să înțelegi mai bine anumite concepte de programare.

Organizațiile se pot înregistra și pot gestiona procesul de recrutare folosind această platformă. Prin înregistrarea ca organizație, obții acces la instrumente suplimentare care te pot ajuta să monitorizezi progresul fiecărui dezvoltator în parte.

CodeWars

Frumusețea practicii constante în programare constă în faptul că descoperi mereu noi abordări pentru a rezolva problemele. CodeWars valorifică această idee. Platforma, bazată pe „katas” (exerciții de programare), oferă o varietate de provocări și exerciții în diverse limbaje de programare.

Pe măsură ce rezolvi exercițiile, poți obține puncte, dar poți consulta și soluțiile propuse de alți programatori.

Dacă te-ai hotărât să exersezi un nou limbaj, atunci CodeWars este un site excelent pe care-l poți adăuga la marcajele tale.

Iată câteva dintre limbajele suportate:

  • Clojure
  • Rust
  • Swift
  • Python
  • Haskell
  • Shell
  • JavaScript
  • PHP
  • Kotlin
  • Scala

Și multe alte limbaje sunt în programul BETA, disponibile, dar cu potențiale blocaje.

Practic, Edabit își propune să ofere o platformă care să reducă decalajul dintre începători și programatorii avansați. Poți consulta Foaia de Parcurs pentru a vedea lista completă de funcții.

CodinGame

Platformele de învățare bazate pe jocuri nu sunt un concept nou, dar se pare că tot mai mulți actori intră în acest domeniu. CodinGame este una dintre numeroasele platforme care oferă provocări de programare printr-o experiență de joc. În loc să scrii cod în mod tradițional, construiești un mediu de joc. Codul pe care îl scrii influențează modul în care „jocul” se desfășoară.

Astfel, platforme ca CodinGame pot ajuta programatorii să înțeleagă relația dintre acțiune și efect, adică cum anumite decizii conduc la rezultate specifice.

Acesta nu este doar un site simplu unde scrii cod JavaScript neglijent. CodinGame implică algoritmi de nivel superior și are numeroși programatori de talie mondială care contribuie la furnizarea de soluții atât pentru programatorii începători, cât și pentru cei experimentați.

HackerEarth

HackerEarth este o platformă cunoscută care organizează hackathoane, provocări de codare și diverse tipuri de competiții.

Este, de asemenea, un loc unde poți obține informații utile despre procesul de angajare în companiile moderne. Nu toate, dar o mare parte din provocările de pe HackerEarth se regăsesc în întrebările de la interviurile de angajare.

De ce se întâmplă acest lucru? În principal, deoarece HackerEarth se concentrează pe furnizarea de soluții de recrutare pentru companiile de top din domeniul tehnologiei. Dacă vrei să fii considerat cel mai bun, trebuie să înveți de la cei mai buni. Este o situație avantajoasă pentru ambele părți.

Programmr

Programmr este un laborator digital dinamic pentru programatori de toate nivelurile. Cu Programmr, poți scrie cod, îl poți compila și poți executa proiecte direct din browser. Platforma acceptă majoritatea limbajelor de programare folosite în prezent. Indiferent dacă dorești să creezi o aplicație mobilă sau o structură de bază de date, Programmr îți oferă instrumentele necesare.

În ceea ce privește provocările, Programmr oferă seturi personalizate pentru Java, C++, PHP, C#, Ruby, Python și iOS. Fiecare set conține peste 100 de provocări, care pot fi sortate în funcție de popularitate (pe baza voturilor utilizatorilor) și alți factori.

Ceea ce diferențiază această platformă de altele este faptul că îți poți folosi experiența pentru a obține feedback instantaneu, fie sub forma unui certificat pentru un anumit limbaj, fie prin feedback de la alți utilizatori.

The Coding Train

Daniel Shiffman este un creator independent care produce materiale educative excelente despre programare. The Coding Train este canalul personal de YouTube al lui Daniel, unde acesta publică videoclipuri interesante și utile despre cum să abordezi problemele legate de programare.

Abordarea sa este interesantă. În loc să găzduiască totul pe site-ul său, folosește YouTube ca platformă pentru provocări, iar site-ul său ca platformă pentru soluții.

Provocările sale se bazează pe P5.js și Processing, două soluții populare folosite în artă și design grafic.

Wolfram Challenges

Wolfram este o companie renumită la nivel mondial care activează în domeniul informaticii. Platforma lor a impresionat pe mulți prin posibilitățile sale.

Deși nu ne concentrăm pe Wolfram Alpha, o inovație introdusă la începutul lui 2018, vom menționa Wolfram Challenges.

Există o multitudine de provocări care implică găsirea „soluției cu costul cel mai mic” sau „cea mai bună potrivire”. Aceasta este o abordare similară sarcinilor tipice de învățare automată: găsirea unei funcții (bazată, de exemplu, pe o rețea neuronală) care să funcționeze cel mai bine la clasificarea unui anumit set de date.

În comparație cu alte site-uri și platforme din această listă, Wolfram acoperă o gamă largă de provocări, nu doar de codare. Per ansamblu, dacă dorești să-ți perfecționezi gândirea critică, aceasta este platforma ideală.

LeetCode

LeetCode este un produs bine structurat, nu doar un site care găzduiește provocări aleatorii. LeetCode oferă o modalitate de a te pregăti pentru viitoarele oportunități.

Platforma oferă metode moderne de învățare, provocări complexe și un tablou de bord excelent.

În plus, platforma oferă articole, forumuri de discuții și alte resurse comunitare pentru a încuraja o experiență interactivă. Mulți utilizatori LeetCode au reușit să se angajeze la companii precum Uber, Amazon, Stripe și altele.

Codeforces

Codeforces se adresează programatorilor dedicați și pasionați. Ne referim la ingineri software, pentesteri, pasionați de inteligență artificială și învățare automată! Fiind o platformă pentru programatori avansați, Codeforces este cunoscută pentru clasamentul său competitiv.

Să începi este mai ușor decât crezi.

Exercism

Este minunat să vedem inițiativele din spatele multor platforme de provocare de codare.

Și Exercism nu face excepție. Katrina Owen, fondatoarea, spune că scopul său este să „ajute oamenii să învețe programare [folosind Exercism] suficient pentru a-și găsi un loc de muncă în dezvoltare.”

La momentul scrierii acestui articol, există peste 2.600 de exerciții în 48 de limbaje, toate fiind gratuite! Vrei să înveți Kotlin sau poate să te familiarizezi cu Vim? Acum este șansa ta de a învăța abilități noi prin provocări interesante!

Codier

Oricât de surprinzător ar fi pentru unii, programarea se practică și în dezvoltarea front-end!

Provocările de aici sunt în mare parte create de utilizatori. De exemplu, cineva poate publica o „Carte de design material” și te provoacă să o îmbunătățești sau să creezi o variantă similară.

Rezultatul este posibilitatea de a-ți pune în practică ideile creative. Și este plăcut să vezi cum alții abordează probleme similare în timp real. Poți reutiliza codul trimis de alții în propriile proiecte.

Flexbox Froggy

Apropo de front-end, cât de bine înțelegi Flexbox? Este întotdeauna bine să-ți reîmprospătezi cunoștințele!

Flexbox Froggy este un joc simpatic care te ghidează prin 28 de pași cu diferite utilizări și aliniamente Flexbox. Poate că este mai mult un memento decât o provocare, dar reușești să termini toate nivelurile fără să cauți răspunsuri?

Grid Garden este un joc foarte asemănător; singura diferență este că lucrezi cu funcția Grid, nu cu Flex.

PyBites

Python este recunoscut ca fiind unul dintre cele mai ușor de învățat limbaje de programare. De multe ori este recomandat începătorilor ca prim limbaj de studiat. Dar nu te lăsa descurajat de ușurința sa, Python este un limbaj puternic.

În prezent, multe procese de învățare automată și generare de seturi de date sunt realizate exclusiv cu Python, ceea ce nu este puțin lucru!

PyBites te ține la curent cu cele mai recente noutăți. Articole, provocări de codare și alte informații esențiale te ajută să-ți perfecționezi abilitățile. Fiecare provocare include o continuare sub forma unei analize, unde îți poți compara codul și poți explora modul corect de a rezolva o problemă.

CodeCombat

CodeCombat este un alt joc de codare care oferă un mediu dinamic și captivant. Diferența dintre CodeCombat și un produs precum CodinGame este că CodeCombat se adresează profesorilor. Prin urmare, poți folosi această platformă pentru a preda programarea și rezolvarea problemelor la nivel școlar.

Există instrumente, materiale și alte resurse adaptate special pentru acest scop. În plus, este și foarte distractiv. Jocurile CodeCombat pe care le construiești sunt interesante și impresionante din punct de vedere vizual. Deoarece jocurile sunt deja populare printre copii, provocarea de a-și dezvolta propriul mediu virtual îi poate inspira să creeze ceva uimitor în viitor!

Tynker

După cum am menționat pe scurt în introducere, avem ceva și pentru părinți. Tynker este o platformă distractivă care ajută copiii să învețe programare. Se bazează pe o interfață simplă de tip „drag-and-drop”, unde copiii pot alege dintre opțiunile disponibile și pot rezolva problemele prezentate.

Să nu te înșeli, Tynker este adaptat standardelor moderne mai mult decât crezi. Dacă ai copii care se apropie de adolescență, îi poți lăsa să scrie soluții folosind Python sau JavaScript, în loc să folosească doar blocuri.

Concluzie: Provoacă-te!

În total, probabil există 10.000 de provocări de codare unice pe toate site-urile și platformele pe care le-am menționat. Este imposibil să le parcurgi pe toate.

Recomandarea mea este să alegi o platformă care crezi că se potrivește cel mai bine nevoilor tale și să te concentrezi pe aceasta. Poți să-ți faci prieteni, să înveți lucruri noi și, cine știe, poate vei învăța suficient pentru a obține un nou loc de muncă la o companie bine plătită!

De asemenea, poți lua în considerare DataCamp pentru a învăța știința datelor, care include provocări și proiecte de codare.

Apoi, ce spui să descoperi cum să adaugi comentarii în limbaje de programare populare?