O čem bys chtěl hardwarovou přednášku?

Proč a jak začít programovat

Proč a jak začít programovat

Tento článek je určený všem začínajícím programátorům každého věku, studentům i těm, kteří mají již po škole a chtějí se rekvalifikovat. Dále rodičům, kteří myslí na budoucnost svých dětí, nebo zvědavcům, které IT zaujalo. Zodpoví většinu vašich dotazů a navede vás na správnou kolej. Také vám vysvětlí, proč být zrovna ajťákem.

Článek píši na základě mnohaletých zkušeností v oboru, mám za sebou studium na VŠ, školení pracovníků, naprogramoval jsem několik podnikových aplikací a konečně jsem vytvořil ITnetwork, kde jsem na základě zkušeností sepsal tisíc výukových článků.

Jakou máte budoucnost jako programátor?

Na úvod se krátce zamysleme nad tím, proč vlastně programovat. Kromě toho, že je to hezká práce, kterou můžete jednoduše dělat i z domova, je tato práce také skvěle placená. Průměrný plat českého IT specialisty byl dle ČSÚ pro rok 2013 47.000 Kč (když počítáme i IT techniky, je to asi 42.000 Kč). Je nutno říci, že se jedná o plat průměrného programátora. Pokud budete dobří, dostanete se na čísla 70.000 Kč měsíčně a více. A pokud umíte angličtinu a nebojíte se podnikat, není problém spolupracovat dálkově s cizinou a to se dostáváte na částky jako 150.000 Kč/měsíc a více.

(Možná vám připadá klišé, že takto apeluji na peníze, časem však zjistíte, že čím více jich máte, tím více máte času, svobody, můžete cestovat, objevovat nové technologie, životní styly, kulturu, zábavu a podobně.)

Proč a jak se stát programátorem

Platy jsou tak vysoké ze dvou důvodů:

  • IT umožňuje automatizovat (robotizovat) firemní procesy. Obrovské zakázky poptávají zejména stát a finanční giganti, kteří díky informačním technologiím fungují mnohem rychleji a levněji, než kdyby s nimi spolupracovala armáda zaměstnanců. Díky technologiím rychleji vyrábí, rychleji obsluhují klienty na pobočce, automatizovaně prodávají tisíce položek denně v robotizovaných e-shopech. Provoz strojů stojí minimum a oživí je právě váš software, který si firma ráda zaplatí, několikrát se jim to vrátí, zisky z automatizace jsou astronomické.
  • Práce v IT je odborná a je třeba kvalitní vzdělání. Každá třetí IT firma se potýká s kritickým nedostatkem programátorů.

Výsledkem těchto dvou faktorů je, že se ajťáci mají opravdu dobře. Druhou stranou mince je, že ne každý dokáže problematice plně porozumět a kdyby to bylo tak jednoduché, dělal by to každý. Na cestě za cílem je plno překážek a běžně se stává, že několik hodin googlíte, abyste se vůbec pohnuli z místa. Čím jsem starší, tím více si uvědomuji, že právě trpělivost a sebezdokonalování jsou ty nejdůležitější vlastnosti programátora. Programátorem můžete být i se čtyřkami z matematiky a i když nejste extra chytří, ale bez vůle okamžitě odpadnete. Samozřejmě čím jste chytřejší, tím lépe pro vás a tím více budete za svou práci ohodnoceni.

Školy

Dovolím si ještě malou vsuvku pro středoškoláky nebo rodiče středoškoláků. IT školy v České republice jsou poměrně rozporuplné. Zatím, co vysoké školy mají opravdu skvělou úroveň (možná zas až moc vysokou), střední školy jsou naprosto nedostatečné. Je to dané tím, že na základních školách se učí opravdu pomalu, aby to všichni stíhali. Ideálně by se potom nadanější děti měly dostat na technické školy, kde by měla výuka nabrat nějaký zajímavější směr. V praxi si však většina kluků řekne, že je baví hrát ty hry a tak půjdou na IT střední. Máme tedy střední školu plnou lidí, co tam nemají co dělat. Školství se s tím vyrovnalo tak, že snížilo laťku, aby jich většina prošla. Naopak na vysoké škole zažijí šok, jelikož tam to funguje jinak. V prvním semestru se nabere 500 lidí, školu poté nevyjde více než 50 lidí, často ještě méně. Ti, kteří nepochopili, že se ve škole musí učit, vypadnou již v prvním semestru. Naopak absolventi jsou opravdoví profesionálové v oboru. Vyšší odborné školy (VOŠ) jsou kvalitou podobné těm středním, pro dobrou práci v IT potřebujete VŠ nebo si tyto informace sehnat jinde (za roky vývoje je na ITnetwork již úplně vše, co do zaměstnání potřebujete).

Teď mluvím ke středoškolákům: Abyste předešli zklamání, učte se a nenechte se spolužáky zdržovat, jinak na to doplatíte. Pokud vám škola nedokáže nabídnout dostatek vzdělání, najděte si ho tady. Osobně doporučuji spíše gymnázia než průmyslovky, ale to je jen můj názor.

Schopnosti programátora

Programátorem se nestanete ze dne na den. Musíte být trpěliví. To je jedna z vlastností, kterou by programátor měl mít. Programátor by měl mimo jiné:

  • Mít logické myšlení, protože to je v programování velmi důležité
  • Mělo by ho bavit zdokonalovat se a měl by mít přímo zájem na tom, aby své znalosti udržoval, protože IT obor se rychle vyvíjí
  • Ovládat angličtinu, protože jazyky a dokumentace k nim jsou v angličtině
  • Určitě by měl být cílevědomý, aby se nevzdal hned při první překážce. V současné době (2016) mám za sebou asi 15 let praxe a stále se učím novým věcem, protože vycházejí nové technologie a já chci být stále žádaný a v obraze.

Umět programovat neznamená umět vytvořit konzolovou kalkulačku, ale ovládat objektově orientované programování, návrhové vzory a dokázat tvořit komplexní podnikový software. Vše se tu dozvíte, hlavně na to jděte postupně, buďte trpěliví. Nejde vše najednou, říkám to nyní jen proto, abyste měli představu o rozsahu vzdělání.

Výběr programovacího jazyka

Tento bod je velmi důležitý. Programovat byste měli začít v jednom moderním programovacím jazyce. Jazyk byste měli vybírat podle dvou kritérií:

  • Jak se s jazykem uplatníte v praxi (rozšíření, platy, vývoj...)
  • Pro jakou platformu je jazyk určený (Web, PC, Telefon...)

Již několik let ve větším businessu dominují dva nejdůležitější jazyky - Java a C#. Java je v podnikové sféře alfou a omegeou, C# je dle mého názoru vlastně Java od Microsoftu. Těsně za nimi je PHP, které je zas extrémně populární pro menší až střední projekty, platy v něm jsou proto o něco nižší, nicméně pokud chcete podnikat a vytvořit vlastní projekt, je to skvělá volba. Následuje složitější C++, Python, Ruby a další.

Nevhodné jazyky

Mezi nevhodné jazyky patří např. zastaralý Pascal, Delphi nebo céčko. Pro začátečníky není vhodné ani C++, jelikož je příliš složité, to samé platí pro JavaScript.

Vhodné jazyky

Pro začátek si ideálně vyberte jeden z těchto jazyků (odkazy otevřou online kurzy, ty základní jsou zdarma):

Java - Jednička v podnikové sféře, moderní jazyk s virtuálním strojem, funguje na všech platformách (PC s Windows, Linuxem, Mac, pohání mobily, tiskárny, automaty...). Oracle tvrdí, že Java pohání 3 miliardy zařízení. Java je otevřená technologie, to znamená, že je úplně zadarmo a každý do ní může přispívat. Java je univerzální jazyk, běží na něm aplikace (Open/LibreOffice), hry (Minecraft) i weby (Aukro). Javu doporučuji pro zaměstnání, platy jsou vážně skvělé, ale připravte se na to, že enterprise knihovny jsou dost složité.

C# .NET - Jistě mi ostatní odpustí, když C# nazvu "Javou od Microsoftu". V základní verzi je zadarmo a jelikož je jazyk centrálně spravovaný jedinou firmou, jsou jeho knihovny přehlednější a lépe zdokumentované než v Javě. Jazykově je mnohem dále než Java, obsahuje mnoho konstrukcí navíc, což programování později velmi usnadňuje, ale nejprve je potřeba se tyto konstrukce naučit. Pro korporátní řešení je třeba placené licence. Schopnosti jazyka i jeho reálné použití je shodné s Javou (univerzální - aplikace, weby, hry), běží na něm také mnoho podniků. C# je dle mého názoru taková střední cesta.

PHP - Otevřený jazyk, který se stal populárním na poli webu. Jelikož vznikal jako hobby projekt, získal si někde pověst nekvalitního jazyka. Od té doby co v něm napsali Facebook se ovšem dosti rozrostl a v současné době je to kvalitní a plnohodnotný nástroj, uzpůsobený pro tvorbu webů. Běží na straně serveru a generuje stránky, o které si lidé žádají. Je v něm naprogramovaný např. ITnetwork a již zmíněný Facebook, dále Wikipedia atd. Servery jsou extrémně levné, tvrdí se, že pohání většinu webů na internetu. PHP doporučuji pro podnikání, má levný provoz a jazyk i příslušné frameworky jsou poměrně jednoduché. Práci samozřejmě najdete snadno, jen není tak dobře ohodnocena.

Jazyk C++

Jazyk C++ se vžil lidem do povědomí zřejmě kvůli svému názvu ("plus plus přeci musí znamenat nejlepší"). Začátečníci v něm často chtějí programovat. C++ umožňuje programovat extrémně výkonné aplikace. Používá se hlavně pro systémové aplikace (součásti Windows) a hry (jsou v něm napsané snad všechny AAA tituly). Nemá automatickou správu paměti, což pro programátora znamená mnoho práce a ladění navíc. C++ neodsuzuji, je to dobrý jazyk, pracovní poptávka po něm je, jen je opravdu pro profesionály a lidi, co se rádi šťourají na té nejnižší úrovni. Pro běžné aplikace je zbytečně složitý.

Další jazyky

Nejen na poli webů se se serverovým jazykem (PHP, Java, C#) míchají ještě jazyky:

  • HTML - Jednoduchý značkovací jazyk, který nemá s programováním nic společného. Slouží k označování části textu na internetové stránce, kterému přiděluje určitý význam, tedy pro tvorbu webových šablon.
  • CSS - Jazyk se vyčlenil z HTML a slouží k vizuálnímu stylování HTML značek. Opět to není programovací jazyk.
  • JavaScript - Jazyk používaný zejména pro webové doplňky (slideshow, galerie, chaty, načítání webu na pozadí) i když v něm jdou psát i serverové služby.
  • SQL - Databázový jazyk, který je navržený pro dotazování dat z databáze.

Pro běžné použití vám z výše zmíněných jazyků stačí jen úplné základy, které nejsou složité. Neztrácejte s nimi tedy tolik času a věnujte se hlavně jednomu z jazyků, uvedených výše. Později budete zdokonalovat hlavně SQL, se složitějšími aplikacemi totiž potřebujete složitější dotazy na databázi.

Vidíte, že technologií je spousta. Doba, kdy Jan Novák naprogramoval celé účetnictví sám v Pascalu je nenávratně pryč. IT odvětví expanduje, má obrovskou budoucnost a technologie se rychle zdokonalují. Nároky na aplikace jsou také stále vyšší a vyšší, již nestačí jen jedna technologie. Musíte držet krok s dobou a učit se. Co se týče práce v IT, tak ta byla, je a bude. Jen těžko naleznete podobné odvětví s tak skvělou budoucností.

Jak začít programovat

Hlavě se nesmíte bát, musíte být trpěliví a musíte sami chtít.

Škola a kurzy

Již bylo řečeno, že pro práci v IT potřebujete vysokou školu nebo kurzy se znalostmi podnikového IT. Kromě výběru dobré střední/vysoké školy/výukového kurzu je také potřeba programovat ve svém volném čase. Pokud si myslíte, že vás škola nebo online kurzy naučí programovat, tak vás zklamu. Programovat se musíte naučit sami. Škola a kurzy by vám jen měly dát dobré vedení a materiály, většina škol v ČR bohužel neudělá ani to. Potom se nemůžeme divit, že těch ajťáků moc není :)

Pokud mohu nějakou českou IT školu doporučit, je to Unicorn College, kde jsem studoval. Jedná se o školu, kterou založila velká česká IT firma a která učí věci tak, jak jsou v praxi opravdu potřeba. Škola je soukromá a při dobrém prospěchu hradí plné školné.

Projekt itnetwork byl vytvořený k tomu, aby suploval za nešťastné české státní školství a abyste zde nalezli všechny informace, co potřebujete. Dá se přirovnat k ajťácké Wikipedii.

Každý jazyk má na itnetworku rozsáhlou sekci, kde jsou kompletní seriály včetně toho jak začít, co k tomu potřebujete a podobně. Seriály nepíší teoretici, ale opravdoví programátoři, kteří v podnicích pracují. K tutoriálům navazují příklady k procvičení látky.

Také musíte programovat vlastní aplikace, na kterých si vše zkoušíte a naučíte se nové věci. Programátoři také často googlují, zabere jim to velkou část jejich pracovního dne. Nikdy se totiž nemůžete naučit všechno a ani to není důležité. Musíte hlavně pochopit základní principy a být si schopní dohledat další věci ve chvíli, kdy je potřebujete. Když něco nevíte, použijte zdejší Diskuzní fórum, zkušenější vám tam pomohou.

Co programovat

Programujte to, co použijete. Pokud vás baví psát příběhy, naprogramujte hru s tímto příběhem a dejte ji kamarádům. Pokud vás baví fotit, naprogramujte si webové portfolio s vašimi fotkami nebo spořič obrazovky, co je zobrazuje. Máte prázdnou lednici? Naprogramujte si nákupní bloček pro Android. Při programování reálných aplikací, které k něčemu jsou a nejsou to vykonstruované příklady z učebnic (které tu naštěstí nemáme), vznikají zajímavé problémy, které řešíte a tak se zdokonalujete. Učení zábavou je nejefektivnější, říkal to již Komenský. Říká se, že když dokážete naprogramovat Tetris, tak jste nadějný programátor. Budete překvapeni, co všechno v Tetrisu budete muset řešit.

Samozřejmě také tvořte další užitečné aplikace, např. upomínání narozenin přátel, výpočet docházky ve škole, spotřeby automobilu a podobně.

Školení

Chcete přeskočit nějaké ty začátečnické úrovně a začít rovnou s nějakou znalostní zásobou? Máte možnost začít rovnou pod dozorem zkušeného profesionála v našich kurzech programování. Vyučují přímo autoři sítě v celodenních víkendových kurzech v Praze. Jestli čekáte, že budou stát 10.000 Kč jako u konkurence, tak vás musíme zklamat. Osobně učíme již od 1.999 Kč za celý den :)

Kurzy programování v Praze

Práce

No a když již něco zvládnete? Nebojte se zkusit zakázky, brigády nebo zaměstnání. Jak na první práci v IT již sepsal náš kolega v článku Moje první práce v IT. Určitě si ho také přečtěte.

Pokud jste dočetli článek až do konce, jste na nejlepší cestě za kariérou v IT. Držím vám palce!

P.S. V článku jsem preventivně zakázal komentáře, jelikož zde hodnotím programovací jazyky a lidé se kolem tohoto tématu často dohadují. Kdybyste měli jakékoli dotazy, napište do Diskuzního fóra

David Čápka, CEO ITnetwork.cz