Millise programmeerimiskeeli peaksite 2020. aastal kõigepealt õppima? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Enamiku inimeste teekond programmeerimise õppimise poole algab ühe hilisõhtuse Google'i otsinguga.

Tavaliselt on see umbes selline: „Õpi ______”

Aga kuidas nad otsustavad, millist keelt otsida?

“Nad teevad Silicon Valleys alati nalja Java üle. Peaks vist seda õppima. "

Või:

"Haskell. Nii kuum praegu. Haskell. "

Või:

"See Go gopher on lihtsalt nii paganama armas."

Ja siis on veel meie ülejäänud. Tõenäoliselt otsime midagi sellist:

"Millise programmeerimiskeemi peaksin enne õppima?"

Vähestele küsimustele esitatakse nii palju küsimusi, et nad saavad täieliku infograafilise ravi. Kuid see on üks neist:

Esimese programmeerimiskeele üle otsustamine võib olla lõbus protsess - umbes nagu üks neist „Milline Quentin Tarantino tegelane olete?” isiksuse viktoriinid.

Kuid enne, kui te Ruby õppima jooksete, kuna teile meeldis lapsena mängida Play-Dohiga, lubage mul teile meelde tuletada: panused on siin päris kõrged.

Esimese programmeerimiskeele isegi kaugteadmiseks saamiseks kulub teil sadu tunde harjutamist.

Seega peaksite arvestama järgmiste teguritega:

  • keele tööturul
  • keele pikaajalised väljavaated
  • kui lihtne on keelt õppida
  • milliseid projekte saate õppimise ajal ehitada (ja jagage sõpradega, et motivatsioon püsiks)

Igal aastal tulevad uued programmeerimiskeeled ja koos nendega ka uued akadeemilised tööd. Ja uued veebikoomiksid.

Tõsiselt. Vaadake seda eelmise kuu pärlit:

Esimese programmeerimiskeele valimisel pole valikutest puudust. Pisut kitsendamiseks on siin kõige tavalisemad programmeerimise õppimisega seotud Google'i otsingud viimase 12 aasta jooksul:

Java on olnud nii tõusude kui ka mõõnadega.

Python on järk-järgult tõusnud kõige populaarsemaks valikuks.

Kuid nende all on väike mootor, mis võiks viimastel aastatel aeglaselt populaarsust koguda. Ja see mootor on JavaScript.

Enne kui räägin nendest programmeerimiskeeltest, lubage mul täpsustada:

  • Ma ei väida, et mõni keel on objektiivselt parem kui ükski teine ​​keel
  • Olen nõus, et arendajad peaksid lõpuks õppima rohkem kui ühte keelt
  • Ma väidan, et kõigepealt peaksid nad ühe keele hästi ära õppima. Ja nagu te minu pealkirja tagurpidi tekstist arvata võite, peaks see keel olema JavaScript.

Alustame asjadega, uurides, kuidas programmeerimist koolis praegu õpetatakse.

Arvutiteadus 101

Ülikoolid on traditsiooniliselt õpetanud programmeerimist arvutiteaduse katuse all, mida iseenesest peetakse sageli matemaatika pikenduseks või seotuks elektrotehnika kraadiga.

Muidugi, nagu olete juba kuulnud:

"Arvutiteaduste haridus ei saa kedagi muuta programmeerijaks, kui harjade ja pigmendi uurimine võib kellestki asjatundliku maalija teha." - Eric S. Raymond

Alates 2016. aastast suhtuvad paljud ülikoolid endiselt programmeerimisse nagu arvutiteadusesse ja arvutiteadusesse nagu matemaatikasse.

Seetõttu keskenduvad paljud sissejuhatavad programmeerimiskursused vähese abstraktsiooniga keeltele nagu C või matemaatiliselt keskendunud keeltele nagu MATLAB.

Ja osakonna õppetoolid jäävad kursuse juurde, osutades iga-aastastele programmeerimiskeele edetabelitele nagu TIOBE indeks või IEEE:

Enamik neist edetabelitest näevad praktiliselt identsed välja nagu need olid 10 aastat tagasi.

Kuid muutused juhtuvad. Isegi akadeemilises ringkonnas.

2014. aastal edestas Python Java-d kui kõige populaarsemat õppekeelt USA arvutiteaduse tippprogrammides.

Ja veel üks muutus on seotud ... lõpuks ... juhtuma.

Sest kui vaadata tööjõu tegelikult kasutatavaid keeli, loob see hoopis teistsuguse pildi:

Üle poole arendajatest kasutab JavaScripti. See on esmatasandi veebiarenduse jaoks ülitähtis ja üha olulisem taustaprogrammi arendamiseks. Ja see laieneb kiiresti sellistesse valdkondadesse nagu mängude arendamine ja asjade Internet.

Tööpakkumistes mainitakse JavaScripti rohkem kui mis tahes programmeerimiskeelt peale Java:

Pole juhus, et ehitasime oma avatud lähtekoodiga kogukonna õppekava JavaScripti põhjal. Viimase kahe aasta jooksul on Free Code Campi kasutanud esimese arendaja töökoha saamiseks üle 5000 inimese.

Ma ei propageeri JavaScripti, sest õpetan seda. Ma õpetan JavaScripti, kuna see on kindlaim tee esimese arendaja töö juurde.

Kuid kas JavaScript sobib teile? Kas see on väärt olema teie esimene programmeerimiskeel? Uurime neid tegureid, mida ma varem mainisin.

Tegur nr 1: tööturg

Kui õpid programmeerima puhtalt intellektuaalsest uudishimust, jätke see tegur julgelt vahele. Kuid kui soovite - nagu valdav enamus programmeerimist õppivaid inimesi - kasutada seda oskust töö saamiseks, on see oluline kaalutlus.

Nagu ma varem mainisin, mainitakse Java-d rohkematel töökuulutustel kui mis tahes muus programmeerimiskeeles. JavaScript on lähedal teine.

Kuid JavaScripti puhul on see lugu: kuigi see on olnud juba 20 aastat, sai see alles hiljuti tõsiseks tööriistaks, mille abil sellised ettevõtted nagu Netflix, Walmart ja PayPal ehitasid terveid rakendusi.

Seetõttu palkavad paljud ettevõtted JavaScripti arendajaid, kuid neid pole tööturul lihtsalt nii palju.

Iga avatud Java-positsiooni nimel võistleb 2,7 Java-arendajat. Konkurents PHP ja iOS-i töökohtade pärast on samamoodi tihe.

Kuid iga avatud JavaScripti positsiooni jaoks on ainult 0,6 JavaScripti arendajat. See on väga JavaScripti oskustega arendajate müüjate turg.

Tegur nr 2: pikaajalised väljavaated

Keskmine JavaScripti projekt saab kaks korda rohkem tõmbenõudeid kui keskmine Java, Pythoni või Ruby projekt. Ja lisaks sellele kasvab JavaScript kiiremini kui ükski teine ​​populaarne keel.

JavaScripti ökosüsteem saab kasu ka selliste ettevõtete nagu Google, Microsoft, Facebook ja Netflix suurest rahainvesteeringust ja inseneritalentidest.

Näiteks TypeScripti (staatiliselt sisestatud JavaScripti superkomplekt) koosseisu kuulub üle 100 avatud lähtekoodiga kaastöötaja, kellest paljud on Microsofti ja Google'i töötajad, kelle töö eest makstakse palka.

Seda tüüpi ettevõtete vahelist koostööd on Java-ga raskem leida. Oracle - kes omab Java Microsofti omandamise kaudu Sun Microsystemsi kaudu - kaebab sageli ettevõtted, kes üritavad seda laiendada.

Tegur nr 3: õppimisraskused

Enamik programmeerijaid nõustuks, et kõrgetasemelisi skriptikeeli on suhteliselt lihtne õppida. Sellesse kategooriasse kuulub JavaScripti koos Pythoni ja Rubyga.

Kuigi ülikoolides õpetatakse ikka veel selliseid keeli nagu Java ja C ++, on neid palju raskem õppida.

Faktor # 4: projektid, mida saate sellega ehitada

See on koht, kus JavaScript tõesti särab. JavaScript töötab igas seadmes, millel on brauser, otse seal brauseris. JavaScripti abil saate luua põhimõtteliselt kõike ja jagada seda kõikjal.

JavaScripti üldlevimise tõttu lõi Stack Overflow kaasasutaja Jeff Atwood oma nüüdseks kuulsa seaduse:

"Kõik rakendused, mida saab kirjutada JavaScripti abil, kirjutatakse lõpuks JavaScripti."

Ja iga kuuga on Atwoodi seadus tugev.

Java lubas kunagi ka igal pool joosta. Võib-olla mäletate Java-aplette. Oracle tappis nad ametlikult selle aasta alguses.

Pythonil on palju samu probleeme:

"Kuidas ma saaksin selle oma tehtud mängu oma sõbrale kinkida? Veelgi parem, kas seda saab kuidagi oma telefoni panna, et saaksin seda koolis lastele näidata ilma, et nad seda installima peaksid? Ee. " - James Hague Pythoni kui õpetava keele pensionile jäämises

Seevastu on siin mõned rakendused, mille meie avatud lähtekoodiga kogukonna liikmed oma brauseritesse CodePenile ehitasid. Võite klõpsata ja neid otse oma brauseris kasutada:

Õppige hästi ühte keelt. Seejärel õppige teine.

Kui hüppad pidevalt keelest keelde, ei jõua sa kaugele.

Põhitõdedest kaugemale jõudmiseks peate oma esimese keele hästi selgeks õppima. Siis on teie teine ​​keel palju-palju lihtsam.

Sealt saate palju keeli õppides hargneda ja saada mitmekülgsemaks arendajaks:

  • C on suurepärane viis õppida, kuidas arvutid tegelikult mäluhalduse osas töötavad, ja on kasulik suure jõudlusega arvutuste jaoks
  • C ++ sobib suurepäraselt mängude arendamiseks.
  • Python on teaduse ja statistika jaoks vinge.
  • Java on oluline, kui soovite töötada suurtes tehnoloogiaettevõtetes.

Kuid kõigepealt õppige JavaScripti.

OK, proovin nüüd võimatut - proovin ennetada kommentaaride jaotises vastuväiteid.

Vastuväide nr 1: aga kas JavaScript pole aeglane?

JavaScript on praktilisematel eesmärkidel sama kiire kui suure jõudlusega keel.

JavaScript (Node.js) on suurusjärkude võrra kiirem kui Python, Ruby ja PHP.

See on ka peaaegu sama kiire kui suure jõudlusega keeled nagu C ++, Java ja Go.

Siin on kõige uuema keelteülese võrdlusuuringu tulemused:

Vastuväide nr 2: Kuid JavaScripti pole staatiliselt kirjutatud

Nagu Python ja Ruby, on ka JavaScript dünaamiliselt kirjutatud, mis on mugav. Kuid võite jääda hätta. Kavatsen siin exampleArrayolla massiiv. Ma määrasin selle väärtused, seejärel kontrollin selle pikkust - see tähendab selles sisalduvate elementide arvu.

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

Kuid siis määran selle kogemata stringiks.

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

Selliseid vigu tuleb dünaamiliselt sisestatud keeltes pidevalt ette. Enamik arendajaid paneb lihtsalt kontrolli nende vältimiseks ja kirjutavad vastavalt testid.

Kui teil peab tingimata olema staatiline kirjutamine oma esimeses programmeerimiskeeles, siis soovitan ikkagi kõigepealt JavaScripti õppida. Seejärel saate TypeScripti kiiresti kätte saada.

"Kirjutuskirjal on õppimiskõver, kuid kui te juba oskate JavaScripti, on see sujuv." - Alex Ewerlöf TypeScriptis

Vastuväide nr 3: aga ma tahan tõesti teha mobiilirakenduse

Soovitan kõigepealt ikkagi JavaScripti õppida.

  1. JavaScripti funktsiooniks on natiivsete mobiilirakenduste loomiseks mitu tööriista, näiteks Angular Cordova ja React Native.
  2. Selleks, et teie mobiilirakendus saaks tegelikult midagi huvitavat teha, vajab see tõenäoliselt korralikku taguotsa, mille soovite ehitada korraliku veebiarenduse raamistikuga, näiteks Node.js + Express.js.

Samuti tasub välja tuua, et selle taga võivad väga hästi olla mobiilirakenduse arenduse parimad päevad.

Alustuseks, nii palju kui inimesed kasutavad mobiilirakendusi, on peaaegu pooled arendaja töökohtadest veebiarendused. Võrrelge seda vaid 8% -ga töökohtadest, mis hõlmavad mobiilirakenduste arendamist.

Suurt visiooni „selleks on olemas rakendus” ei ole saavutatud. Selle asemel on enamik nutitelefonide omanikke uute rakenduste allalaadimise lõpetanud.

Muidugi - nad kasutavad endiselt rakendusi. Enamasti Facebook, Google Maps ja käputäis teisi. Sellisena koondub suur osa nõudlusest mobiilirakenduste arendajate järele vähestesse suurtesse tööandjatesse.

Nende mobiiliarendusega seotud töökohtade väljavaateid on raske prognoosida. Mobiilirakenduste arendamise, hooldamise ja levitamise paljud aspektid on JavaScripti abil lihtsamad. Nii investeerivad sellised ettevõtted nagu Facebook ja Google palju parematesse tööriistadesse JavaScripti abil nende loomiseks.

Alates 2016. aastast on peaaegu kogu arendus veebiarendus. Kõik puudutab seda suurt platvormi, mis on veeb. Ja järgmine laine seadmeid, millega saate oma kodus suhelda, ja autod, mis teie lapsed koolist välja võtavad - need kõik ühendatakse ka veebi abil.

Ja see tähendab JavaScripti.

Vastuväide nr 4: kas JavaScript pole mänguasi, mis kirjutati 10 päeva jooksul?

JavaScripti ajalugu on omapärane.

Kahtlemata kuulete inimesi selle arvelt nalja.

Noh, inimesed armastavad ka C ++ -s vihata. Ja nagu JavaScripti, nii on ka C ++ sellest vihkamisest hoolimata õnnestunud ja nüüd on see ka peaaegu kõikjal.

Nii et kui kellelgi on kunagi eliitkeele nädala asemel JavaScripti õppimiseks raske aeg, pidage lihtsalt meeles C ++ loonud poisi kuulsaid sõnu:

"Programmeerimiskeeli on ainult kahte tüüpi: need inimesed näevad alati emasid ja keegi ei kasuta neid." - Bjarne Stroustrup

Kirjutan ainult programmeerimisest ja tehnoloogiast. Kui jälgite mind Twitteris, ei raiska ma teie aega. ?