Prečo a ako začať programovať
Tento článok je určený všetkým začínajúcim programátorom každého veku, študentom i tým, ktorí majú už po škole a chcú sa rekvalifikovať. Ďalej rodičom, ktorí myslia na budúcnosť svojich detí, alebo zvedavcom, ktoré IT zaujalo. Zodpovie väčšinu vašich otázok a navedie vás na správnu koľaj. Tiež vám vysvetlí, prečo byť zrovna AJTAK.
Paralelne s týmto článkom je na sieti ešte Sprievodca , ktorý vám pomôže zvoliť danú technológiu podľa toho, čo chcete dosiahnuť. Určite ho vyskúšajte.
Článok píšem na základe mnohoročných skúseností v odbore, mám za sebou štúdium na VŠ , školenia pracovníkov, naprogramoval som niekoľko podnikových aplikácií a konečne som vytvoril ITnetwork, kde som na základe skúseností spísal tisíc výučbových článkov.
Akú máte budúcnosť ako programátor?
Na úvod sa krátko zamyslime nad tým, prečo vlastne programovať. Okrem toho, že je to pekná práca, ktorú môžete jednoducho robiť aj z domova, je táto práca tiež skvele platená. Priemerný plat českého IT špecialistov bol podľa ČSÚ pre rok 2013 47.000 Sk (keď počítame aj IT techniky, je to asi 42.000 Sk). Je nutné povedať, že sa jedná o plat priemerného programátora. Ak budete dobrí, dostanete sa na čísla 70.000 Sk mesačne a viac. A ak viete angličtinu a nebojíte sa podnikať, nie je problém spolupracovať diaľkovo s cudzinou a to sa dostávate na sumy ako 150.000 Sk / mesiac a viac.
(Možno vám pripadá klišé, že takto apelujem na peniaze, časom však zistíte, že čím viac ich máte, tým viac máte času, slobody, môžete cestovať, objavovať nové technológie, životné štýly, kultúru, zábavu a podobne.)
Platy sú tak vysoké z dvoch dôvodov:
- IT umožňuje automatizovať (robotizovat) firemné procesy. Obrovské zákazky dopytujú najmä stáť a finančné giganti, ktorí vďaka informačným technológiám fungujú oveľa rýchlejšie a lacnejšie, ako keby s nimi spolupracovala armáda zamestnancov. Vďaka technológiám rýchlejšie vyrába, rýchlejšie obsluhujú klientov na pobočke, automatizovane predávajú tisíce položiek denne v robotizovaných e-shopoch. Prevádzka strojov stojí minimum a oživí je práve váš softvér, ktorý si firma rada zaplatí, niekoľkokrát sa im to vráti, zisky z automatizácie sú astronomické.
- Práca v IT je odborná a je potrebné kvalitné vzdelanie.
Každá tretia IT firma sa potýka s kritickým nedostatkom programátorov.
Výsledkom týchto dvoch faktorov je, že sa ajťáci majú naozaj dobre. Druhou stranou mince je, že nie každý dokáže problematike plne porozumieť a keby to bolo tak jednoduché, robil by to každý. Na ceste za cieľom je plno prekážok a bežne sa stáva, že niekoľko hodín googlíte, aby ste sa vôbec pohli z miesta. Čím som starší, tým viac si uvedomujem, že práve trpezlivosť a sebazdokonaľovanie sú tie najdôležitejšie vlastnosti programátora. Programátorom môžete byť aj so štvorkami z matematiky a aj keď nie ste extra chytrí, ale bez vôle okamžite odpadnete. Samozrejme čím ste múdrejší, tým lepšie pre vás a tým viac budete za svoju prácu ohodnotení.
Školy
Dovolím si ešte malú vsuvku pre stredoškolákov alebo rodičov stredoškolákov. IT školy v Českej republike sú pomerne rozporuplné. Zatiaľ, čo vysoké školy majú naozaj skvelú úroveň (možno zas až moc vysokú), stredné školy sú úplne nedostatočné. Je to dané tým, že na základných školách sa učia naozaj pomaly, aby to všetci stíhali. Ideálne by sa potom nadanejší deti mali dostať na technickej školy, kde by mala výučba nabrať nejaký zaujímavejšie smer. V praxi si však väčšina chalanov povie, že ich baví hrať tie hry a tak pôjdu na IT strednej. Máme teda strednú školu plnú ľudí, čo tam nemajú čo robiť. Školstvo sa s tým vyrovnalo tak, že znížilo latku, aby ich väčšina prešla. Naopak na vysokej škole zažijú šok, pretože tam to funguje inak. V prvom semestri sa naberie 500 ľudí, školu potom nevyjde viac ako 50 ľudí, často ešte menej. Tí, ktorí nepochopili, že sa v škole musí učiť, vypadnú už v prvom semestri. Naopak absolventi sú ozajstní profesionáli v odbore. Vyššie odborné školy (VOŠ) sú kvalitou podobné tým strednom, pre dobrú prácu v IT potrebujete VŠ alebo si tieto informácie zohnať inde (za roky vývoja je na ITnetwork už úplne všetko, čo do zamestnania potrebujete). Ako kvalitný strednú IT školu by sme radi zmienili napr. Školu VASS Boskovice .
Teraz hovorím k stredoškolákom: Aby ste predišli sklamanie, učte sa a nenechajte sa spolužiakmi zdržovať, inak na to doplatíte. Ak vám škola nedokáže ponúknuť dostatok vzdelania, nájdite si ho tu. Osobne odporúčam skôr gymnázia než priemyslovky, ale to je len môj názor.
Schopnosti programátora
Programátorom sa nestanete zo dňa na deň. Musíte byť trpezliví. To je jedna z vlastností, ktorú by programátor mal mať. Programátor by mal okrem iného:
- Mať logické myslenie, pretože to je v programovaní veľmi dôležité
- Malo by ho baviť zdokonaľovať sa a mal by mať priamo záujem na tom, aby svoje vedomosti udržiaval, pretože IT odbor sa rýchlo vyvíja
- Ovládať angličtinu, pretože jazykmi a dokumentácie k nim sú v angličtine
- Určite by mal byť cieľavedomý, aby sa nevzdal hneď pri prvej
prekážke. V súčasnej dobe (2016) mám za sebou asi 15 rokov praxe a
stále sa učím novým veciam, pretože vychádzajú nové technológie a ja
chcem byť stále žiadaný a v obraze.
Vedieť programovať neznamená vedieť vytvoriť konzolovú kalkulačku, ale ovládať objektovo orientované programovanie, návrhové vzory a dokázať tvoriť komplexný podnikový softvér. Všetko sa tu dozviete, hlavne na to choďte postupne, buďte trpezliví. Nejde všetko naraz, hovorím to teraz len preto, aby ste mali predstavu o rozsahu vzdelanie.
Výber programovacieho jazyka
Tento bod je veľmi dôležitý. Programovať by ste mali začať v jednom modernom programovacom jazyku. Jazyk by ste mali vyberať podľa dvoch kritérií:
- Ako sa s jazykom uplatníte v praxi (rozšírenie, platy, vývoj ...)
- Pre akú platformu je jazyk určený (Web, PC, Telefón
...)
Už niekoľko rokov vo väčšom businessu dominujú dva najdôležitejšie jazyky - Java a C #. Java je v podnikovej sfére alfou a omegeou, C # je podľa môjho názoru vlastne Java od Microsoftu. Tesne za nimi je PHP, ktoré je zas extrémne populárny pre menšie až stredné projekty, platy v ňom sú preto o niečo nižšia, avšak ak chcete podnikať a vytvoriť vlastný projekt, je to skvelá voľba. Nasleduje zložitejšie C ++, Python, Ruby a ďalšie.
Nevhodné jazyky
Medzi nevhodné jazyky patrí napr. Zastaraný Pascal, Delphi alebo céčko. Pre začiatočníkov nie je vhodné ani C ++, pretože je príliš zložité, to isté platí pre JavaScript.
Vhodné jazyky
Pre začiatok si ideálne vyberte jeden z týchto jazykov (odkazy otvoria online kurzy, tie základné sú zadarmo):
Java - Jednotka v podnikovej sfére, moderné jazyk s virtuálnym strojom, funguje na všetkých platformách (PC s Windows, Linuxom, Mac, poháňa mobily, tlačiarne, automaty ...). Oracle tvrdí, že Java poháňa 3 miliardy zariadení. Java je otvorená technológia, to znamená, že je úplne zadarmo a každý do nej môže prispievať. Java je univerzálny jazyk, beží na ňom aplikácie (Open / LibreOffice), hry (Minecraft) aj weby (Aukro). Javu odporúčam pre zamestnanie, platy sú vážne skvelé, ale pripravte sa na to, že enterprise knižnice sú dosť zložité.
C # .NET - Iste mi ostatné odpustí, keď C # nazvu "Javou od Microsoftu" (podľa môjho názoru). V základnej verzii je zadarmo (MS nedávno vypustil celý jazyk ako open-source, niektoré ďalšie nástroje a služby sú ale platené) a keďže je jazyk centrálne spravovaný jedinou firmou, sú jeho knižnice prehľadnejšie a lepšie zdokumentované ako v Jave. Jazykovo je oveľa ďalej ako Java, obsahuje mnoho konštrukcií navyše, čo programovanie neskôr veľmi uľahčuje, ale najprv je potrebné sa tieto konštrukcie naučiť. Pre korporátnych riešení treba platené licencie. Schopnosti jazyka aj jeho reálne použitie je zhodné s Javou (univerzálne - aplikácie, weby, hry), beží na ňom tiež mnoho podnikov. C # je podľa môjho názoru taká stredná cesta.
PHP - Otvorený jazyk, ktorý sa stal populárnym na poli webe. Keďže vznikal ako hobby projekt, získal si niekde povesť nekvalitného jazyka. Odvtedy čo v ňom napísali Facebook sa však dosť rozrástol a v súčasnej dobe je to kvalitný a plnohodnotný nástroj, uspôsobený pre tvorbu webov. Beží na strane servera a generuje stránky, o ktoré si ľudia žiadajú. Je v ňom naprogramovaný napr. ITnetwork a už spomínaný Facebook, ďalej Wikipedia atď. Servery sú extrémne lacné, tvrdí sa, že poháňa väčšinu webov na internete. PHP odporúčam pre podnikanie, má lacný prevádzku a jazyk aj príslušné frameworky sú pomerne jednoduché. Prácu samozrejme nájdete ľahko, len nie je tak dobre ohodnotená.
Jazyk C ++
Jazyk C ++ sa vžil ľuďom do povedomia zrejme kvôli svojmu názvu ( "plus plus predsa musí znamenať najlepší"). Začiatočníci v ňom často chcú programovať. C ++ umožňuje programovať extrémne výkonné aplikácie. Používa sa hlavne pre systémové aplikácie (súčasti Windows) a hry (sú v ňom napísané snáď všetky AAA tituly). Nemá automatickú správu pamäte, čo pre programátora znamená veľa práce a ladenie navyše. C ++ neodsudzujem, je to dobrý jazyk, pracovné dopyt po ňom je, len je naozaj pre profesionálov a ľudí, čo sa radi šťourají na tej najnižšej úrovni. Pre bežné aplikácie je zbytočne zložitý.
Ďalšie jazyky
Nielen na poli webov sa so serverovým jazykom (PHP, Java, C #) miešajú ešte jazyky:
- HTML - Jednoduchý značkovací jazyk, ktorý nemá s programovaním nič spoločné. Slúži na označovanie časti textu na internetovej stránke, ktorému prideľuje určitý význam, teda pre tvorbu webových šablón.
- CSS - Jazyk sa vyčlenil z HTML a slúži k vizuálnemu štýlovanie HTML značiek. Opäť to nie je programovací jazyk.
- JavaScript - Jazyk používaný najmä pre webové doplnky (slideshow, galérie, chaty, načítanie webu na pozadí) aj keď v ňom idú písať aj serverové služby.
- SQL - Databázový jazyk, ktorý je navrhnutý pre
dotazovanie dát z databázy.
Pre bežné použitie vám z vyššie spomínaných jazykov stačí len úplné základy, ktoré nie sú zložité. Nestrácajte s nimi teda toľko času a venujte sa hlavne jednému z jazykov, uvedených vyššie. Neskôr budete zdokonaľovať hlavne SQL, so zložitejšími aplikáciami totiž potrebujete zložitejšie otázky na databázu.
Vidíte, že technológií je veľa. Doba, kedy Ján Novák naprogramoval celé účtovníctvo sám v Pascale je nenávratne preč. IT odvetvie expanduje, má obrovskú budúcnosť a technológie sa rýchlo zdokonaľujú. Nároky na aplikácie sú tiež stále vyššie a vyššie, už nestačí len jedna technológia. Musíte držať krok s dobou a učiť sa. Čo sa týka práce v IT, tak tá bola, je a bude. Len ťažko nájdete podobné odvetví s tak skvelou budúcnosťou.
Ako začať programovať
Hlave sa nesmiete báť, musíte byť trpezliví a musíte sami chcieť.
Škola a kurzy
Už bolo povedané, že pre prácu v IT potrebujete vysokú školu alebo kurzy so znalosťami podnikového IT. Okrem výberu dobré stredné / vysoké školy / výukového kurzu je tiež potrebné programovať vo svojom voľnom čase. Ak si myslíte, že vás škola alebo online kurzy naučia programovať, tak vás sklamem. Programovať sa naučíte len tým, že to budete naozaj robiť. Škola a kurzy by vám len mali dať dobré vedenie a materiály, väčšina škôl v SR bohužiaľ neurobí ani to. Potom sa nemôžeme čudovať, že tých ajťákov moc nie je
Ak môžem nejakú českú IT školu odporučiť, je to Unicorn College , kde som študoval. Ide o školu, ktorú založila veľká česká IT firma a ktorá učí veci tak, ako sú v praxi naozaj potrebné. Škola je súkromná a pri dobrom prospechu hradí plné školné.
Projekt itnetwork bol vytvorený na to, aby suploval za nešťastné české štátne školstvo a aby ste tu našli všetky informácie, čo potrebujete. Dá sa prirovnať k ajťácké Wikipédii.
Každý jazyk má na itnetworku rozsiahlu sekciu, kde sú kompletné seriály vrátane toho ako začať, čo k tomu potrebujete a podobne. Seriály nepíšu teoretici, ale ozajstní programátori, ktorí v podnikoch pracujú. K tutoriálům nadväzujú príklady na precvičenie látky.
Tiež musíte programovať vlastné aplikácie, na ktorých si všetko skúšate a naučíte sa nové veci. Programátori tiež často googlují, zaberie im to veľkú časť ich pracovného dňa. Nikdy sa totiž nemôžete naučiť všetko a ani to nie je dôležité. Musíte hlavne pochopiť základné princípy a byť si schopní dohľadať ďalšie veci vo chvíli, keď ich potrebujete. Keď niečo neviete, použite tunajšie Diskusné fórum , skúsenejší vám tam pomôžu.
Čo programovať
Programujte to, čo použijete. Ak vás baví písať príbehy, naprogramujte hru s týmto príbehom a dajte ju kamarátom. Ak vás baví fotiť, naprogramujte si webové portfólio s vašimi fotkami alebo šetrič obrazovky, čo je zobrazuje. Máte prázdnu chladničku? Naprogramujte si nákupný bloček pre Android. Pri programovaní reálnych aplikácií, ktoré k niečomu sú a nie sú to vykonštruované príklady z učebníc (ktoré tu našťastie nemáme), vznikajú zaujímavé problémy, ktoré riešite a tak sa zdokonaľujete. Učenie zábavou je najefektívnejší, hovoril to už Komenský. Hovorí sa, že keď dokážete naprogramovať Tetris, tak ste nádejný programátor. Budete prekvapení, čo všetko v Tetrisu budete musieť riešiť.
Samozrejme tiež tvorte ďalšie užitočné aplikácie, napr. Upomínania narodenín priateľov, výpočet dochádzky v škole, spotreby automobilu a podobne.
Školenia
Chcete preskočiť nejaké tie začiatočníckej úrovne a začať rovno s nejakou znalostnej zásobou? Máte možnosť začať rovno pod dozorom skúseného profesionála v našich kurzoch programovania . Vyučujú priamo autori siete v celodenných víkendových kurzoch v Prahe. Ak čakáte, že budú stáť 10.000 Sk ako u konkurencie, tak vás potešíme. Osobne totiž učíme už od 1.999 Sk za celý deň
Práca
No a keď už niečo zvládnete? Nebojte sa skúsiť zákazky, brigády alebo zamestnania . Ako na prvú prácu v IT už spísal náš kolega v článku Moja prvá práca v IT . Určite si ho tiež prečítajte.
Ak ste dočítali článok až do konca, ste na najlepšej ceste za kariérou v IT. Držím vám palce!
PS V článku som preventívne zakázal komentáre, pretože tu hodnotím programovacie jazyky a ľudia sa okolo tejto témy často dohadujú. Keby ste mali akékoľvek otázky, napíšte do diskusného fóra
David Čapka, CEO ITnetwork.cz
V budúcej lekcii, Zmluva o dielo , sa budeme zaoberať zmluvou o dielo. Povieme si, ako je to s vlastníckym právom k dielu, a aký je rozdiel medzi zmluvou o dielo a kúpnou zmluvou.