Putovanje većine ljudi prema učenju programiranja započinje jednim kasnim noćnim pretraživanjem Googlea.
Obično je to nešto poput "Nauči ______"
Ali kako odlučuju koji će jezik tražiti?
“Uvijek se šale na račun Jave u Silicijskoj dolini. Pretpostavljam da bih to trebao naučiti. "Ili:
“Haskell. Trenutno vruće. Haskell. "Ili:
"Taj Gopher je tako sladak."
A tu smo i mi ostali. Vjerojatno ćemo potražiti nešto poput:
"Koji programski jezik trebam prvo naučiti?"Malo je pitanja koja se toliko često postavljaju da bi im se pružio cjelovit infografski tretman. Ali ovo je jedan od njih:

Odluka o vašem prvom programskom jeziku može biti zabavan proces - nekako poput jednog od onih "Koji ste lik Quentina Tarantina?" kvizovi ličnosti.
Ali prije nego što ste pobjegli učiti Ruby jer ste kao dijete uživali igrati se s Play-Dohom, podsjetim vas: ovdje je ulog prilično velik.
Trebat će vam stotine sati vježbe da biste postali makar i kompetentni za svoj prvi programski jezik.
Stoga biste trebali uzeti u obzir sljedeće čimbenike:
- tržište rada za jezik
- dugoročne izglede za jezik
- kako je jezik lako naučiti
- koje projekte možete graditi dok učite (i podijeliti s prijateljima kako biste ostali motivirani)
Svaka godina donosi nove programske jezike, a s njima i nove akademske radove. I novi web stripovi.
Ozbiljno. Pogledajte ovaj dragulj od prošlog mjeseca:

Kad je riječ o odabiru prvog programskog jezika, ne nedostaje mogućnosti. Da bismo ga malo suzili, evo najčešćih Googleovih pretraživanja povezanih s učenjem programiranja u zadnjih 12 godina:

Java je imala uspona i padova.
Python je postupno porastao i postao najpopularniji izbor.
No, ispod njih je skriven Mali motor koji je mogao, polako birajući popularnost tijekom posljednjih nekoliko godina. A taj je motor JavaScript.
Prije nego što govorim o ovim programskim jezicima, dopustite mi da pojasnim:
- Ne tvrdim da je bilo koji jezik objektivno bolji od bilo kojeg drugog
- Slažem se da bi programeri na kraju trebali naučiti više od jednog jezika
- Tvrdim da bi prvo trebali dobro naučiti jedan jezik. I - kao što vjerojatno možete pretpostaviti iz naopakog teksta u mom naslovu - taj bi jezik trebao biti JavaScript.
Počnimo stvari istražujući kako se programiranje trenutno uči u školi.
Računalne znanosti 101

Sveučilišta tradicionalno podučavaju programiranje pod kišobranom računalnih znanosti, koje se često vide kao produžetak matematike ili povezivanje s diplomom elektrotehnike.
Naravno, kao što ste do sada već mogli čuti:
"Obrazovanje iz računalnih znanosti ne može nikoga učiniti profesionalnim programerom kao što proučavanje četkica i pigmenta ne može nekoga učiniti profesionalnim slikarom." - Eric S. RaymondOd 2016. godine mnoga sveučilišta i dalje se programiraju kao da se radi o računalstvu, a informatika kao o matematici.
Kao rezultat toga, mnogi se uvodni tečajevi programiranja usredotočuju na jezike niske razine apstrakcije poput C ili jezike usredotočene na matematiku poput MATLAB-a.
A stolice odjela uglavnom ostaju na tečaju, ukazujući na godišnje ljestvice programskih jezika poput TIOBE indeksa ili ovog iz IEEE:

Većina ovih ploča s rezultatima izgleda gotovo identično kao prije 10 godina.
Ali promjena se događa. Čak i u akademskoj zajednici.
2014. Python je pretekao Javu kao najpopularniji jezik nastave u vrhunskim američkim programima informatike.

I još će se jedna promjena zasigurno ... na kraju ... dogoditi.
Jer ako pogledate jezike koje zapravo koristi radna snaga, to daje sasvim drugačiju sliku:

Više od polovice svih programera koristi JavaScript. Od vitalnog je značaja za web razvoj web-mjesta i sve važniji za back-end razvoj. I brzo se širi na područja poput razvoja igara i Interneta stvari.
Oglasi za posao također spominju JavaScript više od bilo kojeg programskog jezika osim Jave:

Nije slučajno da smo kurikulum zajednice otvorenog koda izgradili oko JavaScript-a. U protekle dvije godine više od 5000 ljudi koristilo je Free Code Camp kako bi dobilo svoj prvi posao programera.
Ne zagovaram JavaScript jer ga podučavam. Predajem JavaScript jer je to najsigurniji put do prvog posla programera.
No, je li JavaScript pravi za vas? Je li vrijedno biti svoj prvi programski jezik? Istražimo one čimbenike koje sam ranije spomenuo.
Čimbenik 1: tržište rada
Ako učite programirati isključivo iz intelektualne znatiželje, slobodno preskočite ovaj faktor. Ali ako - poput velike većine ljudi koji uče programirati - želite ovu vještinu iskoristiti za posao, to je važno.
Kao što sam već spomenuo, Java se spominje u više oglasa za posao nego bilo koji drugi programski jezik. JavaScript je blizu.
Ali ovdje je stvar s JavaScriptom: iako postoji već 20 godina, tek je nedavno postao ozbiljan alat koji će tvrtke poput Netflixa, Walmarta i PayPala oko sebe graditi cijele aplikacije.
Kao rezultat toga, mnoštvo tvrtki unajmljuje programere za JavaScript, ali jednostavno ih nema toliko na tržištu rada.

Postoje 2,7 Java programera koji se natječu za svaku otvorenu Java poziciju. Konkurencija za PHP i iOS poslove slična je žestokoj.
No, za svaku otvorenu JavaScript poziciju postoji samo 0,6 JavaScript programera. To je u velikoj mjeri tržište prodavača za programere koji imaju JavaScript sposobnosti.
Faktor 2: Dugoročni izgledi
Prosječni JavaScript projekt prima dvostruko više zahtjeva za povlačenje od prosječnog Java, Python ili Ruby projekta. A povrh svega, JavaScript raste brže od bilo kojeg drugog popularnog jezika.

JavaScript ekosustav također ima koristi od velikog ulaganja novca i inženjerskog talenta od tvrtki poput Googlea, Microsofta, Facebooka i Netflixa.
Na primjer, TypeScript (statički upisani JavaScript) sadrži više od 100 suradnika otvorenog koda, od kojih su mnogi zaposlenici Microsofta i Googlea koji su plaćeni za rad na njemu.
Ovu vrstu suradnje među tvrtkama teže je pronaći s Javom. Oracle - koji učinkovito posjeduje Javu kupnjom Sun Microsystems - često tuži tvrtke koje se pokušavaju proširiti na nju.
Faktor 3: Poteškoće u učenju

Većina programera složila bi se da je skriptne jezike na visokoj razini relativno lako naučiti. JavaScript spada u ovu kategoriju, zajedno s Pythonom i Rubyjem.
Iako sveučilišta još uvijek podučavaju jezike kao što su Java i C ++ kao prve jezike, znatno ih je teže naučiti.
Čimbenik 4: Projekti koje možete graditi s njim
Ovdje JavaScript zaista blista. JavaScript se izvodi na bilo kojem uređaju koji ima preglednik, upravo tamo u pregledniku. S JavaScriptom možete u osnovi izraditi bilo što i podijeliti ga bilo gdje.
Zbog sveprisutnosti JavaScripta, suosnivač Stack Overflowa Jeff Atwood skovao je svoj danas poznati zakon:
"Bilo koja aplikacija koja se može napisati na JavaScript-u, na kraju će biti napisana na JavaScript-u."I sa svakim mjesecom, Atwoodov zakon ostaje snažan.
Java je jednom obećala da će se pokretati i svugdje. Možda se sjećate Java apleta. Oracle ih je službeno ubio ranije ove godine.
Python pati od približno istih problema:
“Kako ovu igru koju sam napravio mogu dati svom prijatelju? Još bolje, postoji li način da ovo stavim na svoj telefon kako bih ga mogao pokazati djeci u školi, a da ga ne moraju instalirati? Hm. " - James Hague u mirovini s Pythonom kao nastavnim jezikomSuprotno tome, evo nekoliko aplikacija koje su članovi naše zajednice otvorenog koda ugradili u svoje preglednike na CodePenu. Možete kliknuti i koristiti ih izravno u vašem pregledniku:




Dobro naučite jedan jezik. Zatim naučite drugi.
Ako nastavite skakati s jezika na jezik, nećete daleko stići.
Da biste prešli osnovno, morate dobro naučiti svoj prvi jezik. Tada će vaš drugi jezik biti puno, puno lakši.
Odatle se možete razgranati i postati zaokruženiji programer tako što ćete naučiti puno jezika:
- C je izvrstan način da naučite kako računala zapravo rade u smislu upravljanja memorijom, a koristan je u računalu visokih performansi
- C ++ je izvrstan za razvoj igara.
- Python je sjajan za znanost i statistiku.
- Java je važna ako želite raditi u velikim tehnološkim tvrtkama.
Ali prvo naučite JavaScript.
U redu, sad ću pokušati nemoguće - pokušat ću predvidjeti prigovore iz odjeljka za komentare.
Prigovor br. 1: Ali nije li JavaScript spor?
JavaScript je - za većinu praktičnih svrha - brz kao i jezici visokih performansi.
JavaScript (Node.js) redovi je brži od Pythona, Rubyja i PHP-a.
Također je gotovo jednako brz kao i jezici visokih performansi poput C ++, Java i Go.
Evo rezultata najopsežnijeg nedavnog mjerila za više jezika:

Prigovor br. 2: Ali JavaScript nije statički upisan
Kao i Python i Ruby, JavaScript se dinamički upisuje, što je prikladno. Ali možete upasti u nevolje. Ovdje namjeravam exampleArray
biti niz. Postavljam njegove vrijednosti, a zatim provjeravam duljinu - što znači broj elemenata koje sadrži.
exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2
Ali onda to slučajno dodijelim kao niz.
exampleArray = “text” -> “text” exampleArray.length -> 4
Takve se pogreške stalno događaju na dinamički tipkanim jezicima. Većina programera samo postavi provjere kako bi ih spriječili i u skladu s tim napišu testove.
Ako apsolutno morate imati statično tipkanje na svom prvom programskom jeziku, tada vam ipak preporučam da prvo naučite JavaScript. Tada možete brzo pokupiti TypeScript.
"Typescript ima krivulju učenja, ali ako već znate JavaScript, bit će glatka." - Alex Ewerlöf na TypeScript-uPrigovor br. 3: Ali stvarno želim napraviti mobilnu aplikaciju
I dalje preporučujem prvo učiti JavaScript.
- JavaScript sadrži nekoliko alata za izradu izvornih mobilnih aplikacija, poput Angular Cordova i React Native.
- Da bi vaša mobilna aplikacija zapravo učinila nešto zanimljivo, vjerojatno će joj trebati odgovarajući back end, koji ćete htjeti izgraditi s odgovarajućim okvirom za web razvoj, poput Node.js + Express.js.
Također, vrijedi naglasiti da bi iza njega mogli biti najbolji dani u razvoju mobilnih aplikacija.
Za početak, koliko god ljudi koristili mobilne aplikacije, gotovo polovica svih poslova programera je web razvoj. Usporedite to sa samo 8% poslova koji uključuju razvoj mobilnih aplikacija.

Velika vizija "postoji aplikacija za to" nije se ostvarila. Umjesto toga, većina vlasnika pametnih telefona prestala je preuzimati nove aplikacije.
Naravno - i dalje koriste aplikacije. Uglavnom Facebook, Google Maps i nekolicina drugih. Kao takav, velik dio potražnje za programerima mobilnih aplikacija koncentriran je na nekoliko velikih poslodavaca.
Teško je predvidjeti izglede za te poslove u razvoju mobilnih uređaja. Mnogi su aspekti razvoja, održavanja i distribucije mobilnih aplikacija jednostavniji s JavaScriptom. Tako tvrtke poput Facebooka i Googlea ulažu velika sredstva u bolje alate za njihovu izradu pomoću JavaScript-a.
Od 2016. godine gotovo je sav razvoj web razvoj. Sve se dotiče te velike platforme koja je "web". I sljedeći val uređaja s kojima ćete razgovarati oko kuće, i automobila koji dovode vašu djecu iz škole - svi će oni biti spojeni i putem interneta.
A to znači JavaScript.
Prigovor br. 4: Nije li JavaScript igrački jezik koji je napisan u deset dana?
JavaScript ima neobičnu povijest.
Nesumnjivo ćete čuti kako ljudi zbijaju šale na njegov račun.
Pa i ljudi vole mrziti C ++. I poput JavaScript-a, C ++ je uspio usprkos ovoj mržnji, a sada je to gotovo svugdje.
Dakle, ako vam itko oteža učenje jezičnog jezika umjesto elitnog tjedna u tjednu, sjetite se poznatih riječi tipa koji je stvorio C ++:
"Postoje samo dvije vrste programskih jezika: oni ljudi uvijek kuckaju i oni koje nitko ne koristi." - Bjarne StroustrupPišem samo o programiranju i tehnologiji. Ako me pratite na Twitteru, neću vam gubiti vrijeme. ?