Máte pocit, že pořád nemáte to něco, co by z vás dělalo dobrého programátora? Během programování musíte neustále zjišťovat všechny informace z knih nebo internetu a práce vám jde strašně pomalu? Tohle určitě zažil každý začínající programátor. Existuje jednoduchá cesta jak z toho ven. Jak udělat z “opisovače tutoriálu” mistra v oboru.

FOTO0170 Ta zázračná rada je vlastně velmi jednoduchá. Programujte! Tím teď nemyslím jednoduché aplikace, které se často objevují v tutoriálech. Mám na mysli kompletní aplikace, které budou mít nějaký účel a budou něčemu sloužit. Mnozí z vás si řeknou, že se mi to lehce řekne. Vždyť takový začátečník neví co by mohl naprogramovat (v rámci svých schopností) a nebo se bojí, že by to naprogramoval špatně. Ale já to znám moc dobře, ještě nedávno jsem taky takový začátečník byl.

Jak z toho tedy ven? Nejdříve bych zmínil tu možnost, kdy se programátor snaží vymyslet nějaký program, který by mohl začít vytvářet, ale nic ho nenapadá. Ono je to někdy těžké, když je někdo začátečník, tak si nedokáže představit, co vše potřebuje k vytvoření té či oné aplikace. Většina nápadů tedy končí v koši s nálepkou “nedokážu udělat”. Časem se to bude zlepšovat, ale ze začátku přemýšlejte nad něčím jednodušším, co zvládnete dokončit. Nápady hledejte všude - v rodině, mezi kamarády nebo se zamyslete nad svými potřebami.

Horší je druhá varianta. Programátor ví co chce udělat, ale neví jak začít. Vždy když začne tak brzo skončí a začne odznova. Proč? Protože si uvědomí, že jeho řešení nebylo nejlepší, že bylo špatné. Nemějte proto tyhle předsudky. Pravda je ale taková, že nic z toho co v začátcích uděláte nebude dobře. Vždy bude existovat lepší řešení a kdybyste ho neustále hledali, program by nikdy nevznikl. Chybama se člověk učí, tím se řiďte. Dělejte chyby, dělejte spoustu chyb. Z každé chyby si ale musíte vzít ponaučení. Uděláte sice chybový program (malá poznámka: žádný program není bez chyby), ale uděláte ho. Ne jako někteří, kteří se budou patlat s tutoriály a budou umět napsat “perfektní” řadící algoritmus.

Programujte pořád a všude

Ano, to je asi nejdůležitější věc, kterou musíte zvládnout, pokud chcete být opravdu dobří. Občasné programování vás nikam nedostane. Čím častěji budete programovat, tím více budete potom chrlit kód automaticky. Programujte proto vždy, když budete mít chvíli čas. Když budete mimo počítač, myslete na programování. Přemýšlejte nad tím, proč vám třeba program padá, nebo proč je to tak pomalé. Přemýšlejte nad tím, jakým algoritmem uděláte nějakou funkci. Ze začátku se to bude zdát jako nepřekonatelný problém, ale s odstupem času budete na chyby přicházet i mimo dosah počítače. Dokážete si v hlavě představit kus kódu a můžete nad nim potom přemýšlet. Platí to ale jen tehdy, pokud budete programovat opravdu často. Za dva dny bez programování už budete jen marně pátrat v paměti, co že jste to vůbec dělali.

Dobré je taky udržet si od svého kódu jistý odstup a dokázat se na něj podívat i z jiného úhlu. Když budete dlouho řešit neznámou chybu, zkuste se podívat na problém očima někoho jiného. Promluvte si o tom s vašimi přáteli (tedy jen s těmi, kteří o programování něco ví) a pečlivě je poslouchejte. Pravděpodobně vám neřeknou hotové řešení, ale dokážou vám dát to nejdůležitější - novou myšlenku, nový nápad.

Pokud jste (jako já) perfekcionalisti, tak na svou “úchylku” hned zapomeňte. Tím že budete vymýšlet absolutně nejlepší řešení zabijete spoustu času a v začátcích stejně nejlepší řešení většinou nezvládnete vymyslet. Raději se vždy zamyslete nad tím, jestli to řešení co jste navrhli je dostatečné (tedy ne nejlepší, ale dostatečné). Pokud je dostatečné, tak ho nechte tak a pokračujte.

Výběr jazyka

Je to úplně jedno. Dělejte v tom, v čem se vám dělá příjemně. Ovšem pro začátečníky silně nedoporučuju C/C++. Spousta lidí se určitě ozve, že proč by ne, že jsou to dobré jazyky. To ano, jsou velmi dobré, ale pro začátečníky silně nevhodné. Jsou prostě hodně složité a dovolují člověku udělat mnoho chyb, které se později těžce hledají.

Osobně preferuju Javu, která je na rychlý vývoj aplikací ideální. Něco o nasazení Javy na desktopu už jsem tady jednou psal. Krom toho bych mohl doporučit taky platformu .NET a taky potom asi PHP(protože je hodně rozšířené) a možná i některé jiné jazyky(například Python je prý dobrý pro začátečníky, nemám s nim ale zkušenosti). Zkuste si třeba napsat jeden program ve dvou, třech jazycích a potom si vyberte váš oblíbený. Stejně se v životě budete muset naučit více než jeden jazyk, takže se vám získané zkušenosti budou jistě někdy hodit.

Nenechte se ovlivnit “módní” vlnou a nehleďte na to, jaký jazyk zrovna “letí”. Dnes to může být jazyk X, zítra už třeba jazyk Y. Nové jazyky se učte jen tehdy, když to bude pro vás výhodné. Bude to nejspíš tehdy, když si řeknete “a hele, tenhle jazyk je na mé potřeby mnohem vhodnější” a tehdy se o ten jazyk začněte zajímat. Ne proto, že váš spolužák/kolega řve na plné kolo, že ten jazyk je the best. :)

Mějte co ukázat

Myslíte si, že k perfektní práci programátora potřebujete nějaké tituly nebo akademické vzdělání? Vůbec ne. Udělejte si proto nějaké své portfolio svých prací a tím se potom prezentujte. Zde se proto vyplatí podílet se na vývoji různých opensource nebo freeware programů. Pravděpodobně z toho neuvidíte ani korunu, ale dá vám to mnoho zkušeností a později při hledání práce i velkou výhodu proti konkurenci. Člověk co vyleze zrovna vysokou školu a nemá žádnou praxi je pro firmy často méně cenný, než “nevzdělaný” programátor, který má za sebou už spoustu projektu a zkušeností.

Věřte si

Ale nepřeceňujte se! Než jsem nastoupil do práce jako programátor, tak jsem se takové práce bál. Říkal jsem si, že s mými znalostmi bych tam neměl co dělat, že zatím skoro nic neumím atd. Na takové myšlenky rovnou zapomeňte! Stačí když budete umět myslet jako programátor a zbytek se doučíte za běhu. Stejně spousta firem využívá k práci nějaké své frameworky, nebo mají své konvence a to vše se budete muset stejně učit. Těch začátků se nemusíte bát, pokud se budete hlásit jako junior programátor, tak vždy (nebo alespoň většinou) dostanete někoho zkušeného, který vás zaučí.

Je ale dobré mít přehled o dostupných technologiích, metodách vývoje, různých nástrojích atd. Díky tomu budete mít přehled o tom, co umíte a které vědomosti vám ještě chybí. Když na vás bude někdo potom mluvit je lepší si říct “aha, mluví něco o nějaké databázi” než třeba “jakým jazykem to na mě sakra mluví?”.

Myslím, že vše podstatné jsem zde už zmínil. Hlavní myšlenka je ta, že musíte sbírat zkušenosti. Ty získáte jedině poctivým častým programováním. Čím více toho budete umět, tím rychleji budete programy psát a tím více vás to bude bavit. Proto usedněte za váš pracovní počítač, otevřete si nějaké to IDE (nebo textové editory) a začněte pracovat na svém projektu ;)