V první části naší série jsme ukázali, že práce vývojáře je mnohem víc než jen psaní kódu.
Mluvili jsme o prvních dnech ve software house, o rozdílu mezi univerzitou a reálnými projekty a o tom, proč se zkušenost získává především praxí.
Dnes přecházíme k otázce, kterou si klade téměř každý junior. Co bych se vlastně měl učit?
Internet poradí všechno. Někteří říkají, že musíte znát React. Jiní tvrdí, že budoucnost patří Rustu. Ještě jiní přesvědčují, že bez Dockeru, Kubernetes a pěti certifikátů nemá smysl posílat CV.
Pravda vypadá mnohem klidněji...
Neučte se frameworky. Učte se programovat.
Tahle věta může znít divně.
Vždyť firmy vyhlašují nábor na React Developera, Java Developera nebo PHP Developera.
Proč tedy říkáme, abyste nezačínali u frameworků? - Protože framework je nástroj. A nástroje se mění velmi rychle.
Ještě před několika lety mnoho lidí věřilo, že AngularJS bude dominovat desítky let. Dnes to vypadá úplně jinak.
Frameworky se budete učit po celou kariéru. Způsob myšlení vývojáře s vámi ale zůstane navždy.
Proto se nejdřív naučte:
- řešit problémy,
- analyzovat požadavky,
- navrhovat řešení,
- číst cizí kód,
- psát čitelný kód.
Technologie jsou jen prostředkem k dosažení cíle.
Ovládněte jeden jazyk do hloubky
To je asi nejčastější chyba začátečníků.
Dnes JavaScript. Zítra Python. Pozítří Go. Za týden Rust. Po měsíci C#...
Po dvou měsících se ukáže, že žádný z nich není zvládnut dobře. Mnohem lepší je vybrat si jeden jazyk a opravdu ho poznat.
Pochopit:
- jak funguje paměť,
- co jsou reference,
- jak se zpracovávají výjimky,
- jak fungují kolekce,
- čím se liší synchronní od asynchronního programování,
- jak funguje debugování.
Když se naučíte dobře jeden jazyk, další se budete učit mnohem rychleji.
Naučte se číst dokumentaci
Málo efektní? Velmi.
Neskutečně užitečné? Ještě víc.
Dobrý vývojář si nepamatuje všechno. Dobrý vývojář ví, kde najít spolehlivou odpověď.
Dokumentace výrobce frameworku nebo knihovny bude téměř vždy lepším zdrojem než náhodný příspěvek na fóru z roku 2018.
Schopnost vyhledávat informace odlišuje ty, kteří se rozvíjejí, od těch, kteří bez přemýšlení kopírují řešení nalezená na internetu.
Git není tlačítko "Odeslat"
Kdybychom měli vybrat jednu dovednost, kterou se vyplatí naučit co nejdřív, byl by to Git. Ne proto, že je módní. Proto, že prakticky každý tým ho používá.
Git není jen ukládání změn. Je to způsob spolupráce. Branching. Pull Request. Merge. Řešení konfliktů. Historie změn.
Bez toho si práci v profesionálním týmu jen těžko představíte.
A ještě jedna rada. Nikdy neposílejte projekt v ZIPu. Opravdu.
SQL - i když nechcete být DB adminem
Mnoho juniorů se SQL vyhýbá. To je chyba.
Většina podnikových aplikací používá databáze. Nemusíte být expertem na optimalizaci dotazů.
Ale měli byste rozumět:
- co je relační databáze,
- jak fungují relace,
- co je index,
- čím se liší LEFT JOIN od INNER JOIN,
- proč špatně napsaný dotaz může zpomalit celou aplikaci.
To jsou znalosti, které se hodí v téměř každém projektu.
Linux nekouše
Nemusíte hned přecházet z Windows. Ale stojí za to naučit se základy práce v terminálu.
Většina serverů běží na Linuxu.
Znalost základních příkazů:
- ls,
- cd,
- grep,
- cat,
- chmod,
- ssh,
může ušetřit spoustu času.
Na začátku to vypadá zvláštně. Po několika měsících si práci bez terminálu těžko představíte.
Docker - proč o něm všichni mluví?
Ještě před několika lety mohla konfigurace prostředí zabrat celý den.
Každý měl jinou verzi PHP. Jinou databázi. Jiné knihovny.
Docker ten problém hodně zjednodušil. Umožňuje spouštět aplikace v identickém prostředí bez ohledu na počítač.
Měl by se junior hned stát expertem na kontejnery? - Ne.
Ale stojí za to pochopit, co je kontejner a proč téměř každý moderní projekt používá Docker.
AI je skvělý mentor. Ne nejlepší programátor.
To je téma, které dnes nelze opomenout.
ChatGPT, GitHub Copilot a další AI nástroje mohou výrazně urychlit učení. Za jedné podmínky. Nekopírujte kód bez porozumění.
Lepší je se ptát:
- Proč je toto řešení lepší?
- Jak funguje tento algoritmus?
- Jak to lze optimalizovat?
- Jaké jsou nevýhody tohoto přístupu?
AI vysvětluje velmi dobře.
Neměla by ale nahrazovat vlastní myšlení.
Debugger je váš přítel
Na začátku většina programátorů dělá něco takového: var_dump($zmienna);
Potom: echo $zmienna;
A chvíli potom: console.log(dane);
console.log(dane2);
console.log(dane3);
console.log(dane4);
Každý z nás takto začínal. Ale je dobré co nejdříve se naučit používat debugger.
Umožní zastavit program kdekoli, podívat se na hodnoty proměnných a pochopit, co se během běhu kódu skutečně děje.
Je to jedna z dovedností, která výrazně urychlí vývoj.
Jaký hardware vybrat?
Mnozí čekají seznam počítačů za desítky tisíc. Zbytečně.
Na začátku jsou důležitější než nejnovější procesor tyto věci:
- pohodlná klávesnice,
- rychlý SSD disk,
- dostatečná paměť RAM,
- stabilní pracovní prostředí.
Barevné RGB podsvícení nepřidá na rychlosti kompilace. Tři monitory rovněž nezpůsobí, že kód bude lepší.
Dobrý hardware by měl pomáhat v práci. Ne dělat dojem na fotkách (ačkoli vzhled také má své kouzlo ;) )
Slovníček pojmů
Framework
Hotová sada nástrojů a knihoven, která usnadňuje tvorbu aplikací podle určitých pravidel.
Git
Systém správy verzí, který umožňuje sledovat změny v kódu a spolupracovat více vývojářům na jednom projektu.
Docker
Platforma umožňující spouštět aplikace v izolovaných kontejnerech, díky čemuž prostředí běží stejně na různých počítačích.
Debugger
Nástroj sloužící k analýze běhu programu krok za krokem a hledání chyb.
SQL
Jazyk sloužící ke komunikaci s relačními databázemi.
Shrnutí
Dobrý vývojář nezná všechny technologie. Nezná všechny frameworky. Nepamatuje si celou dokumentaci.
Dobrý vývojář má pevné základy.
Ví, jak analyzovat problémy.
Umí najít informace.
Rozumí principům fungování technologií.
A právě proto se rychle naučí nové nástroje.
Frameworky se budou měnit.
Jazyky se budou vyvíjet.
Způsob myšlení zůstane tou nejcennější dovedností po celou kariéru.
V příští části ukážeme, jak vypadá každodenní práce senior developera, proč je Code Review nejlepší školou programování, co to skutečně znamená Clean Code a proč věta "u mě to funguje" vyvolává u mnoha vývojářů nervózní úsměv.
