Cu câteva săptămâni în urmă, am postat despre experiența mea încercând să învăț JavaScript, C #, Python și multe altele de la Codecademy, Udemy și Routech, împreună cu evadarea din purgatoriul tutorial și progresul efectiv ca dezvoltator.

Decizia asupra unui limbaj de programare poate fi extrem de provocatoare și consumatoare de timp, deoarece există zeci de opțiuni acolo, cu o mulțime de informații conflictuale. În acest articol, voi împărtăși câteva opțiuni bazate pe propria experiență de învățare a codului, cu sugestii despre cum să aleg un limbaj de programare, să scap de purgatoriul tutorial și să progresez ca dezvoltator.

Iată o versiune video a acestei postări, dacă preferați (vizionare de 11 minute):

Scenariul nr. 1: știi ce vrei să construiești

Adesea, în articole precum acestea (sau în infografia „Ce limbaj de codare ar trebui să învăț?” Cu care probabil sunteți familiarizați intim), vi se cere să vă gândiți critic la ceea ce doriți să construiți după ce ați învățat să cod.

Această abordare este utilă dacă aveți o idee despre ce doriți do cu un limbaj de programare după ce l-ați învățat, dar nu atât de mult dacă doriți doar învață să codezi, așa cum a fost experiența mea. Voi acoperi ambele scenarii în acest articol.

Dacă știți ce direcție doriți să luați cariera dvs. de codificare după ce ați învățat un limbaj de programare, cel mai probabil veți avea un timp mai ușor să aflați ce limbă să învățați mai întâi. Iată câteva sugestii în acest caz.

Dezvoltare front-end: JavaScript (și HTML / CSS)

Dacă știți deja că doriți să lucrați la „front end-ul” site-urilor web – adică orice vede utilizatorul când ajunge pe un site web – ar trebui să vă începeți călătoria de codare cu învățarea JavaScript. Probabil veți începe prin a învăța HTML și CSS, care formează coloana vertebrală a aproape oricărui site web, apoi veți începe să adăugați JavaScript pentru a îmbunătăți funcționalitatea și interactivitatea site-urilor dvs.

JavaScript este destul de omniprezent ca limbaj de programare și are un on-ramp mai ușor decât alte limbaje de nivel inferior, cum ar fi C ++. Este un punct excelent dacă nu știi ce vrei să înveți … dar mai multe despre asta mai târziu.

Dezvoltare Back End: Python, C # sau JavaScript (și SQL)

Să presupunem că sunteți mai interesat să aflați despre curajele site-urilor web, să gestionați „back end-ul” și să vă încercați administrarea bazei de date. Aveți o mulțime de opțiuni aici, iar cea mai simplă cale este Python, care este un limbaj prietenos cu începătorii, care are cadre mature (de ex. Django și Balon) pentru dezvoltarea back-end.

De asemenea, nu puteți greși cu C #, care vă va expune la Microsoft Ecosistemul .NET și un limbaj de programare care, odată ce intrați în buruieni cu el, este o plăcere cu care să lucrați. Și dacă vă gândiți să mergeți la „stivă completă” – adică, doriți să faceți front end și dezvoltare back end – s-ar putea să luați în considerare învățarea JavaScript, care are cadre backend mai tinere, dar foarte apreciate, cum ar fi Expres și Koa. Acest lucru vă va ușura procesul de învățare, deoarece veți utiliza aceeași limbă pentru a codifica ambele stive.

Indiferent de limba pe care o alegeți pentru dezvoltarea back-end-ului, cel mai probabil veți finaliza și adăugarea SQL în setul de instrumente pentru gestionarea bazei de date, așa că puneți-l pe radar.

Dezvoltare joc 2D: JavaScript sau C #

Am scris în altă parte despre ce motor ar trebui să folosiți pentru a face jocuri 2D, dar iată slabul.

Există un lot dintre motoarele de jocuri 2D, dintre care multe se pot potrivi sau nu fanteziei dvs. de dezvoltator de jocuri și fiecare cu propriile beneficii, idiosincrazii și curba de învățare. Unii dintre ei, cum ar fi Game Maker Studio 2, de exemplu, utilizează propriile limbaje proprii pentru a rula scripturi, dar de fapt ți-aș recomanda să înveți mai întâi JavaScript sau C #, chiar dacă ai în vedere să folosești un alt motor de joc pe termen lung.

Cu JavaScript, puteți utiliza cadre precum Phaser pentru a crea jocuri 2D sau motoare cu funcții complete, cum ar fi Construiți 3 (care utilizează de fapt dezvoltarea drag-and-drop cu spațiu pentru scripturi personalizate). Dacă alegeți să învățați C #, veți lucra cu Unity 2D, sau poate MonoGame – dar aș recomanda de fapt să începeți cu tutoriale non-motor (de ex .NET) pentru a obține mai întâi un bun control al limbii.

Învățarea JavaScript sau C # vă va oferi cunoștințele fundamentale de codificare de care veți avea nevoie pentru a aborda un alt motor de joc, cum ar fi Game Maker, oferind în același timp lucruri precum programarea celor mai bune practici și organizarea unui cod curat.

Dezvoltare joc 3D: C # sau C ++

Există o mulțime de opțiuni pentru învățarea codificării pentru dezvoltarea jocurilor 3D și v-aș sugera să începeți cu C # sau C ++. De fapt, dacă nu sunteți foarte pricepuți la tehnologie sau nu aveți deja un background în programare, v-aș recomanda să începeți cu C # și să mergeți până la C ++. Veți avea o curbă de învățare mai ușoară și veți învăța concepte fundamentale de programare fără a fi nevoie să vă ocupați de lucruri precum gestionarea memoriei și codul de nivel inferior.

Probabil că veți ajunge să învățați amândouă în orice caz, dar dacă începeți cu C #, puteți juca Unity 3D, apoi faceți-vă drumul către C ++ cu Unreal Engine 4.

Știința datelor / Învățarea automată: Python

Deși există opțiuni în alte limbi pentru învățarea științei / analizei datelor și învățarea automată, Python este în prezent standardul de aur pentru acest domeniu al codificării. Este un limbaj destul de simplu de învățat și vă va expune la obiceiuri bune de programare și la cadre utilizate pe scară largă, deci nu puteți greși aici.

Scenariul 2: Nu știi ce vrei să construiești

Există posibilitatea distinctă că ați petrecut zile, săptămâni sau chiar luni de zile căutând prin articole, videoclipuri, postări reddit și întrebări Stack Overflow citind despre limbaje de programare și încă nu aveți idee unde să vă investiți timpul, deoarece nu știți ce vrei să construiești.

Am fost acolo. Este deranjant.

Recomandarea mea pentru dvs., oricât de banală ar părea, este să alegeți doar una. Literal, oricare dintre ele, chiar dacă nu sunt listate aici. Mergeți să învățați JavaScript. Sau Python. Sau Rust. Sau Haskell.

OK, poate nu Haskell. Dar alege ceva, și rămâneți cu el suficient de mult timp pentru a învăța elementele de bază și a vedea dacă există posibilitatea să vă placă să utilizați acest limbaj pentru a construi cu el. Și rețineți două lucruri în timp ce faceți acest lucru:

  1. Stabiliți o limită de timp pentru dvs. De exemplu, „Voi lua următoarele trei luni să învăț JavaScript folosind tutoriale Routech”. Dacă, la sfârșitul acelei perioade, simți că faci progrese și este interesant pentru tine, continuă! Dacă nu, ar putea fi timpul să vă reconsiderați alegerea limbii și să vedeți dacă există ceva acolo care ar putea fi mai potrivit pentru dvs.
  2. Construiți ceva care nu se află în tutoriale. Acesta este un pas crucial în dezvoltarea dumneavoastră ca dezvoltator. O voi acoperi în secțiunea următoare.

Scenariul nr. 3: Ești blocat în Tutorialul Purgatoriu

Dacă te-ai trezit făcând tutorial după tutorial, pe aceleași site-uri web sau pe site-uri diferite, fără a simți vreodată că progresezi, s-ar putea să fii foarte frustrat de experiența de a învăța să codezi. Am fost acolo și vă pot ajuta.

Primul pas este să vă gândiți la ce tutoriale de programare sunt bune și la ce nu. Cele mai multe tutoriale online – în special cele care vă permit să codificați direct în browser – sunt excelente pentru a vă învăța cum să programați.

Pe de altă parte, acestea nu sunt bune pentru a vă învăța cum să fiți programator.

Cele mai bune tutoriale vă vor expune la concepte fundamentale de codificare și vă vor cere să aplicați aceste cunoștințe pentru a rezolva puzzle-uri și proiecte. Sunt instrumente minunate de învățare care pot, dacă sunt folosite dincolo de scopul lor, să devină cârje care vă vor înăbuși învățarea.

Un programator, de exemplu, nu sta toată ziua făcând tutoriale. Un programator programe, și tocmai asta trebuie să faceți pentru a progresa după ce ați însușit elementele de bază.

Cel mai bun mod de a progresa în calitate de dezvoltator este să alegeți un proiect în limba preferată și să vă propuneți să îl faceți. Dacă învățați JavaScript, de exemplu, puteți alege să creați un site web simplu cu HTML / CSS și să adăugați o anumită interactivitate jQuery. Probabil veți începe prin crearea unui mediu de dezvoltare integrat, uitând imediat cum să faceți ceva ce ați învățat în tutoriale, să vă frustrați, să vă îndreptați către Google, să găsiți răspunsul și să continuați. Apoi veți face progrese, veți rămâne blocat, veți căuta Stack Overflow, veți zgâria capul în documentația oficială, poate veți împărtăși codul cu cineva și veți repeta întregul proces.

Și veți face exact ceea ce fac programatorii atunci când construiți un nou proiect.

În cele din urmă, nu puteți greși cu ce limbaj de programare alegeți, chiar dacă nu se află pe această listă. Dacă terminați să alegeți unul, să învățați elementele de bază, să faceți un proiect și să decideți că nu este pentru dvs., acea experiență vă va ajuta în continuare pe termen lung. Informațiile pe care le veți învăța în acest proces vor fi utile, indiferent de limba pe care o veți folosi pentru proiectele dvs.

O poți face!

Dacă v-a plăcut acest articol, vă rugăm să luați în considerare verificându-mi jocurile și cărțile, abonându-mă la canalul meu YouTube, sau aderarea la Entromanta Discordie.

MS Farzan, Ph.D. a scris și a lucrat pentru companii de jocuri video de profil și site-uri editoriale precum Electronic Arts, Perfect World Entertainment, Modus Games și MMORPG.com și a servit ca Community Manager pentru jocuri precum Dungeons & Dragons Neverwinter și Mass Effect: Andromeda. El este directorul creativ și principalul designer de jocuri Entromancy: Un RPG Cyberpunk Fantasy și autor al Trilogia Nightpath. Găsiți MS Farzan pe Twitter @sumator.