Jak se stát profesionálním php programátorem

V první řadě si položte otázku: „Proč se stát php programátorem?“. Pokud vás napadne „kvůli výdělku“ potom doporučuji zaměřit se na něco úplně jiného než je programování. Má-li vůbec smysl o programování uvažovat, musíte v první řadě programování milovat. Jen pokud je to něco, čím žijete a velmi vás to baví a uspokojuje, jen pak má smysl se tím zabývat. Na to stát se profesionálem, je zapotřebí spotřebovat kolem 10 tisíc hodin čistého času aktivním programováním.

Profesionálem se stáváte ve chvíli, kdy bez problému zvládáte analyzovat a vyřešit v rozumném čase jakýkoliv běžný problém, který touží být někým (zaměstnavatelem, klientem nebo Vámi!) vyřešen. Navíc dokážete vytvářet dobře čitelný robustní kód, který má bezpečně ošetřené limitní stavy. Váš kód je dobře čitelný nejen vám i po delším čase, ale především se v něm snadno vyznají kolegové programátoři. Pomůže také, budete-li kód úhledně a logicky strukturovat. Nastudujte si knihu The Art of Readable Code (Dustin Boswell, Trevor Foucher).

Jaké jsou nejdůležitější vlastnosti profesionálního programátora?

  1. rychlost
  2. bezchybnost a důslednost
  3. logické myšlení a schopnost analyzovat
  4. abstraktní myšlení a schopnost plánovat co nejefektivnější postup
  5. umět svojí práci prodat

Rychlost je důležitá kvůli tomu, že existuje konkurence. Dokáže-li někdo udělat stejnou aplikaci za stejnou cenu o týden rychleji, pak má nad vámi konkurenční výhodu. Napadlo-li vás teď, proč na tomto blogu vlastně pomáhám konkurenci, tak odpověď je jednoduchá – php programátoři mi nekonkurují – pohybuji se v úplně jiném byznysu, ve kterém jsem úspěšný z velké části i díky tomu, že neustále programuji v php.

Bezchybnost sémantická je nedosažitelný stav, kterému se však neustále snažíme přiblížit. Pomáhá nám v tom pečlivost, rozvaha, zkušenosti a hlavně vytváření pastí na chyby a jejich odhalování v debuggerech. Bezchybnost v logickém myšlení je také téměř nedosažitelný stav, ale díky tomu, že bezchybný není nikdo, s tím lze žít a přežít. Důslednost je však něco, čeho lze dosáhnout. Být důsledný znamená řídit se pravidly a dodržovat je, trénovat neustále svoji soustředěnost, dotahovat vše vždycky do konce (tedy pokud projekt nebyl v mezičase například pro nedostatek financí zrušen :).

Logické myšlení a schopnost analyzovat může být vážný problém, pokud nedostatek těchto dovedností nevykompenzujete jinými dovednostmi, například silnou vůlí najít vždy řešení nebo propracovanými dovednostmi v hledání již existujících řešení (ono je také celkem hloupé snažit se vyřešit problém vlastními silami, když už téměř každý problém někdo zakusil před vámi a s největší pravděpodobností se tak stalo na stackoverflow.com. 😉

Abstraktní myšlení a schopnost plánovat co nejefektivnější postup. Určitě už víte, že je nesmysl sednout ke klávesnici a rovnou začít chrlit kód. To podstatné v programování je efektivní plánování. Psaní kódu je už jenom exaktní vyjádření myšlenek. Pamatujte si, že srdcem programování jsou myšlenky – na těch všechno stojí.

Umět svojí práci prodat je zcela nezbytné, pokud vás neživí něco jiného nebo někdo jiný. Být profesionálem znamená tvořit software tak, že lze dobře prodávat (ať už v podobě odpracovaných hodin nebo v podobě softwarového balíčku). Umět prodat znamená umět dobře působit na klienty. Nikdo nemá šanci nahlédnout vám do hlavy a rozpoznat, jak moc dobře umíte programovat a plnit své sliby. Klienti se rozhodují pouze podle obalu, tzn. podle toho jakou máte prezentaci nebo i jak působíte při osobním jednání. Každopádně chtějí vidět pěkné funkční reference. Ty rozhodují o vašem úspěchu (u normálních duševně zdravých klientů).

 

A nyní si dovolím přejít k tvrdé realitě…

Fakta:

  • Programovat se nenaučíte čtením literatury o programování.
  • Programovat vás nenaučí ani v žádné škole nebo v kurzu programování.
  • Být výhradně php programátorem můžete být leda v nějaké velké firmě, kde je vysoká specializace a z MVC byste pracovali jenom na C. Se samotným php si v normální praxi nevystačíte. Musíte umět výborně i SQL (potažmo dialekt MySQL), jQuery a skrze jQuery AJAX. Znalost HTML a CSS je myslím naprostou samozřejmostí.

Znamená to, že je zbytečné číst knihy o programování nebo chodit na kurzy?
Nikoliv, čtení odborné literatury je důležité pro rozšiřování mentálních představ, pro posouvání hranic vašeho abstraktního myšlení a vnitřního programátorského světa. I kdybyste však přečetli všechny knihy napsané na téma php, nestanete se díky tomu programátory. Podobně navštěvování kurzů je také jen takovým náhledem skrze malé okénko do velkého světa programování. A školy jsou dobré především k tomu, abyste si prodloužili dětství. V praxi je všechno jinak.

To podstatné, co musíte začít dělat, je programovat, tj. tvořit vlastní smysluplný funkční kód. Vím, je to mnohdy velmi bolestivé. Pokud jste však někdy chodili do posilovny, potom se vám bude hodit pořekadlo „když to bolí, tak to roste“. Ano, každý významnější posun vpřed ve vaší programátorské praxi bude bolestivý. Strávíte dlouhé hodiny a noci hledáním řešení šílených problémů a také hledáním šílených chyb v návrhu či v kódu. Každé rozběhání částí aplikace je potom jako stanout na vrcholu osmitisícovky (není to příznačné, že nejvyšší hora světa šplhá do 8 k(B)m? ;-).
Ale stojí to za to, protože když se se stejným problémem setkáte příště, půjde vyřešit mnohem lépe, budete dál a před novými nepoznanými problémy. A tak pořád dokola. Problémům se zkrátka nevyhnete. Programování je velmi náročná duševní činnost. Mějte na paměti, že mozek ke své činnosti potřebuje hodně energie. Ráno je dobré jít se svižně projít na čerstvý vzduch a nastartovat tělo. Je nutné hodně pít a jíst pravidelně stravu bohatší na monosacharidy – zejména sladké ovoce. Hodně ovoce. Mozek programátora spotřebuje ve srovnání třeba s mozkem kopáče více energie. Čím více budete podporovat své tělo (hardware) o to lepší vytvoříte (ve své hlavě) software. 🙂

 

Jak začít?

Chcete-li se programováním někdy živit, začněte na Freelancer.com. Práci tam sice žádnou nejspíš neseženete, ale zjistíte velmi brzy, co přesně klienti v současné době nejvíce poptávají a jak běžně vypadá zadání přes internet. Na Freelanceru dominují Indové, Pákistánci a další (zatím) levné národy. S cenou byste museli jít absurdně nízko a portfolio byste museli mít hodně kvalitní a rozsáhlé. Konkurence je tam extrémní.
Ukázat jednou, že něco umíte, budete muset tak jako tak (pokud nechcete programovat výhradně pro zábavu). Proto doporučuji zaměřit se na začátku hlavně na vytvoření portfolia. Spojte se s nějakým webdesignérem, který také potřebuje vybudovat portfolio a vytvořte společnými silami nějakou jednoduchou aplikaci. Potom začněte na sebe upoutávat pozornost. Zkuste také zajít na pohovory ve firmách, které hledají programátory. Dozvíte se detailněji, koho ve skutečnosti hledají, jaká práce je poptávána, co byste dělali. Místo nemusíte vzít – k tomu vás nikdo nemůže nutit – ale rozšířit si obzory musíte, to je bez diskuze. 🙂