V prvej časti našej série sme ukázali, že práca programátora je omnoho viac než len písanie kódu.
Hovorili sme o prvých dňoch v software house, o rozdiele medzi štúdiom a reálnymi projektmi a o tom, prečo sa skúsenosti získavajú predovšetkým praxou.
Dnes prechádzame k otázke, ktorú si kladie skoro každý Junior. Čomu vlastne mám venovať učenie?
Internet radí všetko. Jedni hovoria, že nevyhnutne treba poznať React. Iní tvrdia, že budúcnosť patrí Rustu. Ešte iní presviedčajú, že bez Dockera, Kubernetes a piatich certifikátov nemá zmysel posielať životopis.
Pravda vyzerá omnoho pokojnejšie...
Neuč sa frameworky. Uč sa programovať.
Táto veta môže znieť zvláštne.
Veď firmy vypisujú pracovné ponuky na React Developera, Java Developera alebo PHP Developera.
Prečo teda hovoríme, aby si nezačínal s frameworkami? - Pretože framework je nástroj. A nástroje sa menia veľmi rýchlo.
Ešte pred pár rokmi mnohí verili, že AngularJS bude dominovať desaťročia. Dnes to vyzerá úplne inak.
Frameworky sa budeš učiť počas celej kariéry. Spôsob myslenia programátora s tebou zostane navždy.
Preto sa najprv nauč:
- riešiť problémy,
- analyzovať požiadavky,
- navrhovať riešenia,
- čítať cudzí kód,
- písať čitateľný kód.
Technológia je len prostriedok k dosiahnutiu cieľa.
Ovládni jeden jazyk poriadne
To je asi najčastejšia chyba začiatočníkov.
Dnes JavaScript. Zajtra Python. Pozajtra Go. O týždeň Rust. O mesiac C#...
Po dvoch mesiacoch sa ukáže, že žiaden z nich neovládaš dobre. Omnoho lepšie je vybrať si jeden jazyk a naozaj ho spoznať.
Pochopiť:
- ako funguje pamäť,
- čo sú referencie,
- ako sa rieši výnimky,
- ako fungujú kolekcie,
- v čom sa líši synchrónne a asynchrónne programovanie,
- ako funguje debugovanie.
Keď jeden jazyk ovládneš dôkladne, ďalšie sa budeš učiť omnoho rýchlejšie.
Nauč sa čítať dokumentáciu
Menej efektné? Veľmi.
Obrovsky užitočné? Ešte viac.
Dobrý programátor si nepamätá všetko. Dobrý programátor vie, kde nájsť spoľahlivú odpoveď.
Dokumentácia výrobcu frameworku alebo knižnice bude takmer vždy lepším zdrojom informácií než náhodný príspevok na fóre spred šiestich rokov.
Schopnosť vyhľadávať informácie odlišuje ľudí, ktorí sa rozvíjajú, od tých, ktorí donekonečna kopírujú riešenia nájdené na internete.
Git nie je tlačidlo "Odoslať"
Keby sme mali vybrať jednu zručnosť, ktorú sa oplatí naučiť čo najskôr, bola by to Git. Nie preto, že je módny. Pretože prakticky každý vývojársky tím ho používa.
Git nie je len ukladanie zmien. Je to spôsob spolupráce. Branching. Pull Request. Merge. Riešenie konfliktov. História zmien.
Bez toho si ťažko predstaviť prácu v profesionálnom tíme.
A ešte jedna rada. Nikdy neposielaj projekt v ZIP súbore. Naozaj.
SQL - aj keď nechceš byť administrátor databáz
Mnoho juniorov sa SQL vyhýba. To je chyba.
Väčšina obchodných aplikácií používa databázy. Nemusíš byť expert na optimalizáciu dotazov.
Ale mal by si rozumieť:
- čo je relačná databáza,
- ako fungujú relácie,
- čo je index,
- čím sa líši LEFT JOIN od INNER JOIN,
- prečo zlý dotaz môže spomaliť celú aplikáciu.
Toto sú znalosti, ktoré sa zídu takmer v každom projekte.
Linux nebolí
Nemusíš hneď prestúpiť na Linux. Ale oplatí sa naučiť základy práce v termináli.
Väčšina serverov beží pod Linuxom.
Znalosť základných príkazov:
- ls,
- cd,
- grep,
- cat,
- chmod,
- ssh,
dokáže ušetriť veľa času.
Na začiatku to vyzerá čudne. Po pár mesiacoch si ťažko predstavíš prácu bez terminálu.
Docker - prečo o ňom všetci hovoria?
Ešte pred pár rokmi mohla konfigurácia prostredia zabrať celý deň.
Každý mal inú verziu PHP. Inú databázu. Iné knižnice.
Docker tento problém výrazne zjednodušil. Umožňuje spustiť aplikáciu v identickom prostredí bez ohľadu na počítač.
Mal by sa Junior hneď stať expertom na kontajnerizáciu? - Nie.
Ale oplatí sa rozumieť, čo je to kontajner a prečo prakticky každý moderný projekt využíva Docker.
AI je skvelý mentor. Nie najlepší programátor.
Téma, ktorú dnes nemožno obísť.
ChatGPT, GitHub Copilot a iné AI nástroje dokážu veľmi zrýchliť učenie. Za jednou podmienkou. Nekopíruj kód bez porozumenia.
Omnoho lepšie je sa opýtať:
- Prečo je toto riešenie lepšie?
- Ako funguje tento algoritmus?
- Ako sa to dá optimalizovať?
- Aké sú nevýhody tohto prístupu?
AI veľmi dobre vysvetľuje.
Nemala by však nahrádzať samostatné premýšľanie.
Debugger je tvoj priateľ
Na začiatku väčšina programátorov robí niečo také: var_dump($zmena);
Potom: echo $zmena;
A o chvíľu neskôr: console.log(dane);
console.log(dane2);
console.log(dane3);
console.log(dane4);
Každý z nás tak začínal. Ale oplatí sa čo najskôr naučiť sa používať debugger.
Umožní ti zastaviť program kdekoľvek, pozrieť si hodnoty premenných a pochopiť, čo sa skutočne deje počas vykonávania kódu.
Je to jedna zo zručností, ktorá výrazne urýchľuje vývoj.
Aký hardware vybrať?
Tu mnohí očakávajú zoznam počítačov za desaťtisíce. Zbytočne.
Na začiatok sú dôležitejšie než najnovší procesor:
- pohodlná klávesnica,
- rýchly SSD disk,
- dostatočné množstvo RAM,
- stabilné pracovné prostredie.
Farebné RGB podsvietenie nepodrýchli kompiláciu. Tri monitory tiež nezlepšia kvalitu kódu.
Dobrý hardware by mal pomáhať pri práci. Nerobiť dojem na fotkách (hoci priznajme si - vzhľad tiež hrá rolu ;) )
Slovník pojmov
Framework
Hotový súbor nástrojov a knižníc, ktoré uľahčujú tvorbu aplikácií podľa určitých zásad.
Git
Systém správy verzií, ktorý umožňuje sledovať zmeny v kóde a spolupracovať viacerým vývojárom na jednom projekte.
Docker
Platforma, ktorá umožňuje spúšťať aplikácie v izolovaných kontajneroch, vďaka čomu funguje prostredie rovnako na rôznych počítačoch.
Debugger
Nástroj slúžiaci na analyzovanie behu programu krok za krokom a hľadanie chýb.
SQL
Jazyk slúžiaci na komunikáciu s relačnými databázami.
Zhrnutie
Dobrý programátor nepozná všetky technológie. Neovláda všetky frameworky. Nepamätá si celú dokumentáciu.
Dobrý programátor má pevné základy.
Vie, ako analyzovať problémy.
Vie nájsť informácie.
Rozumie princípom fungovania technológií.
A práve preto sa dokáže rýchlo naučiť nové nástroje.
Frameworky sa budú meniť.
Jazyky sa budú vyvíjať.
Spôsob myslenia zostane najcennejšou zručnosťou počas celej kariéry.
V nasledujúcej časti ukážeme, ako vyzerá každodenná práca Senior Developera, prečo je Code Review najlepšou školou programovania, čo skutočne znamená Clean Code a prečo veta "mne to funguje" vyvoláva u mnohých programátorov nervózny úsmev.



