Chceš sa naučiť programovať ale nevieš kde začať? Alebo si skúsený developer a premýšľaš aký ďalší jazyk pridať do skill setu?
Prvým krokom je rozhodnúť sa, ktorý programovací jazyk sa naučiť. Berúc do úvahy množstvo existujúcich programovacích jazykov to môže byť neľahká úloha.
Obsah článku (Navigácia)
V tomto článku ti predstavím zoznam programovacích jazykov, o ktorých si myslím, že má najväčší zmysel sa začať učiť. Keďže nerád len tak táram, budem sa opierať o skutočné dáta z StackOverflow a Indeed.
Najskôr sa pozrieme na nejaké štatistické údaje. Ak ťa nezaujíma štatistika, kľudne choď rovno na zoznam odporúčaných programovacích jazykov.
Porovnávať programovacie jazyky budem z viacerých faktorov ako:
- jednoduchosť naučenia sa jazyka
- súčasná používanosť
- spokojnosť developerov programujúcich v danom jazyku
- počet pracovných ponúk
- ktoré programovacie jazyky by sa developeri chceli naučiť
- priemerný plat
Štatistické údaje (TOP programovací jazyk)
Nasledovné údaje pochádzajú z najnovšieho (2019) StackOverflow prieskumu. V tomto roku sa prieskumu zúčastnilo takmer 90 000 developerov. Tento prieskum považujem za najdôveryhodnejší zdroj štatistických údajov v oblasti vývoja softvéru. Pozrime sa teda na to čo hovoria dáta:
Najpoužívanejšie
Javascript je už sedem rokov po sebe najpoužívanejší programovací jazyk. Niet sa čo diviť, keďže Javascript sa používa takmer na každom webe.
Avšak za zmienku stojí aj Python, ktorý každým rokom stúpa v rebríčku. Tento rok dokonca prekonal aj Javu. Python je v dnešnej dobe najrýchlejšie rastúcim programovacím jazykom.
Najoblúbenejšie
Rust je štvrtým rokom po sebe najobľúbenejším programovacím jazykom. V tesnom závese sú aj Python, TypeScript a Kotlin. Znamená to, že programátori, ktorí ich používajú sú s nimi spokojní a chcú ich naďalej používať.
Najneoblúbenejšie (Najviac opúšťané)
VBA, Objective-C a Assembly vyšli tento rok ako najneoblúbenejšie/najopúšťanejšie jazyky. Do tohto rebríčka sa zaradili jazyky, ktoré programátori už viac nechcú používať.
Najželanejšie
Python v prieskume vyšiel s veľkým náskokom ako jazyk, ktorý by sa programátori radi naučili. Na prvej priečke sa v tomto rebríčku umiestnil už 3. rok po sebe.
Ktorý programovací jazyk je najlepšie platený?
Rebríček najlepšie platených jazykov je nutné brať s rezervou. Dôvodom je, že platy programátorov sa veľmi líšia v závislosti od krajiny a oblasti. Keď si skúsiš vygoogliť podobné rebríčky, zistíš, že poradie jazykov sa ani len nepodobá.
Aj napriek tomu prikladám výsledky prieskumu StackOverflow, keďže žiadne dôveryhodné prieskumy zamerané na Slovensko som nenašiel.
Odporúčané programovacie jazyky
Na základe daných údajov som dal dokopy krátky zoznam: Programovacie jazyky, ktoré má (podľa môjho názoru) najväčší zmysel začať sa učiť v roku 2019.
Do úvahy som bral aj modernosť jazyka. Rozhodol som sa zaradiť do zoznamu aj moderné jazyky aj evergreeny. Myslím, že každému môže vyhovovať niečo iné. Moderné jazyky sú často krajšie a efektívnejšie ale za to pri evergreenoch je veľká pravdepodobnosť, že o 5 – 10 rokov bude po nich stále dopyt.
Python
Python je jeden z najjednoduchších programovacích jazykov. Často sa používa ako prvý programovací jazyk pre výučbu programovania.
V praxi sa využíva v AI (Umelá inteligencia) a Strojovom učení (Machine Learning), čo je v dnešnej dobe veľmi žiadané odvetvie. Tiež sa vo veľkej miere používa ako backend pre webové projekty.
Vďaka jeho jednoduchej syntaxi a dynamickému typovaniu je výborným jazykom pre automatizačné skripty a prototypovanie.
Jeho dynamické typovanie osobne vnímam zároveň ako jeho nevýhodu. Osobne si neviem predstaviť písať nejaký väčší projekt v Pythone, kvôli spomínanému dynamickému typovaniu. Ale keďže sú v ňom napísané tisícky veľkých projektov po celom svete, zrejme sa to dá 🙂 Navyše v novom Pythone sa dajú používať dobrovoľné hinty pre typy. To čiastočne zmierňuje túto nevýhodu.
Základné vlastnosti
- Využite:
- desktopové aplikácie
- backend
- web
- scripting
- umelá inteligencia
- strojové učenie
- vedecké výpočty
- Typovanie: Dynamické
Typescript
Typescript vznikol v Microsoft-e ako odpoveď na nedostatky JavaScriptu pre veľké aplikácie. Najdôležitejším prínosom Typescriptu je dobrovoľné špecifikovanie typov výrazov (typovanie).
Prečo ti odporúčam začať sa učiť Typescript a nie radšej Javascript? Javascript je predsa dlhodobo najpoužívanejším programovacím jazykom… Typescript je nadmnožinou Javascriptu. Zjednodušene povedané: validný program napísaný v Javascripte je tiež validný Typescript program. Takže keď sa naučíš Typescript, malo by ti stačiť minimálne úsilie okamžite presedlať na Javascript v prípade potreby.
Typescript podporujú všetky moderné frontendové frameworky ako Angujar, React, Vue. Angujar je dokonca napísaný v Typescripte a tiež Vue má v pláne ešte vylepšiť podporu pre Typescript.
Základné vlastnosti
- Využitie:
- frontend
- web
- backend (Node.js)
- Typovanie: graduálne (dobrovoľné statické)
Java
Java trochu zaspala dobu. S príchodom mnohých moderných JVM programovacích jazykov začala Java strácať na popularite. Niektorí developeri sa rozhodli prejsť ku modernejším jazykom ako Clojure, Kotlin alebo Scala.
Dôležitým faktom ale je, že vlastníci Javy (Oracle) si to uvedomili. Podľa nového plánu vychádza každý polrok nová Java verzia a každé 3 roky nová LTS verzia (Long-term support). To nie je žiadna závratná rýchlosť, ale dobrá správa je, že Java sa modernizuje.
Podstatné však je, že Java je jazyk korporátu. Mnoho najväčších firiem má svoje systémy postavené na Jave. Ak sa rozhodneš pre Javu, určite nebudeš mať problém si nájsť na Slovensku prácu (dobre platenú prácu).
Základné vlastnosti
- Využite:
- desktopové aplikácie
- frontend (JSF, JSP, Thymeleaf, …)
- backend
- mobilné aplikácie
- web
- Typovanie: statické
Go (Golang)
Go sa na Slovensku sa zatiaľ veľmi nepoužíva, ale v US je veľmi obľúbený. Je to relatívne mladý programovací jazyk, ktorý vznikol v Google v roku 2007. Jeho najvýraznejšou črtou je jednoduchosť používania. Tvorcovia sa snažili pri navrhovaní Go snažili udržiavať čo najmenší počet keywordov (rezervované slová) a funkcionalít. Ďalšími charakteristikami sú dobrá čitateľnosť kódu, efektivita a rýchlosť.
V Google je Go široko používaný pre mnohé produkčné aplikácie. Tiež je veľmi rozšírený medzi open-source projektami.
Podľa môjho názoru môžeme očakávať, že sa Go v blízkej budúcnosti začne viac používať aj na Slovensku.
Základné vlastnosti
- Využite:
- desktopové aplikácie
- backend
- Typovanie: statické
Kotlin
Kotlin je moderný JVM programovací jazyk. Jeho tvorcovia (JetBrains) sa inšpirovali mnohými populárnymi jazykmi ako Java, Python, Scala, Groovy, C#, Gosu, ML a iné. Kotlin sa poučil z chýb a nedostatkov týchto jazykov a zobral si z nich to dobré.
Kľúčovou vlastnosťou Kotlinu je jeho interoperabilita s Javou – Kotlin a Java sú schopné vzájomne spolupracovať, volať svoje funkcie… V praxi to znamená, že v Kotline môžeš používať všetky Java knižnice a frameworky. Čiže to nie je rozhodnutie buď Java alebo Kotlin, kľudne môžeš používať oba jazyky v jednom projekte súčasne.
V roku 2017 Google začal podporovať Android development v Kotline. Od roku 2019 je Kotlin oficiálne preferovaný programovací jazyk pre Android.
Základné vlastnosti
- Využitie:
- desktopové aplikácie
- backend
- frontend
- mobilné aplikácie
- web
- Typovanie: statické
Zhrnutie
Nech už sa rozhodneš pre ktorýkoľvek z daných programovacích jazykov, myslím, že to nebude krok vedľa.
Ak si skôr konzervatívnejší typ, išiel by som do časom overených jazykov ako Python alebo Java. Python je z týchto dvoch jednoduchší, takže budeš produktívnejší skôr ako pri Jave.
Ak si typický Early Bird (rád skúšaš nové veci), moderné jazyky ako Go alebo Kotlin budú pre teba. Tieto jazyky sú efektívnejšie a poučili sa z chýb starších kolegov. Treba však počítať s tým, že dopyt po nich zatiaľ nie je taký vysoký.
Potom je tu ešte Typescript, ktorý by som neradil do ani jednej z týchto kategórií. Na jednej strane je to mladý a moderný jazyk. Na strane druhej je to z veľkej časti časom overený Javascript.
Dúfam, že som ti týmto článkom aspoň trochu pomohol zorientovať sa v dnešnej dobe rozkvetu programovacích jazykov. Želám veľa štastia a pevné nervy pri učení!