Technologické správy informujú viackrát do roka o novom prielome v oblasti umelej inteligencie, ktorý má čoskoro zmeniť aj každodenný život. Rozhodnutia v politike a ekonomike sa čoraz viac snažia opierať o dáta, či aspoň ich interpretácie. V pracovných inzerátoch sa popri štandardných požiadavkách jedného cudzieho jazyka a vodičského preukazu skupiny B objavujú aj predpoklady ovládania SQL a dátovej analýzy. A množstvo detských hračiek prichádza s možnosťou prepojenia s počítačom a prispôsobenia prostredníctvom programovania.
Ak už dnes nie je programovanie považované za súčasť základnej gramotnosti, zdá sa len otázkou času, kedy tomu tak bude. Naučiť sa aspoň jeden programovací jazyk sa preto stáva takmer nevyhnutnosťou. A práve začiatok roka, prirodzene spájaný s väčším odhodlaním začínať nové veci, je skvelým časom kedy sa do toho pustiť.
Programovacích jazykov sú stovky a výber konkrétneho je do veľkej miery otázkou cieľov, ktoré programovaním sledujete, vašich predošlých skúseností i zložitosti konceptov a syntaxe daného jazyka.
Python
Python patrí v posledných rokoch k najobľúbenejším jazykom a to hneď z niekoľkých dôvodov. Prvým je, že sa mu dá relatívne ľahko porozumieť vďaka čitateľným a relatívne zrozumiteľným syntaxom. Príkazy sú do najvyššej možnej miery podobné reálnym anglickým výrazom a ich význam v bežnom jazyku veľa navráva o tom, aké funkcie príkazy v Pythone plnia.
Druhý dôvod, prečo mnohí volia Python, ako prvý jazyk, vyplýva tak trochu z jeho popularity samotnej. Má silnú online komunitu, veľa knižníc vytvorených tretími stranami určených na riešenie špecifických problémov a výbornú integráciu s rôznymi inými druhmi softvéru i hardvéru.
Tretím argumentom, prečo začať s práve s Pythonom, je široká použiteľnosť. Okrem vzdelávania je vhodný na tvorbu webu, strojové učenie (machine learning, ML), analýzu a interpretáciu dát i pre tvorbu hier, business aplikácií, či projektov na Raspberry Pi.
Javascript
Javascript (JS) je, spolu s HTML a CSS, jednou z trojice kľúčových technológií poháňajúcich web. Tým, že si získal podporu všetkých populárnych prehliadačov (tie doslova súťažia o to, ktorý dokáže Javascript interpretovať rýchlejšie) tento jazyk vo svojej základnej podobe nepotrebuje k spusteniu nič viac ako moderný browser. Čo však robí Javascript hodným pozornosti sú programovacie prostredia a knižnice, ktoré presahujú vývoj webu a exekúciu len v prehliadači. NodeJS umožňuje použitie Javascriptu na tvorbu desktopových aplikácií i na back-end programovanie webových serverov.
Obrovskému záujmu sa tešia aj takzvané frameworky, umožňujúce vývoju webu v jeho modernej podobe so všetkými pokročilými funkciami naprieč platformami. Angular, React, Vue, Backbone a Meteor sú len niektorými z nich. Ak i vy často žasnete nad všetkými tými interaktívnymi prvkami, animáciami a funkcionalitou kvalitného web dizajnu 21. storočia, JS frameworky sú tým, čím môžete vašu programátorskú cestu začať.
Java
Nezriedka prvá voľba architektov business aplikácií, Java je jazykom s trvalo vysokým dopytom na pracovnom trhu i povesťou skvelého finančného ohodnotenia. Tým, že základy Javy tvoria triedy (classes), môže byť tento objektovo orientovaný jazyk pre začiatočníka o čosi náročnejší na pochopenie ako Python, či JS.
Jazyk Java vlastní firma Oracle a jeho špičkovú kvalitu sa snaží udržiavať hneď na niekoľkých úrovniach. Zásadnou charakteristikou je prenosnosť Java kódu. V Oracle sa riadia heslom Write Once, Run Everywhere (Píšte raz, spúšťajte všade), čo v praxi znamená, že programy na to, aby bežali pod rôznymi operačnými systémami nevyžadujú modifikácie. Java sa tak stala hlavným vývojárskym nástrojom napríklad aj pre Android. Ďalšími jej výhodami sú bezpečnosť a prehľadnosť.
SQL
SQL (Structured Query Language) nie je programovacím jazykom so všeobecným uplatnením, nedajú sa v ňom teda programovať aplikácie, webstránky, hry ani nič podobné. I napriek tomu je však mimoriadne dôležitý a žiadaný, lebo jeho doménou sú databázy, teda dátové úložiská, o ktoré sa dnes podstatná časť obchodných modelov a softvérových produktov opiera.
SQL slúži na “dotazovanie” databáz za účelom získania špecifickej informácie, prípadne menšej podskupiny dát. Každý dotaz (query) musí byť štruktúrovaný podľa pravidiel jazyka a jeho výstupom spravidla býva dátový súbor v tabuľkovom formáte. Okrem interakcie s inými programovacími jazykmi, prostredníctvom ktorých je možné dotazovanie značne uľahčiť automatizáciou, nachádza SQL uplatnenie aj samostatne, najmä pri spracovaní a analýze väčšieho množstva dát. Tento jazyk by mal preto patriť do výbavy každého, kto dáta spracováva, či vizualizuje.
C#
C# (vyslovuje sa C Sharp) je produktom firmy Microsoft. C# sa, podobne ako Java, ktorá je jeho najväčším konkurentom, orientuje na všetky druhy aplikácií, či sú webové, desktopové, alebo mobilné. Vyvíjané pod .NET frameworkom, finálne softvérové produkty sú prenosné na všetky platformy. C# skvelo spolupracuje s populárnym vývojárskym prostredím Microsoft Visual Studio a rovnako je známy aj ako primárny jazyk pre dizajn hier poháňaných platformou Unity. C# má tiež vynikajúcu prehľadnú dokumentáciu a širokú online komunitu užívateľov.
Kotlin
Výsledok snahy českej firmy Jetbrains, jazyk Kotlin, sa na výslnie dostal v poslednom desaťročí. Obľubu si získal predovšetkým pri vývoji mobilných aplikácií pre Android, no použiteľný je všeobecne na všetky druhy appiek. Svojmu pôvodu v prostredí vývojárskej praxe vďačí za prvky, ktoré riešia mnohé reálne problémy každodenného komerčného programovania, kde záleží na produktivite. Kód má dobrú čitateľnosť a celkovo je ho menej ako pri iných jazykoch. Kotlin je plne kompatibilný s Javou, čo znamená, že existujúce Java knižnice sa dajú použiť aj pri programovaní v Kotline, a tiež, že znalosť Javy je pri učení sa Kotlinu veľkou výhodou. Kotlin je bezpečný, má podporu dlhodobo etablovanej firmy a jeho priaznivcov stále pribúda.
Swift
Swift z dielne Apple je jazykom špecializovaným na vývoj aplikácií pre iOS. Jeho syntax je veľmi ústretová voči začiatočníkom, výrazy sú zrozumiteľné a dá sa rýchlo naučiť. Nevyžaduje programátorskú prax a k dispozícii je veľa jednoduchých a priamočiarych online tutoriálov.
Hlavnými črtami Swiftu sú popri čitateľnosti aj bezpečnosť, rýchlosť, menej kódu a dynamické knižnice uľahčujúce prechod na nové verzie Swiftu. Ak patríte k fanúšikom produktov iPhone, iPad a Apple Watch, prípadne máte predošlú skúsenosť s jazykom Objective-C, Swift vás určite zaujme a pomôže vám zrealizovať váš nový nápad pre aplikáciu.
Go
Jazyk Go od Google charakterizuje predovšetkým jednoduchosť, ktorá začínajúcim programátorom výrazne uľahčuje učenie a tým skúsenejším zjednodušuje prácu s existujúcim kódom. Dizajn Go sa sústreďuje na riešenia vhodné pre veľké projekty a osvojilo si ho už viacero známych veľkých firiem. Patrí tiež k najrýchlejšie rastúcim jazykom a po Go programátoroch sa očakáva silný dopyt.
Go je mimoriadne vhodný pre modernú architektúru mikroslužieb (microservices), má výborný výkon, postará sa za vás o manažment pamäte (dôležitý aspekt programovania) a celý rad výhod prináša aj dátovým analytikom, ktorí primárne nie sú programátormi (tu má ambíciu konkurovať jazykom Python a R).
Ruby
Open-source projekt Ruby poskytuje možnosti širokej aplikácie pri všetkých hlavných typoch programovania. Má povesť ľahkej prístupnosti pre začiatočníkov, bohatej a dôkladne štruktúrovanej knižnice (RubyGems) a menej striktných pravidiel pri dizajne programov. Framework Ruby on Rails (RoR) sa časom stal jednou z najpopulárnejších technológií pre tvorbu webu vôbec.
C a C++
Jazyk C je pravdepodobne najstarším zo širšie používaných programovacích jazykov. Naučiť sa ho je náročnejšie, lebo vyžaduje určité teoretické základy z informatiky (najmä uchopenie pojmu pointer), no benefity tohto druhu vám vo vašej programátorskej kariére prídu iste vhod. C++ je mladšou, ľahšou a modernejšou verziou C.
C++ sa vyznačuje prenosnosťou (kód funguje na rôznych platformách), rýchlosťou a výkonom. To ho predurčuje na vývoj aplikácií náročných na výpočtovú silu, ako sú graficky komplexné hry, zložité matematické simulácie a podobne. Množstvo funkcií a bohatú dokumentáciu pri práci s oboma týmito jazykmi iste uvíta začiatočník i pokročilý programátor.
Iné jazyky hodné pozornosti
Rust - podľa stránky Stackoverflow zďaleka najobľúbenejší jazyk u profesionálov, hlavne vďaka dobrému manažmentu pamäte. Aktuálne má menšiu podporu knižníc, ale to sa časom pravdepodobne zmení.
Haskell - funkcionálny programovací jazyk využívajúci odlišný prístup k programovaniu ako väčšina zo spomínaných. Ťažšie sa učí, lebo vyžaduje zmenu myslenia, ale z dlhodobého hľadiska prináša prehľadný, čistý kód s minimom runtime bug-ov (chýb po spustení).
Clojure - snaží sa o spojenie toho najlepšieho z viacerých programátorských prístupov a paradigiem. Využíva JVM, funkcionálne programovanie, interaktívny vývoj a moderný manažment pamäte.
Scala - komplexný jazyk vhodný pre veľké korporátne projekty, kombinujúci viacero rozličných prvkov.
R - jazyk vhodný pre štatistickú analýzu.
Matlab - jazyk vhodný pre matematické operácie, robotiku a elektrotechniku.
Pre deti
Jednotkou pre učenie menších detí je Scratch, jazyk vytvorený univerzitou MIT. Programovanie prebieha premiestňovaním a vzájomným logickým usporadúvaním bublín symbolizujúcich štandardné operácie a výrazy. Na podobnom princípe funguje aj jazyk Blockly.
Väčšie deti to môžu skúsiť s Pythonom a Javascriptom, populárne je aj programovanie v rámci videohier Minecraft (Java) a Roblox (jazyk Lua).
Kde začať
freecodecamp.org - detailné a štruktúrované bezplatné kurzy s vynikajúcou podporou zamerané na Javascript a Python.
Coursera - bezplatné online kurzy z elitných svetových univerzít pokrývajúce teoretické základy informatiky, aj ich praktickú aplikáciu.
Udemy - populárne prakticky orientované kurzy. Platené, no nie drahé a s častými zľavami.
Pluralsight - Java, Python, Javascript a C#.
SQL Zoo - základy SQL.
Codcademy - prístup krok za krokom, ako v škole. Čiastočne platená platforma, ale skvelá pre začiatočníkov.
Zbierky praktický úloh na otestovanie si novonadobudnutých vedomostí: Project Euler, Codewars, Coderbyte, HackerRank, Exercism.