V poslednej dobe sa mi stále častejšie stáva, že sa ma ľudia pýtajú ako začať s IT – alebo ako sa stať programátorom. Chcú diverzifikovať portfólio toho, čo vedia. Zistili, že programovanie môže byť dobrý zdroj obživy, prípadne že sa dá robiť odkiaľkoľvek.
Možno nie som ten správny na túto otázku
Začnem tým, že moja cesta k programovaniu začala pred niekoľkými dekádami a neviem povedať presne ako teraz začať. Knižku o tom ako začať programovať som čítal veľmi dávno a verím, že odvtedy sú oveľa lepšie knižky, jazyky a podobne.
Aj napriek tomu sa pokúsim odpovedať najlepšie ako viem.
Špecializácia
IT segment je veľmi široký, čiže je to skôr o tom, čo vás baví.
Momentálne si myslím, že je dobré spojiť IT s niečím, čo už robíte. Ja som začal všeobecne, ale teraz sa špecializujem na kryptomeny a bezpečnosť. Poznám ľudí, ktorí radi robia fyzické veci a špecializujú sa na 3D modelovanie a 3D tlač.
Čiže myslím, že v IT to nie je o konkrétnej technológii, ale o tom nájsť spôsob ako využiť IT v niečom, v čom ste už dobrí, čo vás baví a čo vám ide.
Nemáte expertízu v IT, ale dokážete svoju existujúcu expertízu využiť tak, aby ste sa na trhu odlíšili.
Takže skúste si vybrať oblasť a až potom sa zamýšľať nad tým, či vôbec potrebujete programovanie alebo len používanie nejakej technológie. Pri 3D tlači napríklad stačí vedieť modelovať, nemusíte napísať ani riadok kódu. Možno chcete robiť analýzy dát a stačí vám naučiť sa dobre používať Google Sheets alebo Excel (pozrite kam to dotiahol Richard Sulík s Excelom:)). Nie je “horší” a “lepší” ITčkar. Ja viem programovať v niekoľkých programovacích jazykoch, ale moja mama vie Excel používať lepšie ako ja.
Tento prístup zároveň zjednoduší “konkurenčný boj”. Ľudí, čo vedia “programovať” je veľa, ľudí, čo vedia programovať smart kontrakty v Solidity alebo ľudí, čo vedia 3D modelovať je výrazne menej.
Pre mnoho špecializácii je ale dobré naučiť sa nejaké základné programovanie.
Niektoré z mnohých oblastí, kde nie je nutné programovať:
- Práca s dátami – základné kancelárske nástroje vám umožnia urobiť veľa mágie. Excel, Word, Google Forms, …
- Využívanie špecifických open-source nástrojov – a pomáhať ľuďom ich používať
- WordPress – úžasný nástroj na tvorbu webov, e-shopov s množstvom plug-inov pre takmer všetko, čo existuje. Najprv sa to naučte a potom môžete buď tento nástroj použiť vo svojom biznise alebo pomáhať iným ľuďom. Tento web beží na wordpresse s asi 20 pluginmi.
- NextCloud – úžasný nástroj na všeličo možné – kancelársky balík, kolaborácia a podobne
- BTCPayServer – kryptomenový švajčiarsky nožík. Pomôžte ľuďom a firmám akceptovať kryptomeny.
- Home Assistant – baví vás prepájať ovládanie domu? Od žalúzií, kontroly produkcie tepla, svetiel, kamerových systémov a podobne. Podobných balíkov je viac.
- Alternatívou k open-source je pomáhanie ľuďom používať verejne dostupné SaaS (nemusia byť zadarmo). Poznám ľudí, ktorí pomáhajú firmám s cloudom, napríklad cez Google služby. Alebo pomáhajú zlepšovať predajný proces pomocou Salesforce. Viete o tom, že Amazon má okrem cloudových služieb AWS celú radu technológií na takmer celý predajný proces – od marketingu, cez logistiku až po customer support? Všetky tieto služby síce existujú, ale je potrebné ich vedieť používať a nasadiť.
- Využívanie kryptomien
Potrebujete inšpiráciu? V knihe Kryptomeny – vyhackuj si lepší život mapujem aj “ITčkarske” príležitosti, ktoré prinášajú kryptomeny – nové odbory, nové zamestnania, nové typy firiem.
Knihu si môžete objednať u mňa v eshope ako ebook, papierovú knihu alebo kombináciu. S kupónom CITATEL máte zľavu!
Chcem programovať, ako si vybrať prvý jazyk?
Ja osobne momentálne na začiatok väčšinou odporúčam Python – je to jednoduchý jazyk vyššej úrovne (to znamená, že človek sa nemusí zaoberať vecami typu alokácia pamäte a podobne). Zároveň preň existuje veľa knižníc na všeličo, čo človek chce robiť.
Existujú verzie Python na microcontrollery (MicroPython), na dátovú analytiku pomocou “notebookov” (napr. Jupyter). A hlavne pre Python existuje veľké množstvo kvalitných knižníc, ktoré vám uľahčia všetko – od základného počítania cez sieťovú komunikáciu až po machine learning.
Druhá veľmi dobrá voľba podľa mňa je JavaScript, pretože je to jazyk webu, ale dajú sa v ňom programovať aj bežné aplikácie a tak isto funguje aj na serveri. Čiže naučiť sa jeden jazyk má výhodu použiteľnosti vo viacerých aplikáciách. JavaScript je ale asi trochu ťažší na pochopenie pre úplného začiatočníka (promises, promises).
Ak viete, čomu sa chcete venovať, dá sa na to ísť aj opačne – pozrieť sa, pre aký jazyk je najlepšia podpora daného odvetvia.
Pár motivačných rád
IT všeobecne a programovanie špecificky nie je žiadna nenaučiteľná mágia, stačí sa tomu trochu povenovať.
Ak niečo nefunguje, treba si len uvedomiť, že počítač robí presne to, čo mu zadáte, ale nevie, čo ste tým mysleli, takže frustráciu z nefungujúceho kódu treba riešiť otázkou “čo som naozaj napísal, že má počítač robiť?”.
Voľba prvého jazyka nie je až tak super dôležitá. To, že sa inak píšu zátvorky, podmienky a cykly je práve to, čo sa dá naučiť veľmi rýchlo. Čiže čímkoľvek začnete, každý ďalší jazyk bude oveľa jednoduchší.
Dobrý programátor jazyky vymieňa ako tričko – ak sa mu zrazu hodí nejaký nový, tak si ho za tri dni naštuduje a ide to. Čiže netreba ani voľbou jazyka na úvod príliš stresovať.
Samozrejme, po troch dňoch v danom jazyku nebude človek robiť super krásny kód a sú aj výnimky (v Ruste, Haskelli alebo Erlangu si budete prvý mesiac iba búchať hlavu o stenu).
A posledná rada – ak sa rozhodnete naučiť sa programovať, treba určite začať čo najskôr písať kód. Veľa ľudí zoberie knižku a chce ju prečítať. Ideálne je však už okolo strany 20 začať písať hlúpe jednoduché programy. A potom to zobrať opačne – vymyslieť si nejaký miniprojekt a z kníh a webu študovať to, čo potrebujete.
Dá sa to
Počas rokov som videl prerod mnohých ľudí, ktorí vyštudovali ekonómiu, právo a úplne zmenili kariéru. Poznám ľudí, ktorí programovať začali v 40-ke alebo 50-ke a teraz sa tým živia a dokážu písať kód, o ktorom sa mi ani nezdalo.
Jeden príklad za všetkých je Pavol Trávnik, ktorý svoje právnické vzdelanie využil napríklad na vytvorenie Arbitrustu – decentralizovaného riešenia sporov. Pre inšpiráciu ako sa to dá si vypočujte podcast, ktorý sme spolu natočili.
Bonusové rady na záver
Naučte sa po anglicky. Naozaj.
Existujú knižky o programovaní aj v iných jazykoch, ale dokumentácia, manuály, väčšina diskusných fór a vlastne všetko čo potrebujete vedieť je v angličtine.
Väčšina vecí je na Internete zadarmo, ale nájdete aj dobré platené kurzy. Nejaké mám aj ja.