Minkä ohjelmointikielen sinun tulisi ensin oppia vuonna 2020? ɹɔdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

Useimpien ihmisten matka kohti ohjelmoinnin oppimista alkaa yhdellä myöhäisillan Google-haulla.

Yleensä se on jotain "Opi ______"

Mutta miten he päättävät, minkä kielen he etsivät?

"He vitsailevat aina Javasta Piilaaksossa. Minun pitäisi oppia se. ”

Tai:

”Haskell. Niin kuuma juuri nyt. Haskell. ”

Tai:

"Tuo Go-gopher on vain niin helvetti söpö."

Ja sitten me olemme loput. Etsimme todennäköisesti jotain:

"Mikä ohjelmointikieli minun pitäisi ensin oppia?"

Harvat kysymykset ovat niin yleisiä, että he saavat täyden infografisen hoidon. Mutta tämä on yksi niistä:

Ensimmäisen ohjelmointikielesi valitseminen voi olla hauska prosessi - sellainen kuin yksi niistä "Mikä Quentin Tarantino -hahmo olet?" persoonallisuus tietokilpailuja.

Mutta ennen kuin pakenet oppimaan Rubyä, koska pidit leikkiä Play-Dohin kanssa lapsena, haluan muistuttaa: panokset ovat täällä melko korkeat.

Se vie satoja tunteja harjoittelua, jotta pääset edes etävalmiiksi ensimmäisen ohjelmointikielesi kanssa.

Joten sinun tulisi ottaa huomioon seuraavat tekijät:

  • kielen työmarkkinoille
  • kielen pitkän aikavälin näkymät
  • kuinka helppoa kieli on oppia
  • mitä projekteja voit rakentaa oppimisen aikana (ja jakaa ystävien kanssa, jotta pysyt motivoituneena)

Joka vuosi tuo uusia ohjelmointikieliä ja heidän kanssaan uusia akateemisia papereita. Ja uudet web-sarjakuvat.

Vakavasti. Katso tämä viime helmen helmi:

Ensimmäisen ohjelmointikielen valinnassa ei ole pulaa vaihtoehdoista. Pienentääksesi sitä, tässä ovat yleisimmät ohjelmoinnin oppimiseen liittyvät Google-haut viimeisten 12 vuoden aikana:

Javalla on ollut ylä- ja alamäkiä.

Python on vähitellen noussut suosituimmaksi vaihtoehdoksi.

Mutta näiden alle on piilotettu Pieni moottori, joka voisi hitaasti valita suosionsa viime vuosina. Ja tämä moottori on JavaScript.

Ennen kuin puhun näistä ohjelmointikielistä, anna minun selventää:

  • En väitä, että joku kieli on objektiivisesti parempi kuin mikään muu
  • Olen samaa mieltä siitä, että kehittäjien tulisi lopulta oppia useampi kuin yksi kieli
  • Väitän, että ensin heidän pitäisi oppia yksi kieli hyvin. Ja - kuten luultavasti arvata otsikkoni ylösalaisin olevasta tekstistä - kyseisen kielen tulisi olla JavaScript.

Aloitetaan asia tutkimalla, kuinka ohjelmointia opetetaan tällä hetkellä koulussa.

Tietojenkäsittelytiede 101

Yliopistot ovat perinteisesti opettaneet ohjelmointia tietojenkäsittelytieteen sateenvarjon alla, mikä itsessään nähdään usein matematiikan jatkeena tai liitoksena sähkötekniikan tutkintoon.

Tietenkin, kuten olet ehkä jo kuullut:

"Tietojenkäsittelytiedeopetus ei voi tehdä kenestäkään asiantuntijaohjelmoijaa enemmän kuin harjoilla ja pigmentillä opiskelemalla. - Eric S.Raymond

Vuodesta 2016 lähtien monet yliopistot käsittelevät edelleen ohjelmointia kuten tietojenkäsittelytietettä ja tietojenkäsittelytiede kuin matematiikkaa.

Tämän seurauksena monet perustavat ohjelmointikurssit keskittyvät matalan tason abstraktiokieliin, kuten C, tai matemaattisesti keskittyviin kieliin, kuten MATLAB.

Ja osastojen puheenjohtajat pysyvät yleensä kurssilla viitaten vuotuisiin ohjelmointikielen tulostaulukoihin, kuten TIOBE-indeksi tai tämä IEEE: stä:

Suurin osa näistä tulostaulukoista näyttää käytännöllisesti katsoen samanlaisilta kuin ne olivat 10 vuotta sitten.

Mutta muutos tapahtuu. Jopa akateemisessa maailmassa.

Vuonna 2014 Python ohitti Javan suosituimpana opetuskielenä Yhdysvaltain tietojenkäsittelytieteen huippuohjelmissa.

Ja vielä yksi muutos on sidoksissa… lopulta… tapahtuvaan.

Koska tarkastelemalla työvoiman tosiasiallisesti käyttämiä kieliä, se maalaa aivan toisenlaisen kuvan:

Yli puolet kaikista kehittäjistä käyttää JavaScriptiä. Se on elintärkeää etupään verkkokehitykselle ja yhä tärkeämpi back-end-kehitykselle. Ja se laajenee nopeasti esimerkiksi pelikehitykseen ja esineiden internetiin.

Työpaikkailmoituksissa mainitaan myös JavaScript enemmän kuin mikään muu ohjelmointikieli kuin Java:

Ei ole sattumaa, että rakensimme avoimen lähdekoodin yhteisön opetussuunnitelman JavaScriptin ympärille. Kahden viime vuoden aikana yli 5000 ihmistä on käyttänyt Free Code Campia saadakseen ensimmäisen kehittäjän työpaikkansa.

En kannata JavaScriptiä, koska opetan sitä. Opetan JavaScriptiä, koska se on varmin tie ensimmäiselle kehittäjätyölle.

Mutta onko JavaScript oikea sinulle? Onko sen arvoinen olla ensimmäinen ohjelmointikieli? Tutkitaan niitä tekijöitä, jotka mainitsin aiemmin.

Tekijä # 1: Työmarkkinat

Jos opit ohjelmoimaan puhtaasti älyllisestä uteliaisuudesta, ohita tämä tekijä. Mutta jos sinä - kuten suurin osa ohjelmointia oppivista ihmisistä - haluat käyttää tätä taitoa työn saamiseksi, tämä on tärkeä näkökohta.

Kuten aiemmin mainitsin, Java mainitaan useammassa työpaikkailmoituksessa kuin mikään muu ohjelmointikieli. JavaScript on lähellä toista.

Mutta JavaScript-asia on tässä: vaikka se on ollut olemassa jo 20 vuotta, siitä tuli vasta äskettäin vakava työkalu, jonka Netflixin, Walmartin ja PayPalin kaltaiset yritykset rakentaisivat kokonaisia ​​sovelluksia.

Tämän seurauksena monet yritykset palkkaavat JavaScript-kehittäjiä, mutta työmarkkinoilla ei vain ole niin paljon.

Jokaisesta avoimesta Java-sijainnista kilpailee 2,7 Java-kehittäjää. Kilpailu PHP- ja iOS-työpaikoista on yhtä kovaa.

Mutta jokaiselle avoimelle JavaScript-sijainnille on vain 0,6 JavaScript-kehittäjää. Se on hyvin myyjämarkkinat kehittäjille, joilla on JavaScript-taitoja.

Tekijä # 2: Pitkän aikavälin näkymät

Keskimääräinen JavaScript-projekti saa kaksi kertaa niin paljon vetopyyntöjä kuin keskimääräinen Java-, Python- tai Ruby-projekti. Tämän lisäksi JavaScript kasvaa nopeammin kuin mikään muu suosittu kieli.

JavaScriptin ekosysteemi hyötyy myös sellaisista yrityksistä kuin Google, Microsoft, Facebook ja Netflix.

Esimerkiksi TypeScriptillä (staattisesti kirjoitettu JavaScriptiä edustava joukko) on yli 100 avoimen lähdekoodin avustajaa, joista monet ovat Microsoftin ja Googlen työntekijöille, joille maksetaan työstä.

Tämän tyyppistä yritysten välistä yhteistyötä on vaikeampi löytää Java-palvelun kanssa. Oracle - joka tosiasiallisesti omistaa Java ostamalla Sun Microsystems - haastaa usein yritykset, jotka yrittävät laajentaa sitä.

Tekijä # 3: vaikeus oppia

Suurin osa ohjelmoijista olisi samaa mieltä siitä, että korkean tason komentosarjakielet on suhteellisen helppo oppia. JavaScript kuuluu tähän luokkaan yhdessä Pythonin ja Rubyn kanssa.

Vaikka yliopistot opettavat edelleen kieliä kuten Java ja C ++ ensimmäisinä kielinä, niitä on huomattavasti vaikeampaa oppia.

Tekijä # 4: Projektit, jotka voit rakentaa sen avulla

Täällä JavaScript todella loistaa. JavaScript toimii kaikilla laitteilla, joilla on selain, suoraan selaimessa. Voit rakentaa periaatteessa mitä tahansa JavaScriptin avulla ja jakaa sen missä tahansa.

JavaScriptin yleisyyden takia Stack Overflow -yhtiön perustaja Jeff Atwood loi nyt kuuluisan lakinsa:

”Mikä tahansa sovellus, joka voi olla kirjoitettu JavaScript, tulee lopulta kirjoitettu JavaScript.”

Ja joka kuukausi Atwoodin laki on vahva.

Java lupasi kerran juosta myös kaikkialla. Muistat ehkä Java-sovelmat. Oracle tappoi heidät virallisesti aiemmin tänä vuonna.

Pythonilla on paljon samoja ongelmia:

"Kuinka voin antaa tämän tekemäni pelin ystävälleni? Vielä parempi, onko mahdollista laittaa tämä puhelimeeni, jotta voin näyttää sen lapsille koulussa ilman, että heidän tarvitsee asentaa sitä? Hm. " - James Hague eläkkeelle Pythonista opetuskielenä

Sitä vastoin tässä on joitain sovelluksia, jotka avoimen lähdekoodin yhteisömme jäsenet rakensivat selaimissaan CodePeniin. Voit napsauttaa ja käyttää näitä suoraan selaimessasi:

Opi yksi kieli hyvin. Opi sitten toinen.

Jos jatkat hyppäämistä kielestä toiseen, et pääse pitkälle.

Jotta voit siirtyä perusasioiden ulkopuolelle, sinun on opittava ensimmäinen kieli hyvin. Silloin toinen kieli on paljon, paljon helpompaa.

Sieltä voit haarautua ja tulla monipuolisemmaksi kehittäjäksi oppimalla paljon kieliä:

  • C on hieno tapa oppia, miten tietokoneet todella toimivat muistinhallinnan kannalta, ja se on hyödyllinen suuritehoisessa laskennassa
  • C ++ on loistava pelikehitykseen.
  • Python on mahtava tieteen ja tilastojen kannalta.
  • Java on tärkeä, jos haluat työskennellä suurissa teknologiayrityksissä.

Mutta opi ensin JavaScript.

OK, yritän nyt mahdotonta - yritän ennakoida vastaväitteet kommenttiosasta.

Vastalause # 1: Mutta eikö JavaScript ole hidas?

JavaScript on - käytännöllisimpiin tarkoituksiin - yhtä nopea kuin tehokkaat kielet.

JavaScript (Node.js) on suuruusluokkaa nopeampi kuin Python, Ruby ja PHP.

Se on myös melkein yhtä nopea kuin korkean suorituskyvyn kielet, kuten C ++, Java ja Go.

Tässä ovat viimeisimmän kattavimman kielien välisen vertailuarvon tulokset:

Vastalause # 2: Mutta JavaScriptiä ei ole staattisesti kirjoitettu

Kuten Python ja Ruby, JavaScript kirjoitetaan dynaamisesti, mikä on kätevää. Mutta voit joutua vaikeuksiin. Tässä aion exampleArrayolla joukko. Asetin sen arvot ja tarkistan sen pituuden - tarkoittaen sen sisältämien elementtien määrää.

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

Mutta sitten määritän sen vahingossa merkkijonoksi.

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

Tällaisia ​​virheitä tapahtuu jatkuvasti dynaamisesti kirjoitetuilla kielillä. Useimmat kehittäjät vain asettavat tarkastuksia estääkseen niitä ja kirjoittavat testit vastaavasti.

Jos sinulla on ehdottomasti oltava staattinen kirjoittaminen ensimmäisellä ohjelmointikielelläsi, suosittelen silti, että opit ensin JavaScriptin. Sitten voit noutaa TypeScriptin nopeasti.

"Kirjoituskirjalla on oppimiskäyrä, mutta jos tiedät jo JavaScriptin, se on sujuva." - Alex Ewerlöf TypeScriptistä

Vastalause # 3: Mutta haluan todella tehdä mobiilisovelluksen

Suosittelen edelleen JavaScriptin oppimista ensin.

  1. JavaScript sisältää useita työkaluja alkuperäisten mobiilisovellusten tekemiseen, kuten Angular Cordova ja React Native.
  2. Jotta mobiilisovelluksesi voisi todella tehdä mitään mielenkiintoista, se todennäköisesti tarvitsee oikean takapään, jonka haluat rakentaa oikealla verkkokehityskehyksellä, kuten Node.js + Express.js.

On myös syytä huomauttaa, että mobiilisovelluskehityksen parhaat päivät voivat hyvinkin olla sen takana.

Ensinnäkin, niin paljon kuin ihmiset käyttävät mobiilisovelluksia, lähes puolet kaikista kehittäjien työpaikoista on verkkokehitystä. Vertaa tätä vain 8 prosenttiin työpaikoista, joihin liittyy mobiilisovellusten kehittäminen.

Suuri visio "siihen on olemassa sovellus" ei ole toteutunut. Sen sijaan useimmat älypuhelinten omistajat ovat lopettaneet uusien sovellusten lataamisen.

Toki - he käyttävät edelleen sovelluksia. Enimmäkseen Facebook, Google Maps ja kourallinen muita. Sellaisenaan suuri osa mobiilisovelluskehittäjien kysynnästä on keskittynyt muutamiin suuriin työnantajiin.

Näiden mobiilikehitystöiden näkymiä on vaikea ennustaa. Monet mobiilisovellusten kehittämisen, ylläpidon ja jakelun näkökohdat ovat helpompia JavaScriptin avulla. Joten yritykset, kuten Facebook ja Google, investoivat paljon parempiin työkaluihin näiden rakentamiseksi JavaScriptin avulla.

Vuodesta 2016 lähtien lähes kaikki kehitys on verkkokehitystä. Kaikki koskettaa sitä suurta alustaa, joka on "verkko". Ja seuraava laiteaalto, jonka kanssa puhut kotisi ympärillä, ja autot, jotka hakevat lapsesi koulusta - ne kaikki yhdistetään myös verkon kautta.

Ja se tarkoittaa JavaScriptiä.

Vastalause # 4: Eikö JavaScript ole leikkikieli, joka kirjoitettiin 10 päivässä?

JavaScriptillä on omituinen historia.

Kuulet epäilemättä ihmisten repimään vitsejä sen kustannuksella.

Ihmiset rakastavat vihata myös C ++: a. Ja kuten JavaScript, C ++ on onnistunut tästä vihasta huolimatta, ja nyt se on melkein kaikkialla.

Joten jos joku antaa sinulle koskaan vaikeaa aikaa oppia JavaScriptiä viikkokielen sijaan, muista vain C ++: n luoneen kaverin kuuluisat sanat:

"Ohjelmointikieliä on vain kahdenlaisia: nuo ihmiset aina narttuvat ja kukaan ei käytä." - Bjarne Stroustrup

Kirjoitan vain ohjelmoinnista ja tekniikasta. Jos seuraat minua Twitterissä, en tuhlaa aikaa. ?