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.
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 ![]()
11 Komentářů
Programování je pro mě doslova “španělská vesnice”. Byť jsem si párkrát říkal, že bych se mohl s něčím podobným seznámit, tak na to asi nemám hlavu. Nemám totiž logické myšlení, ale naopak vcelku iracionální. A pro programování je myslím logika a matematika to nejdůležitější. Ovšem vykládejte něco o programování člověku, který s matematikou skončil na posloupnostech, které mi dodnes nic neříkají :). Mám perfektní vizualizaci a dokážu si skvěle představit spoustu věcí, objektů, vnitřní struktury, atd., ale co si nedovedu představit a nějak odvodit, to jde mimo… A proto je mi nějaká algoritmizace na hony vzdálená. Ostatně o čem je vůbec řeč? :).
Mé myšlenky se pohybují kdesi v trancendentálních sférách a proto jsou mi některé věci zcela vlastní, zatímco jiní netuší “vo co go”, ovšem naopak některé běžné věci jsou pro mě nepředstavitelnou překážkou…
Jasně, programování není pro každého. Navíc to ani není zrovna ta nejlákavější činnost, takže fakt není o co stát
Ta logika tam určitě potřeba je, ale ta matika zase moc ne (pokud člověk nepracuje na specifických činnostech, jako třeba šifrovací algoritmy, grafika atd.). Já jsem na tom jinak s matikou taky dost špatně (na výšce jsem měl problémy i s předmětem středoškolská matematika :)).
Hlavní je, když člověk dělá co ho baví. Je zbytečné se přemáhat a snažit se stát programátorem, když to člověka ničím nenaplňuje. Tobě by spíše víc seděla nějaká ta tvůrčí (umělecká) činnost jako třeba ta tvorba hudby, nebo možná i něco s grafikou a podobně. To jsou taky velmi zajímavé oblasti, které mě sice lákají, ale jsou věci, které mě lákají mnohem více
Asi tak nějak. Nemůže holt každý dělat a umět všechno :).
Je fakt, že hudba, grafika, nebo třeba psaní mě naplňují určitě více, než nějaké logické konstrukce a “bastlení” kódu :). Ale samotné programování a programátory obdivuji. Tedy hlavně ty lepší a dobré, protože jako uživatele mě někdy neskutečně vytáčí programy, které i v době Windows XP/Vista jsou psány stylem jako pro Windows 95/98 bez ohledu na uživatelská oprávnění, atd. U těch začínajících programátorů to chápu a nemám s tím problém - spíše mě zaráží, že tímhle stylem se kolikrát píší i programy ve velkých společnostech :(.
Každopádně myslím, že ty máš k umění také dost blízko - viz. tvé fotografie ;).
PS: Když nemám hlavu na programování, taky bych se možná mohl věnovat navrhování GUI :-D.
No jo, i některé velké firmy dělají občas úplně odfláknuté programy. Všechno stojí peníze, tak se šetří kde se dá. Však on to uživatel snad ani nepozná, tak co by se utrácelo…jó tenhle přístup by se měl zakázat
A k těm fotografiím…ano, je to můj “únik” ze světa logiky. Bohužel mým fotkám pořád chybí to “něco”, co by z nich dělalo dobré fotky. A to jsou hlavně city, přenesené do fotek. Dokážu udělat technicky správnou fotku, ale nic víc. Proto budu muset zapracovat a snažit se zaměstnávat i druhou hemisféru mozku
Navrhování GUI je taky docela zajímavá činnost. Já jako programátor samotář se s tím většinou patlám sám, a podle toho to taky vypadá
Myslím, že o technice to všechno není. Podle mě není důležité jak a čím se fotí, ale to, co člověk fotí. Můžeš mít vybavení za sta tisíce, pročíst literaturu, teorie a přemýšlet o lomu světla a já nevím o čem všem ještě, ale to ti nezaručí, že uděláš dobrý snímek. A stejné je to třeba i s hudbou.
Já zastávám názor opačný - není důležité jak a čím fotíš, ale co fotíš a proč. A stejně i v té hudbě. Proto třeba nefotím snímky technicky dokonalé, ale s nějakou atmosférou. A vůbec mi nevadí že je to dvoumegová fotka z fotomobilu v podivné kvalitě, protože důležitá je ta fotografie sama a to co zachycuje.
Fotit, fotit, fotit. Kdejakou pitomost, všechno kolem sebe - rozkvetlou louku, zapadající slunce, motýla na květině, dav lidí, architekturu - cokoliv. Ne všechno bude kdoví jak hodnotné a “umělecké”, ale určitě pak mezi těmi fotografiemi narazíš na něco, co dokáže oslovit, vyvolat vzpomínku, záchvěv citu v “rozervané duši” :). A o tom to myslím je.
Jestliže říkáš, že máš technicky dobré fotky, ale “bez duše”, tak doporučuji nesoustředit se na technickou kvalitu, dát průchod všem těm chybám, nedokonalostem, kterých je svět plný a pak se ti na snímku ukáže přirozená krása bez příkras a “technického záměru”. Jak pak s daným snímkem naložíš už je jen na tobě, protože těch možností jsou dnes spousty. Můžeš fotografii nechat jak je, můžeš ji přetvořit v editoru, lehce upravit, více upravit, spojit s jinou a vytvořit koláž, nebo cokoliv. Kreativitě se meze nekladou.
Já jsem kupříkladu onehdy udělal soubor snímků (no vlastně screenshotů) z filmů pro dospělé :). A vůbec mi nešlo o to, co se na snímku děje, ale o ztvárnění a jedinečnost okamžiku - jednoho jediného záběru, který řekne vše - bez té plytké perverzní omáčky okolo toho. Myslím, že z těch pár záběrů co jsem udělal a upravil v editoru z volně dostupných videí, kterých je na netu milióny, vznikla celkem pěkná sbírka, která by se dala nazvat “erotično” a přitom je to uděláno tak, aby to nebylo perverzní, nebo nechutné. A stejným způsobem se dá pracovat ze vším, protože i z úplné pitomosti se dá udělat umělecké dílo, vloží-li do toho člověk trochu invence a kreativity ;).
Já vím že o technické kvalitě to není. Dobrá fotka se dá udělat i pomocí krabice od bot s dírkou a filmem uvnitř. Jen musí mít člověk ono umělecké cítění a musí dokázat přenést emoce z fotky na lidi, kteří si tu fotku později budou prohlížet. Fotografie mistrů nutí člověka k zamyšlení, probudí v něm nějaké myšlenky, emoce, pocity. U mých fotek zatím nic podobného není. Právě focením se snažím rozšířit si obzory v těchto oblastech, které mi jsou prozatím celkem skryty
Opět se k tomu ale stavím spíše racionálně a snažím se vždycky vysvětlit, proč se tahle fotka lidem líbí a ta druhá už ne. To už ale spadá spíše do oblasti psychologie (což je taková matematika vyjádřená slovy :)).
Nechtěl bys ten svůj výtvor někde uveřejnit? Zní to dost zajímavě.
No nevím jestli bych zrovna tohle někde zveřejňoval jako svoje dílko :). Přeci jen je to takové choulostivější a kdo ví, jak by si to zase kdo vykládal :). Ale hodlám udělat nějakou tu galerii svých snímků na webu. Ne tedy všech, ale takových těch lepších - všedních i “uměleckých” (jde-li to tak tedy nazvat). Jen jsem se k tomu zatím pořád ještě nedostal, i když už na to mám vyhrazenou doménu
(gallery.premysl-vavrousek.cz - přesměrování na live spaces).
No jo, ta tvoje galerie…já jen doufám, že se dožiju dne, kdy ji skutečně vytvoříš
Ale úplně tě chápu, když jde o třídění fotek a podobné činnosti, tak to odkládám jak jen to jde
Třeba přesun tohoto blogu na doménu blog.dadajax.net mám v plánu už asi dva měsíce, ale pořád se mi do toho nechce 
Jen k té zmínce o práci jako programátora mě napadá jedna poznámka: “není důležité umět, je důležité CHTÍT umět”.
Jinak chválím, pěkný článek. Koukám že si taky workoholik (programování vždy a všude), perfekcionista (detaily, detaily a dokonalost od začátku po EoF). S tím druhým mám problémy - věčně přemýšlím, jak to udělat co nejlíp. Tak dlouho, až se na to vybodnu a prostě to nějak napíšu. Ono to fungovat nějak bude a když to nebude stačit, poladí se to během testování.
Matematika? Z té jsem dělal zkoušky na třetí i pozdější pokus a na střední s ní těžce bojoval. Matika je na mě moc abstraktní věda bez nějakých výsledků a tak jde úplně mimo mě. Ale tak trochu programovat umím i bez toho. Jinak, jak čtu komentáře - nejsem první, mám údajně hlavně umělecké sklony. Nevím kdo na to kdy přišel, ale tvrdí mi to všichni - od učitelů výtvarky (většina z nich měla vzdělání v různých oborech uměni) přes psychology po obyčejné lidi. Možná proto mě baví psát “pěkné” zdrojáky (ve kterých se po roce nevyznám ani já sám).
“není důležité umět, je důležité CHTÍT umět” přesně tak, s tím naprosto souhlasím. Když jsem se hlásil do svého součastného zaměstnání jako C++ programátor, tak jsem v té době C++ skoro neuměl
Jinak workoholik a perfekcionalista jsem, ale bohužel mám taky třetí vlastnost, které ty ostatní dost degraduje - jsem lenoch
Ale v momentech kdy překonám tu svou lenost, tak to co jsi napsal to platí i u mě
Jo a k těm tvým uměleckým sklonům…doufám že to není tak, že zdrojáky píšeš tak, aby ten kód ve výsledku měl hezký tvar (třeba že z toho kódu děláš nějaký obrázek)
Líný jsem taky, neskutečně. Ale když už se do něčeho dám, většinou nevim kdy přestat… tedy vím, když dojde v mém okolí, jídlo a pití.
Já na sobě takové sklony nepozoruji, to spíš lidi kolem mě. Už mnoho let ale nemám tušení jak na to přicházejí
Přidej komentář!