Călătoria majorității oamenilor către învățarea programării începe cu o singură căutare pe noapte târzie pe Google.

De obicei, este ceva de genul „Învață ______”

Dar cum decid ei în ce limbă să caute?

„Ei glumesc întotdeauna despre Java pe Silicon Valley. Cred că ar trebui să învăț asta. ”

Sau:

„Haskell. Atât de fierbinte chiar acum. Haskell. “

Sau:

„Că Go Gopher este atât de drăguț drăguț”.

Ce limbaj de programare ar trebui sa invat mai intai

Și apoi suntem și noi ceilalți. Probabil căutăm ceva de genul:

ad-banner

„Ce limbaj de programare ar trebui să învăț mai întâi?”

Puține întrebări sunt atât de frecvente încât primesc tratamentul infografic complet. Dar acesta este unul dintre ele:

1611732851 113 Ce limbaj de programare ar trebui sa invat mai intai
Credit de imagine

Decizia asupra primului limbaj de programare poate fi un proces distractiv – cam ca unul dintre acele „Care personaj Quentin Tarantino ești?” teste de personalitate.

Dar, înainte de a fugi să-l înveți pe Ruby, deoarece ți-a plăcut să te joci cu Play-Doh în copilărie, lasă-mă să-ți reamintesc: miza este destul de mare aici.

Vă vor dura sute de ore de antrenament pentru a deveni competenți chiar și de la distanță cu primul limbaj de programare.

Deci, ar trebui să luați în considerare următorii factori:

  • piața muncii pentru limbă
  • perspectivele pe termen lung pentru limbă
  • cât de ușor este de învățat limba
  • ce proiecte poți construi în timp ce înveți (și împărtășești cu prietenii, astfel încât să poți rămâne motivat)

Fiecare an aduce noi limbaje de programare și, împreună cu ele, noi lucrări academice. Și noi benzi desenate web.

Serios. Verificați această bijuterie de luna trecută:

Ce limbaj de programare ar trebui sa invat mai intai

Când vine vorba de alegerea unui prim limbaj de programare, nu lipsesc opțiunile. Pentru a o restrânge puțin, iată cele mai frecvente căutări pe Google legate de programarea învățării, în ultimii 12 ani:

1611732851 873 Ce limbaj de programare ar trebui sa invat mai intai

Java a avut urcușuri și coborâșuri.

Python a crescut treptat pentru a deveni cea mai populară alegere.

Dar ascuns sub acestea se află Micul motor care ar putea, încet, alegând popularitate în ultimii ani. Și acel motor este JavaScript.

Înainte de a vorbi despre aceste limbaje de programare, permiteți-mi să clarific:

  • Nu argumentez că o limbă este în mod obiectiv mai bună decât oricare alta
  • Sunt de acord că dezvoltatorii ar trebui să învețe în cele din urmă mai multe limbi
  • Susțin că mai întâi ar trebui să învețe bine o limbă. Și – după cum probabil puteți ghici din textul cu capul în jos din titlul meu – limba respectivă ar trebui să fie JavaScript.

Să începem lucrurile explorând modul în care programarea este predată în prezent în școală.

Informatică 101

1611732851 783 Ce limbaj de programare ar trebui sa invat mai intai

Universitățile au predat în mod tradițional programarea sub umbrela informaticii, care în sine este adesea văzută ca o extensie a matematicii sau ca o legătură cu o diplomă de inginerie electrică.

Desigur, după cum probabil ați auzit până acum:

„Educația în informatică nu poate face pe nimeni un programator expert decât să studieze pensulele și pigmentul poate face pe cineva un pictor expert”. – Eric S. Raymond

Începând din 2016, multe universități tratează în continuare programarea ca și cum ar fi informatică și informatică ca și cum ar fi matematică.

Ca rezultat, multe cursuri introductive de programare se concentrează pe limbaje cu nivel scăzut de abstractizare, cum ar fi C, sau pe limbaje concentrate matematic, cum ar fi MATLAB.

Și președințiile de departament rămân în general pe curs, indicând clasamentele anuale ale limbajului de programare, cum ar fi Indicele TIOBE, sau acesta din IEEE:

1611732852 820 Ce limbaj de programare ar trebui sa invat mai intai

Majoritatea acestor clasamente arată practic identice cu cum erau acum 10 ani.

Dar schimbarea se întâmplă. Chiar și în mediul academic.

În 2014, Python a depășit Java ca cea mai populară limbă de predare din programele de top din domeniul informaticii din SUA.

1611732852 399 Ce limbaj de programare ar trebui sa invat mai intai

Și totuși o altă schimbare este obligată … în cele din urmă … să se întâmple.

Pentru că, dacă te uiți la limbile folosite efectiv de forța de muncă, acesta prezintă o imagine foarte diferită:

1611732852 146 Ce limbaj de programare ar trebui sa invat mai intai
JavaScript este de departe cel mai popular limbaj folosit de cei 49.397 de dezvoltatori care au răspuns la sondajul Stack Overflow din 2016.

Mai mult de jumătate din toți dezvoltatorii folosesc JavaScript. Este vital pentru dezvoltarea web front-end și din ce în ce mai relevant pentru dezvoltarea back-end. Și se extinde rapid în domenii precum dezvoltarea jocurilor și Internetul obiectelor.

Anunțurile de post menționează, de asemenea, JavaScript mai mult decât orice limbaj de programare, altul decât Java:

1611732852 529 Ce limbaj de programare ar trebui sa invat mai intai
Date de la cel mai mare agregator de postări din lume, Într-adevăr.com

Nu întâmplător am construit-o pe a noastră comunitate open sourcecurriculum-ul în jurul JavaScript. În ultimii doi ani, peste 5.000 de persoane au folosit Free Code Camp pentru a obține primul lor loc de muncă pentru dezvoltatori.

Nu pledez pentru JavaScript, deoarece îl învăț. Învăț JavaScript deoarece este cea mai sigură cale către un prim job de dezvoltator.

Dar JavaScript este potrivit pentru dvs.? Este demn să fii primul tău limbaj de programare? Să explorăm acei factori pe care i-am menționat mai devreme.

Factorul # 1: Piața muncii

Dacă învățați să programați pur și simplu din curiozitate intelectuală, nu ezitați să ignorați acest factor. Dar dacă – îți place marea majoritate a oamenilor care învață să programeze – doriți să folosiți această abilitate pentru a obține un loc de muncă, acesta este un aspect important.

După cum am menționat mai devreme, Java este menționat în mai multe posturi de locuri de muncă decât orice alt limbaj de programare. JavaScript este o secundă apropiată.

Dar iată ce se întâmplă cu JavaScript: deși există de 20 de ani, abia recent a devenit un instrument serios pe care companii precum Netflix, Walmart și PayPal ar construi aplicații întregi.

Drept urmare, o mulțime de companii angajează dezvoltatori JavaScript, dar nu sunt atât de mulți pe piața muncii.

1611732852 547 Ce limbaj de programare ar trebui sa invat mai intai
Date de la Într-adevăr.com

Există 2.7 dezvoltatori Java care concurează pentru fiecare poziție Java deschisă. Concurența pentru joburile PHP și iOS este la fel de acerbă.

Dar pentru fiecare poziție JavaScript deschisă, există doar 0,6 dezvoltatori JavaScript. Este foarte mult o piață a vânzătorilor pentru dezvoltatorii cu abilități JavaScript.

Factorul # 2: Perspectivele pe termen lung

Proiectul JavaScript mediu primește de două ori mai multe cereri de extragere decât proiectul mediu Java, Python sau Ruby. Și, în plus, JavaScript crește mai repede decât orice altă limbă populară.

1611732853 757 Ce limbaj de programare ar trebui sa invat mai intai
Sursa: The GitHub’s 2016 Starea Octoversului

Ecosistemul JavaScript beneficiază, de asemenea, de o investiție grea de bani și talent ingineresc de la companii precum Google, Microsoft, Facebook și Netflix.

De exemplu, TypeScript (un superset JavaScript tipizat static) are peste 100 de colaboratori open source, dintre care mulți sunt angajați Microsoft și Google, fiind plătiți să lucreze la el.

Acest tip de cooperare între companii este mai greu de găsit cu Java. Oracle – care deține efectiv Java prin achiziționarea Sun Microsystems – de multe ori dă în judecată companii care încearcă să se extindă asupra acestuia.

Factorul # 3: Dificultatea de a învăța

1611732853 160 Ce limbaj de programare ar trebui sa invat mai intai
Aceasta este o parodie a unui Benzi desenate XKCD.

Majoritatea programatorilor ar fi de acord că limbajele de scriptare la nivel înalt sunt relativ ușor de învățat. JavaScript intră în această categorie, împreună cu Python și Ruby.

Chiar dacă universitățile predau încă limbi precum Java și C ++ ca limbi străine, sunt mult mai greu de învățat.

Factorul # 4: Proiecte pe care le puteți construi cu el

Aici strălucește cu adevărat JavaScript. JavaScript rulează pe orice dispozitiv care are un browser, chiar acolo în browser. Puteți construi practic orice cu JavaScript și să îl partajați oriunde.

Datorită omniprezenței JavaScript, co-fondatorul Stack Overflow, Jeff Atwood, a inventat acum faimoasa sa lege:

„Orice aplicație care poate sa să fie scris în JavaScript, voi să fie în cele din urmă scrise în JavaScript. ”

Și cu fiecare lună care trece, Legea lui Atwood este puternică.

Java a promis odată că va rula și peste tot. Poate vă amintiți Applet-uri Java. Oracle i-a ucis oficial la începutul acestui an.

Python suferă de aceleași probleme:

„Cum pot să dau acest joc pe care l-am făcut prietenului meu? Chiar mai bine, există o modalitate prin care să pot pune asta pe telefonul meu, astfel încât să le pot arăta copiilor la școală fără ca aceștia să fie nevoiți să-l instaleze? Um. ” – James Hague în Retragerea Python ca limbă de predare

În schimb, iată câteva aplicații pe care membrii comunității noastre open source le-au construit în browserele lor pe CodePen. Puteți să faceți clic și să le utilizați chiar în browser:

1611732853 792 Ce limbaj de programare ar trebui sa invat mai intai
Jocul Simon în stilul anilor 1970
1611732853 336 Ce limbaj de programare ar trebui sa invat mai intai
Jocul vieții lui Conway
1611732853 670 Ce limbaj de programare ar trebui sa invat mai intai
Căutare Wikipedia tematică Star Wars
1611732854 691 Ce limbaj de programare ar trebui sa invat mai intai
Un joc pe șenile cu temnițe roguelike

Învață bine o limbă. Apoi învățați un al doilea.

Dacă tot sari de la o limbă la alta, nu vei ajunge departe.

Pentru a trece dincolo de elementele de bază, trebuie să învățați bine prima limbă. Apoi, a doua limbă va fi mult, mult mai ușoară.

De acolo, vă puteți ramifica și puteți deveni un dezvoltator mai complet prin învățarea multor limbi:

  • C este o modalitate excelentă de a învăța cum funcționează de fapt computerele în ceea ce privește gestionarea memoriei și este utilă în calculele de înaltă performanță
  • C ++ este excelent pentru dezvoltarea jocurilor.
  • Python este minunat pentru știință și statistici.
  • Java este important dacă doriți să lucrați la companii mari de tehnologie.

Dar învățați mai întâi JavaScript.

OK, acum voi încerca imposibilul – voi încerca să anticipez obiecțiile din secțiunea de comentarii.

Obiecția nr. 1: Dar JavaScript nu este lent?

JavaScript este – pentru cele mai practice scopuri – la fel de rapid ca limbajele de înaltă performanță.

JavaScript (Node.js) este ordine de mărime mai rapide decât Python, Ruby și PHP.

De asemenea, este aproape la fel de rapid ca limbajele de înaltă performanță, cum ar fi C ++, Java și Go.

Iată rezultatele celui mai cuprinzător punct de referință recent în mai multe limbi:

1611732854 678 Ce limbaj de programare ar trebui sa invat mai intai

Obiecție # 2: Dar JavaScript nu este tastat static

La fel ca Python și Ruby, JavaScript este tastat dinamic, ceea ce este convenabil. Dar poți intra în necazuri. Aici intenționez exampleArray a fi o matrice. I-am setat valorile, apoi îi verific lungimea – adică numărul de elemente pe care le conține.

exampleArray = [1, 2]
-> [1, 2]

exampleArray.length
-> 2

Dar apoi l-am atribuit accidental să fie un șir.

exampleArray = “text”
-> “text”

exampleArray.length
-> 4

Aceste tipuri de erori se întâmplă tot timpul în limbi tastate dinamic. Majoritatea dezvoltatorilor au pus doar verificări pentru a le preveni și scriu teste în consecință.

Dacă absolut trebuie să aveți tastarea statică în primul limbaj de programare, vă recomand totuși să învățați mai întâi JavaScript. Apoi puteți prelua rapid TypeScript.

„Tiposcriptul are o curbă de învățare, dar dacă știți deja JavaScript, acesta va fi unul lin.” – Alex Ewerlöf pe TypeScript

Obiecție nr. 3: Dar chiar vreau să fac o aplicație mobilă

Încă recomand mai întâi să învățați JavaScript.

  1. JavaScript oferă mai multe instrumente pentru crearea de aplicații mobile native, cum ar fi Cordova unghiulară și Reactive native.
  2. Pentru ca aplicația dvs. mobilă să facă ceva interesant, va avea probabil nevoie de un back-end adecvat, pe care veți dori să îl construiți cu un cadru de dezvoltare web adecvat, cum ar fi Node.js + Express.js.

De asemenea, merită subliniat faptul că cele mai bune zile ale dezvoltării aplicațiilor mobile ar putea fi foarte bine în spatele ei.

Pentru început, oricât oamenii folosesc aplicații mobile, aproape jumătate din toate locurile de muncă pentru dezvoltatori sunt de dezvoltare web. Comparați acest lucru cu doar 8% din locurile de muncă care implică dezvoltarea de aplicații mobile.

1611732854 684 Ce limbaj de programare ar trebui sa invat mai intai
Ocupațiile a 49.525 de dezvoltatori, pe baza răspunsurilor la 2016 Stack Overflow studiu.

Marea viziune a „există o aplicație pentru asta” nu s-a împlinit. În schimb, majoritatea proprietarilor de smartphone-uri au a oprit descărcarea de aplicații noi.

Sigur – încă folosesc aplicații. În principal Facebook, Google Maps și puțini alții. Ca atare, o mare parte din cererea de dezvoltatori de aplicații mobile este concentrată la câțiva angajatori mari.

Perspectivele acestor locuri de muncă în domeniul dezvoltării mobile sunt greu de prognozat. Multe aspecte ale dezvoltării, întreținerii și distribuției aplicațiilor mobile sunt mai ușoare cu JavaScript. Așadar, companii precum Facebook și Google investesc mult în instrumente mai bune pentru a le construi folosind JavaScript.

Începând cu 2016, aproape toată dezvoltarea este dezvoltare web. Totul atinge acea mare platformă care este „webul”. Și următorul val de dispozitive cu care veți vorbi în jurul casei dvs. și mașini care vă vor ridica copiii de la școală – vor fi conectați cu toții împreună și pe web.

Și asta înseamnă JavaScript.

Obiecția nr. 4: JavaScript nu este un limbaj de jucărie care a fost scris în 10 zile?

JavaScript are un istorie ciudată.

Veți auzi, fără îndoială, pe oameni spargând glume pe seama ei.

Ei bine, oamenilor le place să urască și pe C ++. Și la fel ca JavaScript, C ++ a reușit în ciuda acestei ură, iar acum este aproape peste tot.

Așadar, dacă cineva îți dă dificultăți în a învăța JavaScript în loc de limbajul de elită al săptămânii, amintește-ți faimoasele cuvinte ale tipului care a creat C ++:

„Există doar două tipuri de limbaje de programare: acei oameni se încurcă mereu și cei pe care nimeni nu îi folosește.” – Bjarne Stroustrup

Scriu doar despre programare și tehnologie. daca tu urmărește-mă pe Twitter Nu-ți voi pierde timpul. ?