Hvilket programmeringssprog skal du lære først i 2020? ʇdıɹɔsɐʌɐɾ: ɹǝʍsuɐ

De fleste menneskers rejse mod at lære at programmere starter med en enkelt Google-søgning om aftenen.

Normalt er det noget i retning af "Lær ______"

Men hvordan beslutter de, hvilket sprog de skal søge efter?

”De griner altid med Java i Silicon Valley. Jeg skulle nok lære det. ”

Eller:

”Haskell. Så varmt lige nu. Haskell. ”

Eller:

"At Go gopher er bare så gosh-darn sød."

Og så er der resten af ​​os. Vi vil sandsynligvis søge efter noget som:

"Hvilket programmeringssprog skal jeg lære først?"

Få spørgsmål stilles så ofte, at de får den fulde infografiske behandling. Men dette er en af ​​dem:

At beslutte dit første programmeringssprog kan være en sjov proces - som en af ​​disse "Hvilken Quentin Tarantino-karakter er du?" personlighedsquizzer.

Men inden du løber afsted for at lære Ruby, fordi du nød at lege med Play-Doh som barn, lad mig minde dig om: indsatsen er ret høj her.

Det vil tage dig hundreder af timers øvelse at blive endda eksternt kompetent med dit første programmeringssprog.

Så du bør overveje følgende faktorer:

  • arbejdsmarkedet for sproget
  • de langsigtede udsigter til sproget
  • hvor let sproget er at lære
  • hvilke projekter du kan bygge, mens du lærer (og dele med venner, så du kan forblive motiveret)

Hvert år bringer nye programmeringssprog og med dem nye akademiske papirer. Og nye web-tegneserier.

Helt seriøst. Tjek denne perle fra sidste måned:

Når det kommer til at vælge et første programmeringssprog, er der ingen mangel på muligheder. For at indsnævre det lidt er her de mest almindelige Google-søgninger relateret til læringsprogrammering i løbet af de sidste 12 år:

Java har haft sine op- og nedture.

Python er gradvist steget til at blive det mest populære valg.

Men gemt væk under disse er den lille motor, der kunne, langsomt vælger i popularitet de sidste par år. Og den motor er JavaScript.

Før jeg taler om disse programmeringssprog, lad mig præcisere:

  • Jeg argumenterer ikke for, at et sprog er objektivt bedre end noget andet
  • Jeg er enig i, at udviklere i sidste ende skal lære mere end et sprog
  • Jeg argumenterer for, at de først skal lære et sprog godt. Og - som du sandsynligvis kan gætte ud fra hovedet på teksten i min overskrift - skal dette sprog være JavaScript.

Lad os starte tingene ved at undersøge, hvordan programmering i øjeblikket undervises i skolen.

Datalogi 101

Universiteter har traditionelt undervist i programmering inden for computervidenskab, som i sig selv ofte ses som en forlængelse af matematik eller tilknytning til en elektroteknisk grad.

Selvfølgelig, som du måske har hørt nu:

”Computervidenskabelig uddannelse kan ikke gøre nogen til en ekspertprogrammerer mere end at studere børster, og pigment kan gøre nogen til en ekspertmaler.” - Eric S. Raymond

Fra og med 2016 behandler mange universiteter stadig programmering som om det er datalogi og datalogi som om det er matematik.

Som et resultat fokuserer mange indledende programmeringskurser på lav-niveau-af-abstraktionssprog som C eller matematisk-fokuserede sprog som MATLAB.

Og afdelingsstole forbliver generelt kurset og peger på årlige leaderboards for programmeringssprog som TIOBE Index eller denne fra IEEE:

De fleste af disse ranglister ser næsten identiske ud, som de var for 10 år siden.

Men forandring sker. Selv i den akademiske verden.

I 2014 overhalede Python Java som det mest populære undervisningssprog på de bedste amerikanske datalogiprogrammer.

Og endnu en ændring er bundet til ... i sidste ende ... ske.

For hvis du ser på de sprog, der faktisk bruges af arbejdsstyrken, tegner det et meget andet billede:

Mere end halvdelen af ​​alle udviklere bruger JavaScript. Det er vigtigt for front-end webudvikling og i stigende grad relevant for back-end-udvikling. Og det udvider sig hurtigt til områder som spiludvikling og tingenes internet.

Jobopslag nævner også JavaScript mere end noget andet programmeringssprog end Java:

Det er ikke tilfældigt, at vi byggede vores open source-samfunds læseplaner omkring JavaScript. I løbet af de sidste to år har mere end 5.000 mennesker brugt Free Code Camp til at få deres første udviklerjob.

Jeg går ikke ind for JavaScript, fordi jeg lærer det. Jeg underviser i JavaScript, fordi det er den sikreste vej til et første udviklerjob.

Men er JavaScript det rigtige for dig? Er det værd at være dit første programmeringssprog? Lad os undersøge de faktorer, jeg nævnte tidligere.

Faktor nr. 1: Jobmarkedet

Hvis du lærer at programmere udelukkende af intellektuel nysgerrighed, er du velkommen til at springe denne faktor over. Men hvis du - ligesom langt de fleste mennesker, der lærer at programmere - vil bruge denne færdighed til at få et job, er dette en vigtig overvejelse.

Som jeg nævnte tidligere, nævnes Java i flere jobannoncer end noget andet programmeringssprog. JavaScript er et tæt sekund.

Men her er sagen om JavaScript: selvom det har eksisteret i 20 år, blev det først for nylig et seriøst værktøj, som virksomheder som Netflix, Walmart og PayPal ville bygge hele applikationer rundt.

Som et resultat ansætter mange virksomheder JavaScript-udviklere, men der er bare ikke så mange på jobmarkedet.

Der er 2,7 Java-udviklere, der konkurrerer om hver åben Java-position. Konkurrencen om PHP- og iOS-job er ligeledes hård.

Men for hver åben JavaScript-position er der kun 0,6 JavaScript-udviklere. Det er meget et sælgermarked for udviklere med JavaScript-færdigheder.

Faktor nr. 2: De langsigtede udsigter

Det gennemsnitlige JavaScript-projekt modtager dobbelt så mange pullanmodninger som det gennemsnitlige Java-, Python- eller Ruby-projekt. Og oven på dette vokser JavaScript hurtigere end noget andet populært sprog.

JavaScript's økosystem drager også fordel af en stor investering af penge og ingeniørtalenter fra virksomheder som Google, Microsoft, Facebook og Netflix.

For eksempel har TypeScript (et statisk skrevet supersæt af JavaScript) mere end 100 open source-bidragydere, hvoraf mange er Microsoft- og Google-medarbejdere, der betales for at arbejde på det.

Denne type samarbejde mellem virksomheder er sværere at finde med Java. Oracle - der faktisk ejer Java gennem sin overtagelse af Sun Microsystems - sagsøger ofte virksomheder, der forsøger at udvide det.

Faktor nr. 3: Vanskeligheder at lære

De fleste programmører er enige om, at script-sprog på højt niveau er relativt lette at lære. JavaScript falder ind i denne kategori sammen med Python og Ruby.

Selvom universiteter stadig underviser i sprog som Java og C ++ som første sprog, er de betydeligt sværere at lære.

Faktor nr. 4: Projekter, du kan bygge med den

Det er her JavaScript virkelig skinner. JavaScript kører på enhver enhed, der har en browser, lige der i browseren. Du kan stort set bygge alt med JavaScript og dele det hvor som helst.

På grund af Javascript's allestedsnærværende skabte Stack Overflow medstifter Jeff Atwood sin nu berømte lov:

"Enhver applikation, der kan skrives i JavaScript, vil til sidst blive skrevet i JavaScript."

Og med hver måned der går, holder Atwoods lov stærk.

Java lovede engang også at køre overalt. Du husker muligvis Java Applets. Oracle dræbte dem officielt tidligere på året.

Python lider stort set af de samme problemer:

“Hvordan kan jeg give dette spil, jeg lavede, til min ven? Endnu bedre, er der en måde, hvorpå jeg kan lægge dette på min telefon, så jeg kan vise det til børn i skolen uden at de behøver at installere det? Um. ” - James Hague i pensionering af Python som undervisningssprog

Derimod er her nogle apps, som medlemmer af vores open source-samfund byggede i deres browsere på CodePen. Du kan klikke igennem og bruge disse lige i din browser:

Lær et sprog godt. Lær derefter en anden.

Hvis du fortsætter med at hoppe fra sprog til sprog, kommer du ikke langt.

For at komme ud over det grundlæggende skal du lære dit første sprog godt. Så bliver dit andet sprog meget, meget lettere.

Derfra kan du forgrene dig og blive en mere afrundet udvikler ved at lære mange sprog:

  • C er en fantastisk måde at lære, hvordan computere rent faktisk fungerer med hensyn til hukommelsesadministration, og er nyttig i højtydende computing
  • C ++ er fantastisk til spiludvikling.
  • Python er fantastisk til videnskab og statistik.
  • Java er vigtigt, hvis du vil arbejde i store teknologivirksomheder.

Men lær JavaScript først.

OK, nu vil jeg forsøge det umulige - jeg vil forsøge at foregribe indvendinger fra kommentarfeltet.

Indsigelse nr. 1: Men er JavaScript ikke langsomt?

JavaScript er - til de mest praktiske formål - lige så hurtigt som højtydende sprog.

JavaScript (Node.js) er størrelsesordener hurtigere end Python, Ruby og PHP.

Det er også næsten lige så hurtigt som højtydende sprog som C ++, Java og Go.

Her er resultaterne af den mest omfattende nylige benchmark på tværs af sprog:

Indsigelse nr. 2: Men JavaScript er ikke statisk skrevet

Ligesom Python og Ruby er JavaScript dynamisk skrevet, hvilket er praktisk. Men du kan komme i problemer. Her vil jeg exampleArrayvære en matrix. Jeg indstiller dens værdier og kontrollerer derefter længden - hvilket betyder antallet af elementer, den indeholder.

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

Men så tildeler jeg det ved en fejltagelse at være en streng.

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

Denne slags fejl sker hele tiden på dynamisk typede sprog. De fleste udviklere sætter bare kontroller på plads for at forhindre dem og skriver test i overensstemmelse hermed.

Hvis du absolut skal have statisk skrivning på dit første programmeringssprog, anbefaler jeg stadig, at du først lærer JavaScript. Derefter kan du hurtigt hente TypeScript.

"Typescript har en indlæringskurve, men hvis du allerede kender JavaScript, vil det være glat." - Alex Ewerlöf på TypeScript

Indsigelse nr. 3: Men jeg vil virkelig lave en mobilapp

Jeg anbefaler stadig at lære JavaScript først.

  1. JavaScript indeholder flere værktøjer til at oprette native mobilapps, såsom Angular Cordova og React Native.
  2. For at din mobilapp rent faktisk skal gøre noget interessant, har den sandsynligvis brug for en ordentlig back-end, som du vil bygge med en ordentlig webudviklingsramme, som Node.js + Express.js.

Det er også værd at påpege, at mobilappsudviklings bedste dage meget godt kan ligge bag det.

For det første, så meget som folk bruger mobilapps, er næsten halvdelen af ​​alle udviklerjob webudvikling. Sammenlign dette med kun 8% af job, der involverer udvikling af mobilapps.

Den store vision om "der er en app til det" er ikke sket. I stedet er de fleste smartphone-ejere stoppet med at downloade nye apps.

Sikker på - de bruger stadig apps. For det meste Facebook, Google Maps og en håndfuld andre. Som sådan er meget af efterspørgslen efter udviklere af mobilapps koncentreret i nogle få store arbejdsgivere.

Udsigterne for disse mobile udviklingsjob er svære at forudsige. Mange aspekter ved udvikling, vedligeholdelse og distribution af mobile apps er lettere med JavaScript. Så virksomheder som Facebook og Google investerer meget i bedre værktøjer til at opbygge disse ved hjælp af JavaScript.

Fra og med 2016 er stort set al udvikling webudvikling. Alt rører ved den store platform, der er "internettet". Og den næste bølge af enheder, som du vil tale med rundt om i dit hjem, og biler, der henter dine børn fra skolen - de vil også alle blive sendt sammen via internettet.

Og det betyder JavaScript.

Indsigelse nr. 4: Er JavaScript ikke et legetøjssprog, der blev skrevet på 10 dage?

JavaScript har en fin historie.

Du vil utvivlsomt høre folk knække vittigheder på dens bekostning.

Nå, folk elsker også at hade på C ++. Og ligesom JavaScript er C ++ lykkedes på trods af dette had, og nu er det stort set også overalt.

Så hvis nogen nogensinde giver dig en hård tid til at lære JavaScript i stedet for elite-sprog-i-ugen, skal du bare huske de berømte ord fra den fyr, der oprettede C ++:

"Der er kun to slags programmeringssprog: disse mennesker kæber altid og de ingen bruger." - Bjarne Stroustrup

Jeg skriver kun om programmering og teknologi. Hvis du følger mig på Twitter, spilder jeg ikke din tid. ?