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" (dle mého názoru). V základní verzi je zadarmo (MS nedávno vypustil celý jazyk jako open-source, některé další nástroje a služby jsou ale placené) 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. 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 naučíte jen tím, že to budete doopravdy dělat. Škola a kurzy by vám jen měly dát dobré vedení a materiály.
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.
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.
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.
https://www.itnetwork.cz/prace-a-podnikani-v-it/jak-zacit-programovat-tvorit-aplikace-programy/
Moje první práce v IT - jak na pohovor?
Pokud studujete programování, líbí se vám a baví vás, tak je více než pravděpodobné, že se programováním jednou budete chtít živit. To ovšem znamená, že se budete muset poohlédnout po nějaké společnosti, kde svoji vysněnou práci získáte, a na kratší nebo delší čas se tam usadíte.
Než však svůj post profesionálního programátora získáte, čeká vás vstupní pohovor. Tam budete podrobně prozkoumáni, ohledáni a otestováni, zda jste právě vy tím vhodným kandidátem.
Že to zní strašidelně? Napoprvé asi ano, ale nemusíte mít strach, protože právě z toho důvodu pro vás máme tento článek. Navedl mě k tomu sdraco, protože jsem také programátor, pracuji jako senior konzultant a analytik, ale hlavně sedím na druhé straně "barikády" – testuji nadějné kandidáty a uchazeče na místo programátora.
Část první - Curriculum Vitae
Ještě předtím, než se vůbec dostanete na pohovor, bude se po vás chtít vlastní životopis. Co to je, to určitě víte ze školy, takže by jeden řekl, "nic převratného." Jenže CV je váš první kontakt s lidmi, se kterými budete pracovat a vaše vůbec první šance udělat dobrý nebo špatný dojem!
Co by mělo být ve vašem životopise?
- Vaše znalosti
- Vaše zkušenosti
- Vaše reference
- Trochu z vaší osobnosti
Co v něm naopak být nesmí?
- Vymýšlení si nebo lhaní
- Hrubky a nespisovná čeština
V životopise chcete uvést věci, které umíte, ve kterých vynikáte. Chcete se pochlubit tím, co jste už dokázali – a právem! Zatímco jiní koukají na televizi, programujete po večerech ve svém volném čase prográmky, učíte se a tvrdě dřete. Máte právo být na sebe hrdí a nebojte se pochlubit.
Také se nebojte dát najevo, po čem vaše srdce touží. Chcete pracovat v silném týmu, s chytrými lidmi a stále učit se nové věci? Nemohli byste bez toho být? Napište to tam.
Na druhou stranu ovšem nepřehánějte. Jestliže jste si na ITnetwork pročetli jeden článek o Open GL, není dobré to do svého CV dávat. Lidé, kteří se vás budou ptát, mají zkušenosti a snadnou přijdou na to, kdy si vymýšlíte.
A ti samí lidé umí česky. Pokud tohle není vaše silná stránka, pište ve Wordu a používejte jazykové korekce. Nezapomeňte, že do CV vkládáte svoji energii a tím dáváte najevo, kolik jste ochotni investovat. Nic nevypadá hůř než "odfláknutá" práce, kdy jasně říkáte, že vám na tom zase tolik nezáleží.
Část druhá - vstupní pohovor
Konečně přišel ten den, kdy se chystáte na svůj pohovor. Ale jak takový pohovor vlastně vypadá a co váš čeká?
Možností je celá řada. V některých firmách se může jednat o několik kol s různou tématikou, v jiných zase o jediné sezení. Budeme se spolu bavit o formě jednoho sezení, které v sobě zpravidla shrnuje všechno.
Na takových pohovorech proti vám budou obvykle sedět tři lidé – manažer, šéf týmu a senior programátor. Někdy těch lidí bude více, někdy méně, ale ti tři jsou klíčoví. Budeme jim říkat svatá trojice.
Manažer je tam kvůli administrativním procesům a zastupuje firmu. Šéf týmu je váš (budoucí) nadřízený, takže vás chce minimálně vidět. Senior programátor je hnidopich a rýpal, ten se vám bude vrtat v mozku, aby zjistil, co umíte.
O tom, co se bude dít, až za chvilku, protože nejprve musíte vědět…
Část třetí - proč bůh vymyslel pohovory?
Sedíte tedy proti svaté trojici a čekáte, co bude. A v tu chvíli si musíte uvědomit důležitou věc – proč tu vlastně jste?
Pohovory se dějí ze dvou důležitých důvodů:
- Firma chce zjistit, jestli jste vhodným kandidátem
- Vy chcete zjistit, jestli je firma vhodnou příležitostí
Právě vzájemná vhodnost je nejdůležitějším prvkem. Věřte mi, že se nechcete dostat do firmy za každou cenu. Můžete ostatní přesvědčit o tom, že na to máte, ale jestliže nejste pro něco vhodní a něco není vhodné pro vás, nebudete tam šťastní.
Nechte proto věcem volný průběh. Vydejte ze sebe to nejlepší a nechte je, aby vydali to nejlepší ze sebe. Pokud si vás vyberou, vědí proč, pokud ne, také vědí proč. Dokonce vám mohou nabídnout jinou a lepší pozici, než o jakou se ucházíte! Šéfové se vzájemně znají a dávají si doporučení, aniž byste to věděli.
Na druhou stranu máte i vy možnost se rozhodnout, jestli zrovna zde chcete pracovat. A pokud ne, tak se nepřemáhejte. Jde přece o vaši vysněnou práci!
Proto buďte upřímní, buďte sami sebou a užijte si celý pohovor.
Část čtvrtá - co vás čeká?
Takže opět sedíte proti svaté trojici a dotyční se vás ptají na všechno možné. Vlastně je to hodně podobné prvnímu rande – trocha nervozity, neznáte se, a tak se vzájemně snažíte poznat a témata budou točit okolo toho, co jste napsali do životopisu.
Zcela jistě se vás budou ptát na minulé zkušenosti. Tady vás možná zklamu, ale jako zkušenost se hodnotí "práce v pětičlenném týmu na půlročním projektu." Do zkušeností vám nezapočítají "vlastní budík, abyste nezaspávali." Dobrou zprávou ovšem je, že stále ještě nedodělaná diplomová práce na téma "Amortizovaná vytíženost webové farmy" do zkušeností patří, zvlášť pokud firma pracuje s J2EE.
Na řadě pohovorů dostanete písemný nebo ústní test, který ohodnotí vaše znalosti. Tady přijde na řadu senior programátor, který bude bedlivě sledovat vaše myšlenkové pochody.
K tomu patří rada nad zlato – přemýšlejte nahlas! Na svých pohovorech dávám obvykle jednoduchý kus kódu, o kterém si povídáme. Sleduji, jaké má dotyčný analytické schopnosti a jestli bez svého IDE není ztracený. Bohužel, neumím číst myšlenky, a pokud jste pět minut zticha, nic si z toho neodnesu. Když přemýšlíte nahlas, vidím, kam směřujete a můžu i pomoci
Také vás čeká řada otázek z oboru a znovu opakuji - buďte upřímní! Nebudete tomu věřit, ale obvykle trvá tak minutu nebo dvě, než zjistím, jak moc si uchazeč vymýšlel ve svém CV. Jedna minuta?! Ta trojice, která proti vám sedí, má zkušenosti a pozná, když něco nesedí. Navíc senior programátor má obvykle přehled v řadě oblastí, jazyků i platforem – denně s nimi pracuje.
Otázky mohou být jak obecné, tak velice detailní, zkusme si jich několik položit skrze obory:
- V jaké verzi Javy byly zavedeny generiky?
- Co je to Applet sandbox a jak funguje?
- Jaké jsou výhody a nevýhody techniky přetěžování operátorů?
- Co jsou to extension metody?
- Jaký je rozdíl mezi statickou a instanční metodou?
- Jaký je ve Visual Studiu rozdíl mezi kompilačním módem debug a release?
- Jaký je rozdíl mezi procesem a vláknem?
- K čemu slouží thread pool a jak funguje?
- Jaký je rozdíl mezi pointerem a referencí?
- Co znamená: application stack, memory heap, desktop heap?
- Co je to memory leak a jak k němu může dojít v Javě?
- K čemu slouží výjimky?
- Jaké znáte návrhové vzory a kde jste je používali?
Proč by někoho zajímala stará verze Javy bez generik? Jednoduše proto, že stále ještě existují aplikace běžící na starých systémech a podobné znalosti patří k všeobecnému přehledu. A jaký je rozdíl mezi statickou a instanční metodou? Odpověď, že jedna z nich má přístup k instančním proměnným, je chybná.
O každé z otázek, které jsem uvedl, se dá bavit minimálně 15 minut a o většině z nich byla napsána nejedna kniha, takže jednoslovné odpovědi nebudou ty správné. Ale nenechte se vystrašit, když něco nebudete vědět. Dobrého zkoušejícího nezajímá to, co neumíte, ale to, co umíte. Obvykle se dotyčného ptám do té doby, dokud zná odpovědi. Jakmile něco neví, snažím se najít hranici jeho znalostí, protože ta udává jejich množství. Když něco neví? Od toho máme Google. Denně na něm hledám tak 100x, tak proč by uchazeč musel znát vše-vědění světa?
Proto nemějte špatný pocit, když si s něčím nebudete vědět rady, dobrý zkoušející dává takové otázky jenom proto, aby vám dal co největší šanci se předvést.
Část pátá - příprava
Existuje skupina otázek, které dostanete prakticky vždy. Obvykle v různém pořadí, ale je dobré se na ně připravit:
- Jaký si představujete plat?
- Proč jste odešel z firmy X nebo Y?
- Proč chcete pracovat právě v naší firmě?
- Co víte o technologii Z, kterou naše firma vyvíjí?
- V jakém největším týmu jste pracoval?
- Jaká byla struktura týmu – vývojáři, designéři, analytici, testeři?
- Na jakém největším projektu jste pracoval?
- Jaké týmové nástroje jste používali – TFS, Git, CVS?
- Jaké další nástroje jste používali – wiki, CRM, CP?
Před pohovorem si nastudujte webové stránky společnosti a seznamte se s ní - její webová prezentace je ekvivalentem vašeho CV, tak do toho. Také se nebojte zeptat na to, co vás zajímá nebo zaujalo.
Část šestá - facebook, linked-in, etc.
Upřímně, chvíli jsem přemýšlel, zda sem dávat tuto část, ale protože neustále zdůrazňuji, abyste byli upřímní (a zejména sami k sobě), dám sem tohle varování.
Vůbec první, s kým budete ve firmě komunikovat telefonem nebo mailem, bude HR (human resources) manažer(ka). A ten/ta má facebook profil! A současně s vaším CV si otevře váš profil a podívá se, co jste zač.
Jak asi vypadá vaše zeď se zprávou "Tak jsem dneska poslal CV do firmy Z. Vůbec netuším, co po mně chtějí, ale za pokus nic nedám a časem si najdu něco lepšího?"
Chcete se stát profesionálem? Je načase se jako profesionál chovat. Když už musíte něco psát, buďte pozitivní, nikdy nevíte, kdy se vám to vrátí.
Část sedmá - reference
Vůbec nejlepší způsob, jak získat práci, jsou osobní reference. Váš kamarád už ve firmě pracuje a vy jdete na pohovor? Nechte ho, ať vás doporučí! Je to výhodné z obou stran.
Firma ví, že se za vás zaručil člověk, na kterého se už spoléhá. A vy jdete na pohovor s tím, že za sebou máte dobré slovo a doporučení.
Druhou stranou mince jsou takzvaní head-hunters. Jsou to lidé a společnosti, kteří sledují trh práce a snaží se zprostředkovávat pracovní místa. Vy jim pošlete životopis a oni vám domluví pohovor. Občas ani nebudete vědět, do jaké firmy nebo jakou pozici, což vás v procesu degraduje na pouhé zboží. Buďte opatrní a než do toho půjdete, ujistěte se, že se svěřujete do správných rukou.
Hodně štěstí na závěr
V tuhle chvíli byste měli mít představu, jak probíhá velká část pohovorů. A já doufám, že jsem vám alespoň trochu s tím dalším pomohl. A nezapomeňte, že všechna energie, kterou do své vlastní prezentace vložíte, se vám mnohonásobně vrátí. Držím palce!
https://www.itnetwork.cz/prace-a-podnikani-v-it/prace-v-it/moje-prvni-prace-jak-na-pohovor-v-it/
Odkaz na zdroj: https://www.itnetwork.cz/