Je programování těžké?

Tuto otázku mi pokládá mnoho neprogramátorů. Tím se řadí na jedno místo s otázkami typu „pracují programátoři z domova“ a „jaké vzdělání potřebujete k tomu, abyste se stali programátorem?“. Zvědavci to chtějí vědět.

Ale na rozdíl od některých z těchto otázek je tahle vlastně docela těžká. Je to jednoduchá otázka, ale odpověď na ni je velmi nuancovaná.

Ponoříme se do ní tedy podrobně a pomůžeme vám pochopit, zda je programování těžké, nebo ne.

Je programování těžké? Krátká odpověď

Nejprve se tedy s touto otázkou vypořádáme krátkou a přímou odpovědí. Ta připraví půdu pro zbytek příspěvku.

Je programování těžké?“

No, jak konzultanti rádi říkají, „záleží na tom“. To, zda je programování těžké nebo ne, závisí na mnoha faktorech, například na konkrétním typu programování a na tom, jak jako jednotlivec přemýšlíte. Takže stručná odpověď zní, že programování se opravdu pohybuje na škále od překvapivě snadného až po šíleně obtížné.

Přemýšlejte tímto způsobem. Zkuste si na základě svých zkušeností odpovědět na některé z těchto otázek:

  • Je těžké hrát basketbal?
  • Je těžké mluvit portugalsky?
  • A co řízení auta? Je to těžké?“

Jistě chápete, proč se ohrazuji a říkám: „ehhh… záleží na tom.“

Lidé mají tendenci být příliš vystrašení programováním

Nabídnu však trochu kvalifikovaný názor. Konkrétně si myslím, že neprogramátoři mají tendenci dramaticky přeceňovat, jak je programování těžké.

Slyšeli jste někdy někoho říct něco takového:

Aha, já prostě na matematiku opravdu nejsem!

No, to slyším často. Ale totéž slýchám spíš o programování. A považuji to za ironii, protože některé oblasti programování sice matematiku skutečně vyžadují, ale mnohé ne. Programování je podle mého názoru mnohem rozmanitější soubor starostí než „matematika“.

Pravdivě věřím, že spousta lidí předpokládá, že by se jako programátoři nikdy neprosadili, ale naprosto se mýlí. Je to mnohem přístupnější obor, než se zdá, že si široký svět myslí.“

Vyvraťme si některé mýty o programování, kromě toho matematického

Abychom to opravdu zdůraznili, podívejme se na některé další mylné představy o programování, kromě mýtu, že programátoři musí být opravdu dobří v matematice.

Mylná představa 1: Programátoři jsou elitní hackeři, jako ten chlápek v seriálu Pan Robot

Nezávisle na tom, kolik je vám let, existuje nějaký film z dob vašeho rozkvětu, který obsazuje programátory do role hackerů podobných Bondovi (nebo Bondovi-villainovi). Za mého dospívání to byl film Šneci. Pokud jste vyrůstali o něco později než já, možná jste měli tu smůlu, že jste se setkali s filmy Hackeři nebo Mečoun. V dnešní době se tento žánr zlepšil a možná se vám bude líbit Pan Robot.

Ať už je ale film úžasný, jako třeba Sneakers, nebo příšerný, jako třeba Hackers, pořád tu máte hackerské hrdiny a hackerské antagonisty, kteří se zdají být jak kvazi-sociopatičtí, tak neuvěřitelně geniální programátoři.

To není skutečný život. Není to ani skutečné hackování, natož programování v pracovním životě. Takže nepředpokládej, že programování vyžaduje přesouvání kostiček po obrazovce nebo cokoliv, co dělá Hugh Jackman ve filmu Swordfish. Obvykle to vyžaduje jen spoustu googlování.

Mylná představa 2: Potřebujete titul z informatiky

Podrobně jsme se tomu věnovali, takže to zde nebudu rozvádět. Ale ne, k programování nepotřebujete titul z informatiky. Nepotřebujete ani odborný titul a možná ani nemusíte navštěvovat výcvikový tábor.

Tyto všechny věci vám usnadní získání první práce, ale nejsou nutné. Takže když se ptáte, „zda je programování těžké“, pravděpodobně si pletete obruče, které musíte přeskočit, s činností. K programování nejsou žádné jiné předpoklady než Poznámkový blok a stažení jednoho interpretu nebo kompilátoru.

Mylná představa 3: Programátoři mají příšerné sociální dovednosti

Tato představa vás možná trochu podrbe na hlavě. Pravděpodobně si říkáte: „Co má představa, že programátoři mají příšerné sociální dovednosti, společného se mnou nebo s tím, proč je programování těžké?“

No, je to nenápadné, ale skutečné. Svět sleduje televizní pořady a filmy, v nichž lze identifikovat zkušené programátory podle jejich sklonu k „šprtání“.

Vkrádá se tedy obrácená logika a vy si říkáte: „Když nejsem šíleně sociálně nešikovný, mohl bych být někdy „opravdovým“ programátorem?“

Ano, můžete. Programátoři se účastní spousty konferencí a setkání, přednášejí, vytvářejí komunity a mají skvělý, normální společenský život.“

Mylná představa 4: Programátoři jsou okamžitě dobří ve všech počítačových věcech

Já osobně jsem vystudoval informatiku a pak jsem získal práci programátora. A když jsem to udělal, všichni okamžitě předpokládali, že jsem odborník na všechno, co se týká počítačů.

  • Eriku, můj počítač vydává takový divný zvuk – co myslíš, že je špatně?
  • Hej, při pokusu o zavření MS Wordu se mi objeví chyba č. 90314. Co to znamená?
  • Která z těchto grafických karet je nejlepší?

Všechny tyto otázky jsem slyšel. A v podstatě jsem jen vygoogloval odpověď (pokud jsem neřekl: „Páni, já fakt nevím.“). Živil jsem se psaním softwaru, ale to neznamenalo, že jsem o počítačích věděl všechno a nic.

Zmiňuji se o tom proto, že byste si neměli myslet, že musíte o počítačích vědět všechno a nic, abyste se mohli stát programátorem.

Programování je hodně rozmanité

Po vyvrácení některých mýtů se podívejme na realitu programování. A realita je taková, že je vlastně docela rozmanité. Zde je jen malá ukázka toho, co lidé dělají pod obecným pojmem „programování“:

  • Navrhování vzhledu a vizuálních vlastností webových stránek.
  • Vytváření algoritmů umělé inteligence.
  • Skriptování manuálních úloh za účelem jejich automatizace.
  • Komplexní statistické modelování.
  • Vytváření jednoduchých, opakovatelných mobilních aplikací.

A to je jen malá ukázka různých druhů programování. Dokonce se ani nezabývá všemi různými rolemi, které můžete zastávat a které se na těchto snahách podílejí.

Být programátorem je stejně rozmanité jako být obchodníkem.“

Některé programátorské role jsou přístupnější

Vzhledem k této rozmanitosti bych rád trochu zabrousil do toho, které role se vám mohou zdát přístupnější.

Trochu ustoupím od spektra „lehké až těžké“, a to jen proto, že to velmi závisí na tom, co vy jako jednotlivec považujete za obtížné. Mně například vždycky šla velmi dobře matematika a algoritmy, ale design a layout mi upřímně řečeno nejdou. Možná máte opačné sklony a považujete mě za směšného, když řeknu, že „naprogramovat třídicí algoritmus je snadné“, a kontrujete něčím, co by mi přišlo stejně směšné: „rozvrhnout krásnou webovou stránku je snadné.“

Takže pochopte, že neoznačuji věci kategoricky za snadné nebo těžké. Místo toho poukazuji na věci, které byste možná nebrali v úvahu, kdybyste o programování vždy uvažovali jen jako o vysoce matematickém jevu.

  • Někteří lidé na programátorských pozicích se zaměřují převážně na rozvržení a uživatelský komfort. To znamená, že se ve velké míře zabývají estetikou aplikace a také tím, jak s ní uživatelé pracují.
  • Jiní programátoři se z velké části zaměřují na data a databáze. Namísto vytváření velkých softwarových celků pomocí složitých instrukcí se mnohem více zaměřují na skutečná data a uvažování o těchto datech.
  • Další obor má blíže k provozu a podpoře. Někteří lidé pracují s počítači docela dost jako „výkonní uživatelé“ a učí se programovat tak, že se tu a tam naučí, jak automatizovat a zefektivnit to, co dělají ručně.

A to je jen několik příkladů. Pochopte tedy, že i když se vám programování zdá těžké, mohou v jeho rámci existovat role, které se ve skutečnosti zdají být přístupnější.

Programování je však cizí, což může znamenat, že programování je těžké

Na tomto místě bych rád trochu přešel na jinou kolej. Mám pocit, že jsem strávil dost času tématem „hele, programování není tak těžké, jak si myslíte“. A je to pravda. Myslím, že spousta lidí by na otázku „je programování těžké“ odpověděla „ano“ jednoduše proto, že neví, co programování obnáší.

Ale tady to trochu zmírním. Programování je těžké v tom smyslu, že po vás chce přemýšlet způsobem, na který nejste zvyklí.

Abyste pochopili, co mám na mysli, vzpomeňte si na jednání s Alexou.

Alexa dokáže odpovědět na spoustu taktických otázek a občas vás potěší a překvapí. Ale je také velmi frustrující. Občas se projevuje její počítačové myšlení, když komicky nechápe základní lidskou interakci.

No a teď si vezměte, že co se týče počítačových programů, Alexa je zcela optimalizovaná tak, aby se vám snažila co nejlépe porozumět. Když s ní mluvíte, musíte být extrémně přesní, doslovní a natvrdlí, a ona je tu od toho, aby vám rozuměla.

Kompilátor (věc, která převádí váš kód do akce) je jako Alexa, ale není navržen tak, aby vám usnadňoval život. Je navržen tak, aby maximalizoval užitečnost. Takže pokud musíte být při jednání s Alexou přesní, přesnost ani zdaleka nepopisuje to, co kompilátor chce. Když si spletete středník s dvojtečkou, může se vám zhroutit počítač.

Je tedy programování těžké? Ano, v tom smyslu, že vyžaduje, abyste přemýšleli způsobem, jakým většina lidí běžně nepřemýšlí.

Programování stavu techniky je zákonitě těžké

Chceme-li pokračovat v tématu „ano, programování je těžké“, uvědomme si, že existují oblasti světa programování, do kterých je třeba vstoupit s velkou dávkou dovedností a praxe. Nepřemýšlejte o tom příliš. Někdy je programování opravdu těžké.

Dělat pokročilé věci s robotikou, block chain, umělou inteligencí, obchodními algoritmy atd. vyžaduje spoustu dovedností, praxe, talentu a soutěživosti. Některé z velkých firem v Silicon Valley platí softwarovým vývojářům obrovské platy a nebudou to dělat pro někoho, kdo se jen tak náhodou potuluje kolem.

Ve světě programování existují specializace, které vyžadují blesk z čistého nebe v tom smyslu, že potřebujete praxi, talent, chytrost a štěstí. A kromě toho existují role, pozice, výzvy a situace, které nedokáže adekvátně naplnit celá řada lidí. Programování může být docela těžké.

Stejně jako cokoli jiného, i ono se pohybuje v širokém spektru

Ale nakonec je to opravdu různé. Vzpomeňte si na to, co jsem řekl na začátku.

Je basketbal těžký? Ne, pokud máš na mysli „dokáže někdo zvednout míč a hodit ho směrem ke koši?“. Ano, pokud myslíš „jaká je šance, že mě Golden State podepíše, abych hrál po boku Steph Curryho?“

Je těžké mluvit portugalsky? No, asi ne, pokud jste se narodili v Brazílii nebo Portugalsku. Ale asi ano, pokud je vám 70 let a nikdy jste nemluvili jinak než japonsky.

Takže, je těžké programovat? Ano i ne. Ano, je těžké ho dělat na elitní úrovni nebo ve vysoce specializované a konkurenční oblasti. Ale ne, není těžké začít. A rozhodně to není nad vaše síly.

Tento příspěvek napsal Erik Dietrich. Erik je veteránem softwarového světa a zastával v něm téměř všechny pozice: vývojáře, architekta, manažera, CIO a nakonec i nezávislého konzultanta pro řízení a strategii. Tato šíře zkušeností mu umožnila promluvit ke všem osobnostem v oboru a napsat několik knih a nespočet blogových příspěvků na desítky webů.

Articles

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.