Ktorý programovací jazyk by ste sa mali naučiť najskôr v roku 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Cesta väčšiny ľudí k tomu, ako sa naučiť programovať, sa začína jediným vyhľadávaním Google v noci.

Spravidla je to niečo ako „Naučte sa ______“

Ako sa však rozhodnú, ktorý jazyk budú hľadať?

"V Silicon Valley vždy vtipkujú o Jave." Asi by som sa to mal naučiť. “

Alebo:

"Haskell." Momentálne tak horúco. Haskell. “

Alebo:

"Ten go gopher je taký roztomilý."

A potom sme tu my ostatní. Pravdepodobne budeme hľadať niečo ako:

"Ktorý programovací jazyk by som sa mal naučiť ako prvý?"

Niekoľko otázok je kladených tak často, že dostanú úplné infografické ošetrenie. Ale toto je jeden z nich:

Rozhodovanie o vašom prvom programovacom jazyku môže byť zábavný proces - niečo ako jeden z tých, „Ktorá postava Quentina Tarantina ste?“ osobnostné kvízy.

Ale skôr ako ste utiekli učiť sa Ruby, pretože vás bavilo hrať ako dieťa s Play-Doh, dovoľte mi, aby som vám pripomenul: stávky sú tu dosť vysoké.

Bude to trvať stovky hodín praxe, kým sa stanete čo i len vzdialene kompetentnými vo svojom prvom programovacom jazyku.

Mali by ste teda zvážiť nasledujúce faktory:

  • trhu práce pre daný jazyk
  • dlhodobé vyhliadky pre tento jazyk
  • aké ľahké je jazyk sa naučiť
  • aké projekty môžete počas učenia stavať (a zdieľať ich s priateľmi, aby ste zostali motivovaní)

Každý rok prináša nové programovacie jazyky a s nimi aj nové akademické práce. A nové webové komiksy.

Vážne. Prezrite si tento klenot z minulého mesiaca:

Pokiaľ ide o výber prvého programovacieho jazyka, nie je nedostatok možností. Aby som to trochu zúžil, uvádzam najbežnejšie vyhľadávania Google súvisiace s učením programovania za posledných 12 rokov:

Java má svoje vzostupy aj pády.

Python sa postupne stával najobľúbenejšou voľbou.

Ale pod nimi je zastrčený Malý motor, ktorý mohol, za posledných pár rokov si pomaly získaval popularitu. A tým motorom je JavaScript.

Predtým, ako hovorím o týchto programovacích jazykoch, dovoľte mi objasniť:

  • Netvrdím, že niektorý jazyk je objektívne lepší ako ktorýkoľvek iný
  • Súhlasím, že vývojári by sa mali nakoniec naučiť viac ako jeden jazyk
  • Tvrdím, že najskôr by sa mali dobre naučiť jeden jazyk. A - ako asi tušíte z prevráteného textu v mojom nadpise - tým jazykom by mal byť JavaScript.

Začnime veci preskúmaním toho, ako sa v súčasnosti v škole vyučuje programovanie.

Počítačová veda 101

Univerzity tradične vyučujú programovanie pod záštitou počítačovej vedy, ktorá sa sama o sebe často považuje za rozšírenie matematiky alebo prepojenie s titulom elektrotechnika.

Ako ste už možno počuli, samozrejme:

"Vzdelávanie v oblasti informatiky nemôže z nikoho urobiť odborného programátora o nič viac, ako zo štúdia štetcov a pigmentu môže niekto urobiť odborného maliara." - Eric S. Raymond

Od roku 2016 sa na mnohých univerzitách stále zaobchádza s programovaním ako s informatikou a s informatikou ako s matematikou.

Výsledkom je, že veľa úvodných kurzov programovania sa zameriava na jazyky s nízkou úrovňou abstrakcie, ako je C, alebo na matematicky zamerané jazyky, ako je MATLAB.

A predsedovia katedier zvyčajne zostávajú v kurze, poukazujúc na výročné tabuľky programovacieho jazyka, ako je TIOBE Index alebo tento z IEEE:

Väčšina z týchto výsledkových tabuliek vyzerá prakticky rovnako ako pred 10 rokmi.

Ale zmena sa skutočne deje. Aj na akademickej pôde.

V roku 2014 predbehol Python Javu ako najobľúbenejší vyučovací jazyk v špičkových programoch informatiky v USA.

A ešte jedna zmena sa určite… nakoniec… stane.

Pretože keď sa pozriete na jazyky, ktoré skutočne používajú pracovníci, urobí to veľmi odlišný obraz:

Viac ako polovica všetkých vývojárov používa JavaScript. Je to nevyhnutné pre front-endový vývoj webových aplikácií a čoraz dôležitejšie pre back-endový vývoj. A rýchlo sa rozširuje do oblastí, ako je vývoj hier a internet vecí.

Pracovné ponuky tiež spomínajú JavaScript viac ako ktorýkoľvek programovací jazyk iný ako Java:

Nie je náhoda, že sme osnovy našej komunity otvorených zdrojov vytvorili okolo JavaScriptu. Za posledné dva roky využilo Free Code Camp na získanie prvého zamestnania pre vývojárov viac ako 5 000 ľudí.

Neobhajujem JavaScript, pretože ho učím. Učím JavaScript, pretože je to najistejšia cesta k prvej práci vývojára.

Je však JavaScript vhodný pre vás? Je to hodné byť vašim prvým programovacím jazykom? Poďme preskúmať tieto faktory, ktoré som už spomenul.

Faktor č. 1: Trh práce

Ak sa učíte programovať čisto z intelektuálnej zvedavosti, pokojne tento faktor preskočte. Ak však - rovnako ako drvivá väčšina ľudí, ktorí sa učia programovať - ​​chcete túto zručnosť uplatniť pri hľadaní zamestnania, je to dôležitá úvaha.

Ako som už spomínal, Java je spomenutá vo viacerých pracovných pozíciách ako ktorýkoľvek iný programovací jazyk. JavaScript je na druhom mieste.

Ale o JavaScripte je niečo také: aj keď je to už 20 rokov, len nedávno sa stal vážnym nástrojom, ktorý by okolo spoločností ako Netflix, Walmart a PayPal stavali celé aplikácie.

Výsledkom je, že veľa spoločností najíma vývojárov JavaScriptu, na trhu práce ich však nie je toľko.

O každú otvorenú pozíciu v Jave súťaží 2,7 vývojárov Java. Konkurencia o prácu v PHP a iOS je podobne tvrdá.

Ale na každú otvorenú pozíciu v JavaScripte je iba 0,6 vývojára JavaScriptu. Je to veľmi predajný trh pre vývojárov so znalosťami JavaScriptu.

Faktor č. 2: Dlhodobé vyhliadky

Priemerný projekt JavaScriptu dostane dvakrát toľko požiadaviek na načítanie ako priemerný projekt Java, Python alebo Ruby. A navyše, JavaScript rastie rýchlejšie ako ktorýkoľvek iný populárny jazyk.

Ekosystém JavaScriptu ťaží aj z veľkej investície peňazí a technických talentov od spoločností ako Google, Microsoft, Facebook a Netflix.

Napríklad TypeScript (staticky napísaná nadmnožina JavaScriptu) má viac ako 100 prispievateľov otvoreného zdroja, z ktorých mnohí sú zamestnanci spoločností Microsoft a Google platení za to, aby na nich pracovali.

S Java je tento typ spolupráce medzi spoločnosťami ťažšie nájsť. Spoločnosť Oracle - ktorá skutočne vlastní Javu akvizíciou spoločnosti Sun Microsystems - často žaluje spoločnosti, ktoré sa ju snažia rozšíriť.

Faktor č. 3: Ťažkosti s učením

Väčšina programátorov by súhlasila s tým, že skriptovacie jazyky na vysokej úrovni sa dajú naučiť pomerne ľahko. Do tejto kategórie patrí JavaScript spolu s Python a Ruby.

Aj keď univerzity stále učia jazyky ako Java a C ++ ako prvé jazyky, dá sa s nimi naučiť oveľa ťažšie.

Faktor č. 4: Projekty, ktoré s ním môžete zostaviť

To je miesto, kde JavaScript skutočne svieti. JavaScript sa spúšťa na akomkoľvek zariadení, ktoré má prehľadávač, a to priamo v ňom. Pomocou JavaScriptu môžete vytvoriť v podstate čokoľvek a zdieľať ho kdekoľvek.

Kvôli všadeprítomnosti JavaScriptu vytvoril spoluzakladateľ Stack Overflow Jeff Atwood svoj dnes už slávny zákon:

"Akákoľvek aplikácia, ktorá môže byť napísaná v JavaScripte, bude nakoniec napísaná v JavaScripte."

A s každým ďalším mesiacom platí Atwoodov zákon.

Java kedysi sľubovala, že pobeží tiež všade. Možno si pamätáte applety Java. Spoločnosť Oracle ich oficiálne zabila začiatkom tohto roka.

Python trpí rovnakými problémami:

"Ako môžem dať túto hru, ktorú som vytvoril, svojmu priateľovi?" Ešte lepšie je, existuje spôsob, ako si to môžem dať na svoj telefón, aby som to mohol ukázať deťom v škole bez toho, aby si ho museli inštalovať? Hm. “ - James Hague na dôchodku Python ako učiteľský jazyk

Naopak, tu sú niektoré aplikácie, ktoré si členovia našej komunity otvorených zdrojov vytvorili vo svojich prehliadačoch na CodePen. Môžete kliknúť a použiť ich priamo vo svojom prehliadači:

Naučte sa dobre jeden jazyk. Potom sa naučte druhú.

Ak budete stále skákať z jazyka do jazyka, ďaleko sa nedostanete.

Ak sa chcete posunúť od základov, musíte sa dobre naučiť prvý jazyk. Potom bude váš druhý jazyk oveľa, oveľa ľahší.

Odtiaľ môžete odbočiť a stať sa rozhľadenejším vývojárom tým, že sa naučíte veľa jazykov:

  • C je skvelý spôsob, ako sa naučiť, ako počítače v skutočnosti fungujú, pokiaľ ide o správu pamäte, a je užitočný pri vysokovýkonných výpočtoch
  • C ++ je vynikajúci pre vývoj hier.
  • Python je úžasný pre vedu a štatistiku.
  • Java je dôležitá, ak chcete pracovať vo veľkých technologických spoločnostiach.

Najprv sa ale naučte JavaScript.

Dobre, teraz sa pokúsim o nemožné - pokúsim sa predvídať námietky v sekcii komentárov.

Námietka č. 1: Nie je však JavaScript pomalý?

JavaScript je - z praktických dôvodov - rovnako rýchly ako vysoko výkonné jazyky.

JavaScript (Node.js) je rádovo rýchlejší ako Python, Ruby a PHP.

Je tiež takmer rovnako rýchly ako vysokovýkonné jazyky ako C ++, Java a Go.

Tu sú výsledky najkomplexnejšieho nedávneho medzikontinentálneho testu:

Námietka č. 2: JavaScript však nie je napísaný staticky

Rovnako ako Python a Ruby je aj JavaScript dynamicky písaný, čo je pohodlné. Môžete sa však dostať do problémov. Tu chcem exampleArraybyť poľom. Nastavím jeho hodnoty, potom skontrolujem jeho dĺžku - to znamená počet prvkov, ktoré obsahuje.

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

Ale potom som to náhodne priradil k tomu, aby to bol reťazec.

exampleArray = “text” -> “text” exampleArray.length -> 4

Tieto druhy chýb sa vyskytujú neustále v dynamicky písaných jazykoch. Väčšina vývojárov iba zavedie kontroly, aby im zabránila, a podľa toho napíše testy.

Ak vo svojom prvom programovacom jazyku bezpodmienečne musíte mať statické písanie, potom vám odporúčam najskôr sa naučiť JavaScript. Potom môžete rýchlo vyzdvihnúť TypeScript.

"Strojopis má krivku učenia, ale ak už viete JavaScript, bude to plynulý proces." - Alex Ewerlöf na stroji TypeScript

Námietka č. 3: Ale naozaj chcem vytvoriť mobilnú aplikáciu

Stále odporúčam najskôr sa naučiť JavaScript.

  1. JavaScript obsahuje niekoľko nástrojov na vytváranie natívnych mobilných aplikácií, napríklad Angular Cordova a React Native.
  2. Na to, aby vaša mobilná aplikácia dokázala skutočne urobiť niečo zaujímavé, bude pravdepodobne potrebovať správny backend, ktorý budete chcieť vytvoriť pomocou správneho rámca pre vývoj webových aplikácií, napríklad Node.js + Express.js.

Za zmienku tiež stojí, že najlepšie dni vývoja mobilných aplikácií môžu byť za tým.

Pre začiatočníkov, tak ako ľudia používajú mobilné aplikácie, takmer polovica všetkých pracovných pozícií vývojárov je vývoj webových aplikácií. Porovnajte to s iba 8% pracovných miest, ktoré zahŕňajú vývoj mobilných aplikácií.

Veľkolepá vízia „na to je aplikácia“ sa nenaplnila. Namiesto toho väčšina majiteľov smartfónov prestala sťahovať nové aplikácie.

Iste - stále používajú aplikácie. Väčšinou Facebook, Mapy Google a niekoľko ďalších. Z tohto dôvodu sa veľká časť dopytu po vývojároch mobilných aplikácií sústreďuje u niekoľkých veľkých zamestnávateľov.

Výhľad týchto pracovných miest na vývoj mobilných telefónov je ťažké predpovedať. Mnoho aspektov vývoja, údržby a distribúcie mobilných aplikácií je vďaka JavaScriptu jednoduchších. Spoločnosti ako Facebook a Google teda intenzívne investujú do lepších nástrojov na ich vytváranie pomocou JavaScriptu.

Od roku 2016 je takmer všetko vývojom vývoj webových aplikácií. Všetko sa dotýka tejto veľkej platformy, ktorou je „web“. A ďalšia vlna zariadení, s ktorými sa budete rozprávať po celom dome, a automobilov, ktoré vyzdvihnú vaše deti zo školy - všetky budú tiež prepojené pomocou webu.

A to znamená JavaScript.

Námietka č. 4: Nie je JavaScript jazykom hračiek, ktorý bol napísaný za 10 dní?

JavaScript má svojráznu históriu.

Nepochybne budete počuť, ako ľudia vtipkujú na jej účet.

Ľudia tiež radi nenávidia C ++. A tak ako JavaScript, aj cez túto nenávisť uspel C ++, ktorý je teraz skoro všade tiež.

Takže ak vám niekto bude mať niekedy problém naučiť sa JavaScript namiesto elitného jazyka týždňa, nezabudnite na slávne slová človeka, ktorý vytvoril C ++:

"Existujú iba dva druhy programovacích jazykov: tí ľudia vždy fičia a nikto ich nepoužíva." - Bjarne Stroustrup

Píšem iba o programovaní a technológiách. Ak ma sledujete na Twitteri, nebudem strácať čas. ?