A legtöbb ember útja a program megtanulása felé egyetlen késő esti Google kereséssel kezdődik.
Általában valami „Tanulj ______”
De hogyan dönthetnek arról, hogy melyik nyelvet keressék?
„A Szilícium-völgyben mindig tréfálkoznak Java-val. Azt hiszem, ezt meg kellene tanulnom.Vagy:
- Haskell. Olyan meleg most. Haskell.Vagy:
- Az a Go gopher egyszerűen olyan baromi aranyos.
És akkor ott vagyunk a többiek. Valószínűleg valami ilyesmit keresünk:
- Melyik programozási nyelvet kell megtanulnom először?Kevés kérdést tesznek fel oly gyakran, hogy teljes infografikus kezelést kapnak. De ez az egyik:

Az első programozási nyelv kiválasztása szórakoztató folyamat lehet - olyan, mint az egyik „Melyik Quentin Tarantino karakter vagy?” személyiség vetélkedők.
De mielőtt elfutna tanulni Rubyt, mert gyerekkorában élvezettel játszott a Play-Doh-val, hadd emlékeztessem: itt elég nagy a tét.
Több száz órás gyakorlatra lesz szükséged ahhoz, hogy még távolról kompetenssé válj az első programozási nyelveddel kapcsolatban.
Ezért vegye figyelembe a következő tényezőket:
- a munkaerőpiac a nyelv számára
- a nyelv hosszú távú kilátásai
- milyen könnyű megtanulni a nyelvet
- milyen projekteket készíthet tanulás közben (és ossza meg barátaival, hogy motivált maradhasson)
Minden év új programozási nyelveket, és velük együtt új tudományos dolgozatokat hoz. És új internetes képregények.
Komolyan. Nézze meg ezt a drágakövet a múlt hónapban:

Az első programozási nyelv kiválasztásakor nincs hiány opciókból. Hogy kicsit szűkítsem, íme a leggyakoribb Google-keresések, amelyek a programozás tanulásához kapcsolódnak az elmúlt 12 évben:

A Java-nak voltak hullámvölgyei.
A Python fokozatosan emelkedett a legnépszerűbb választássá.
De ezek alatt el van rejtve a kis motor, amely lassan válogathat a népszerűségben az elmúlt években. És ez a motor a JavaScript.
Mielőtt ezekről a programozási nyelvekről beszélnék, hadd tisztázzam:
- Nem állítom, hogy bármelyik nyelv objektíve jobb, mint bármely más nyelv
- Egyetértek azzal, hogy a fejlesztőknek végül egynél több nyelvet kell megtanulniuk
- Arra hivatkozom, hogy először meg kellene tanulniuk egy nyelvet. És - amint a címsorom fejjel lefelé fordított szövegéből valószínűleg kitalálhatja - ennek a nyelvnek JavaScript-nek kell lennie.
Indítsuk el a dolgokat annak feltárásával, hogy miként tanítják a programozást az iskolában.
Számítástechnika 101

Az egyetemek hagyományosan a számítástechnika égisze alatt tanították a programozást, amelyet önmagában gyakran a matematika kiterjesztéseként vagy villamosmérnöki diplomához való kötésként tekintenek.
Természetesen, amint már hallhattátok:
"A számítástechnikai oktatás senkit nem tehet szakértő programozóvá, mint az ecsetek és a pigment tanulmányozása valakit szakértő festővé." - Eric S. Raymond2016-tól sok egyetem még mindig úgy kezeli a programozást, mint az informatikát, és az informatikát, mint a matematikát.
Ennek eredményeként sok bevezető programozó tanfolyam olyan alacsony szintű absztrakciós nyelvekre összpontosít, mint a C, vagy matematikailag fókuszált nyelvekre, mint a MATLAB.
A tanszékelnökök általában maradnak a kurzuson, rámutatva az olyan programozási nyelvek ranglistájára, mint a TIOBE Index, vagy az IEEE:

A legtöbb ilyen ranglistán gyakorlatilag megegyezik a 10 évvel ezelőtti időkkel.
De változás megtörténik. Még az akadémián is.
2014-ben a Python megelőzte a Java-t, mint a legnépszerűbb oktatási nyelvet az amerikai számítástechnika felsőbb programjain.

És még egy változás kötődik… végül… történni.
Mert ha megnézzük a munkaerő által ténylegesen használt nyelveket, az egészen más képet fest:

A fejlesztők több mint fele JavaScriptet használ. Létfontosságú a front-end webfejlesztés szempontjából, és egyre fontosabb a back-end fejlesztés szempontjából. És gyorsan terjeszkedik olyan területekre, mint a játékfejlesztés és a tárgyak internete.
Az álláshirdetések a Java-n kívül más programozási nyelvnél is jobban említik a JavaScript-et:

Nem véletlenül építettük nyílt forráskódú közösségünk tananyagát a JavaScript köré. Az elmúlt két évben több mint 5000 ember használta a Free Code Camp-et első fejlesztői munkájához.
Nem támogatom a JavaScript-et, mert én tanítom. Azért tanítok JavaScriptet, mert ez a legbiztosabb út az első fejlesztői munkához.
De vajon megfelelő-e a JavaScript az Ön számára? Érdemes-e lenni az első programozási nyelved? Fedezzük fel azokat a tényezőket, amelyeket korábban említettem.
1. tényező: A munkaerőpiac
Ha pusztán intellektuális kíváncsiságból tanulsz programozni, nyugodtan hagyd ki ezt a tényezőt. De ha Ön - mint a programozni tanuló emberek túlnyomó többségéhez - ezt a készséget munkához akarja használni, akkor ez fontos szempont.
Mint korábban említettem, a Java-t több álláshirdetésben említik, mint bármely más programozási nyelvet. A JavaScript szoros második.
De ez a helyzet a JavaScript-lel: annak ellenére, hogy már 20 éve létezik, csak nemrégiben vált olyan komoly eszközzé, amelyre a Netflix, a Walmart és a PayPal, például a teljes alkalmazások köré építenék.
Ennek eredményeként rengeteg vállalat alkalmaz JavaScript-fejlesztőket, de a munkaerőpiacon egyszerűen nincsenek ilyenek.

2,7 Java fejlesztő versenyez minden nyitott Java pozícióért. A PHP és az iOS munkáihoz hasonlóan éles a verseny.
De minden nyitott JavaScript-pozícióhoz csak 0,6 JavaScript-fejlesztő tartozik. Nagyon eladók piaca a JavaScript-ismeretekkel rendelkező fejlesztők számára.
2. tényező: Hosszú távú kilátások
Az átlagos JavaScript projekt kétszer annyi húzási kérést kap, mint egy átlagos Java, Python vagy Ruby projekt. Ráadásul a JavaScript gyorsabban növekszik, mint bármely más népszerű nyelv.

A JavaScript ökoszisztémájának az is előnye, hogy jelentős összegeket fektet be pénzbe és mérnöki tehetségekbe olyan vállalatoktól, mint a Google, a Microsoft, a Facebook és a Netflix.
Például a TypeScript (egy statikusan tipizált JavaScript szuperkészlet) több mint 100 nyílt forráskódú közreműködővel rendelkezik, akik közül sokan a Microsoft és a Google alkalmazottai fizetnek a munkájáért.
Az ilyen típusú vállalatközi együttműködést nehezebb megtalálni a Java-val. Az Oracle - amely tulajdonképpen a Java tulajdonosa a Sun Microsystems megszerzése révén - gyakran bepereli azokat a vállalatokat, akik megpróbálják kibővíteni a céget.
3. tényező: Nehézség tanulni

A legtöbb programozó egyetértene abban, hogy a magas szintű szkriptnyelveket viszonylag könnyű megtanulni. A JavaScript ebbe a kategóriába tartozik, a Python és a Ruby mellett.
Annak ellenére, hogy az egyetemek még mindig olyan nyelveket tanítanak, mint a Java és a C ++, mint első nyelveket, őket sokkal nehezebb megtanulni.
4. tényező: Projektek, amelyeket felépíthet vele
Itt igazán ragyog a JavaScript. A JavaScript minden eszközön fut, amely rendelkezik böngészővel, ott a böngészőben. Alapvetően bármit felépíthet JavaScript-sel, és bárhol megoszthatja.
A JavaScript mindenütt jelenléte miatt a Stack Overflow társalapítója, Jeff Atwood megalkotta ma már híres törvényét:
"Minden olyan alkalmazás, amely JavaScript-ben írható , végül JavaScript-ben is meg lesz írva."És minden egyes hónappal Atwood törvénye erős.
A Java egyszer megígérte, hogy mindenhol futni fog. Emlékezhet a Java kisalkalmazásokra. Az Oracle ez év elején hivatalosan megölte őket.
A Python nagyjából ugyanazokkal a problémákkal küzd:
„Hogyan adhatom át ezt a játékot, amit készítettem a barátomnak? Még jobb, van-e olyan mód, hogy ezt feltegyem a telefonomra, hogy megmutathassam az iskolában a gyerekeknek anélkül, hogy telepítenie kellene őket? Hm. - James Hague a Python mint tanító nyelv visszavonulásárólEzzel szemben itt van néhány alkalmazás, amelyet nyílt forráskódú közösségünk tagjai böngészőikben építettek be a CodePen-re. Átkattinthat, és ezeket közvetlenül a böngészőben használhatja:




Tanuljon meg jól egy nyelvet. Ezután tanuljon meg egy másodikat.
Ha folyamatosan ugrál nyelvről nyelvre, nem jutsz messzire.
Az alapokon való túllépéshez jól meg kell tanulnia az első nyelvét. Akkor a második nyelved sokkal-sokkal könnyebb lesz.
Innentől kezdve sokféle nyelv elsajátításával elágazhat, és átfogóbb fejlesztővé válhat:
- A C nagyszerű módja annak, hogy megtanulják, hogyan működnek a számítógépek a memóriakezelés szempontjából, és hasznos a nagy teljesítményű számítástechnikában
- A C ++ nagyszerű játékfejlesztéshez.
- A Python fantasztikus a tudomány és a statisztika szempontjából.
- A Java fontos, ha nagy technológiai vállalatoknál akar dolgozni.
De először tanulja meg a JavaScript-et.
Rendben, most megpróbálom a lehetetlent - megpróbálom előre látni a kifogásokat a megjegyzések részben.
1. kifogás: De a JavaScript nem lassú?
A JavaScript a legtöbb gyakorlati célból olyan gyors, mint a nagy teljesítményű nyelv.
A JavaScript (Node.js) nagyságrendekkel gyorsabb, mint a Python, a Ruby és a PHP.
Közel olyan gyors, mint a nagy teljesítményű nyelvek, mint a C ++, a Java és a Go.
Az alábbiakban a legátfogóbb, több nyelven átfogó benchmark eredményei láthatók:

2. kifogás: De a JavaScript nincs statikusan beírva
A Pythonhoz és a Ruby-hoz hasonlóan a JavaScript is dinamikusan be van írva, ami kényelmes. De bajba kerülhet. Itt exampleArray
tömb akarok lenni. Beállítottam az értékeket, majd ellenőriztem a hosszát - vagyis a benne lévő elemek számát.
exampleArray = [1, 2] -> [1, 2] exampleArray.length -> 2
De aztán véletlenül húrnak rendelem.
exampleArray = “text” -> “text” exampleArray.length -> 4
Az ilyen típusú hibák folyamatosan előfordulnak dinamikusan gépelt nyelveken. A legtöbb fejlesztő csak ellenőrzést hajt végre annak megakadályozása érdekében, és ennek megfelelően ír teszteket.
Ha feltétlenül statikus gépelést kell használnia az első programozási nyelven, akkor továbbra is azt javaslom, hogy először tanulja meg a JavaScript-et. Ezután gyorsan felveheti a TypeScript-t.
"A gépírásnak van egy tanulási görbéje, de ha már ismeri a JavaScript-et, akkor sima lesz." - Alex Ewerlöf a TypeScript-en3. kifogás: De nagyon szeretnék mobilalkalmazást készíteni
Először továbbra is a JavaScript elsajátítását javaslom.
- A JavaScript számos eszközt tartalmaz natív mobilalkalmazások készítéséhez, például az Angular Cordova és a React Native.
- Annak érdekében, hogy a mobilalkalmazása valóban bármi érdekeset csináljon, valószínűleg megfelelő háttérre lesz szüksége, amelyet megfelelő webfejlesztési keretrendszerrel szeretne felépíteni, például a Node.js + Express.js.
Érdemes kiemelni azt is, hogy a mobilalkalmazás-fejlesztés legjobb napjai nagyon is mögötte állhatnak.
Először is, bármennyire is az emberek használják a mobilalkalmazásokat, az összes fejlesztői munkahely közel fele webfejlesztés. Hasonlítsa ezt össze a mobilalkalmazások fejlesztését magában foglaló munkahelyek csupán 8% -ával.

A „létezik erre egy alkalmazás” nagy elképzelés nem valósult meg. Ehelyett a legtöbb okostelefon-tulajdonos leállította az új alkalmazások letöltését.
Persze - továbbra is használnak alkalmazásokat. Leginkább a Facebook, a Google Maps és néhány más. Mint ilyen, a mobilalkalmazások fejlesztői iránti kereslet nagy része néhány nagy munkáltatóban koncentrálódik.
A mobil fejlesztő munkahelyek kilátásait nehéz megjósolni. A mobilalkalmazások fejlesztésének, karbantartásának és terjesztésének számos aspektusa könnyebb a JavaScript használatával. Tehát az olyan vállalatok, mint a Facebook és a Google, nagy összegeket fektetnek jobb eszközökbe ezek javítására JavaScript használatával.
2016-tól nagyjából minden fejlesztés webfejlesztés. Minden érinti azt a nagy platformot, amely az „internet”. És a következő eszközhullám, amellyel otthonában beszélni fog, és az autók, amelyek felveszik a gyerekeket az iskolából - mindkettőt összekötik az internet segítségével is.
Ez pedig JavaScriptet jelent.
4. kifogás: Nem a Java játéknyelv, amelyet 10 nap alatt írtak?
A JavaScript különös történelemmel rendelkezik.
Kétségtelenül hallani fogja, hogy az emberek vicceket ropognak annak költségén.
Nos, az emberek imádják gyűlölni a C ++ -ot is. És a JavaScripthez hasonlóan a C ++ is sikerült ennek a gyűlöletnek a ellenére, és most nagyjából mindenhol.
Tehát, ha valaki valaha is nehezen viseli a JavaScript elsajátítását a heti elit nyelv helyett, ne feledje a C ++ -ot létrehozó srác híres szavait:
"Csak kétféle programozási nyelv létezik: azok az emberek, akik mindig szajkóznak, és akiket senki sem használ." - Bjarne StroustrupCsak a programozásról és a technológiáról írok. Ha követsz a Twitteren, nem fogom pazarolni az idődet. ?