Nedávno jsem se zamýšlel na svou třicítkou a nad tím, jak naložím s násle­dujícími deseti lety. Narazil jsem na článek Being A Deloper After 40. Neodolal jsem tedy pokušení a (s laskavým svolením autora) jsem ho přeložil do češtiny. Při překladu na mě dýchla nostal­gie, jelikož dost věcí z toho pamatuju. Sice jsem byl v době, kdy autor nastu­poval do práce, ještě dítě školou povinné, ale stejně. Navíc mi přijde, že se v mnoha věcech shodne s článkem Úvod do profese.

(Jde o přednášku z App Builders ve Švýcarsku ze dne 25. dubna 2016. Slidy jsou k dispo­zici na SpeakerDeck a na konci článku.)

Ahoj všichni, je mi 42 let, jsem programátor samouk a tohle je můj příběh.

Před několika týdny jsem narazil na tento tweet, který mě přinutil přemýšlet o mé kariéře a tyto myšlenky mě přivedly zpět do doby, kdy to pro mě všechno začalo.

Začal jsem kariéru jako softwa­rový vývojář v pondělí 6. října 1997 přesně v deset hodin dopoledne, někde ve městě Olivos, na sever od Buenos Aires, v Argentině. Ten moment byla Unixová epocha 876142800. Nedávno jsem oslavil své 24. naroze­niny.

Svět v roce 1997

Svět byl tenkrát trochu jiný.

Webové stránky neměly varování ohledně cookies. Budouc­nost webu byly portály jako Excite.com. Můj oblíbeným vyhledávačem byla AltaVista. Můj email byl kos*****@s­c2a.u­ni­ge.ch, což znamená, že moje první osobní stránky byly na adrese http://sc2a.unige.ch/~kosmacze. Stále jsme truch­lili pro princeznu Lady Dianu. Steve Jobs se zhostil role CEO a přesvědčil Micro­soft, aby nalili 150 miliónů dolarů do Apple Computer. Digital Equipment Corpo­ra­tion se soudili s Dell. Ostatky Che Guevary byly převe­zeny zpět na Kubu. Začala čtvrtá série Přátel. Gianni Versace byl zavražděn před svým domem. Zemřeli Matka Tereza, Roy Lichtenstein a Jeanne Calmet (vůbec nejstarší člověk na světě). Lidé na svých PlayStation hráli Final Fantasy 7 jako šílení. BBC 2 začalo vysílat Teletutubbies. James Cameron se chystal uvést Titanic. The Verve vydali svůj hit Bitter Sweet Symphony a museli zaplatit většinu autor­ských poplatků Rolling Stones.

Excite v roce 1997, díky the Internet Archive

Chytré telefony vypadaly jako Nokia 9000 Communicator; měly paměť 8 MB, procesor 24 MHz i386 a běžel tam operační systém GEOS.

Chytré hodinky vypadaly jako CASIO G-SHOCK DW-9100BJ. Ne moc aplikací, ale výdrž baterie byla mnohem větší.

IBM Deep Blue poprvé porazil v šachu Garryho Kasparova.

Hacker známý jako _eci zveřejnil kód v C, exploit nazvaný WinNuke, pro Windows 3.1, 95 a NT, útok denial-of-ser­vice na TCP port 139 (NetBIOS) způso­bující Blue Screen of Death.

1997 je rovněž rokem, kdy se narodili Malala Yousafzai, Chloë Grace Moretz a Kylie Jenner.

V roce 1997 se odehrává mnoho filmových příběhů, jmenujme některé: Útěk z New Yorku, Predátor II, Podivu­hodný případ Benja­mina Buttona, Harry Potter a Princ dvojí krve, Kmotr III a podle Terminátor 2: Den zúčtování, si Skynet uvědomil sám sebe 29. srpna 1997 ve 2:14 ráno. To se sice nestalo, ale 15. září toho roku byla zaregist­rována doména google.com

Zbývaly dva roky do Y2K a média tím začala strašit lidi.

Moje první práce vývojáře

Moje první práce spočívala ve psaní ASP stránek v rozlič­ných edito­rech (Micro­soft FrontPage, HotMeTaL Pro a EditPlus), zajišťování kompa­ti­bi­lity mezi prohlížeči Netscape Navigator a Internet Explorer 4. Dále psaní uložených procedur v SQL Server 6.5 pohánějících komerční web v japonštině, ruštině a španělštině, přičemž software stack nepod­po­roval UTF-8.

Výsledek tohoto snažení běžel na serveru Pentium II, hosto­vaném někde v USA, s ohromujícím 2 GB pevným diskem a úžasnými 256 MB operační paměti. Byl to jediný server s Windows NT 4, SQL Server 6.5 a IIS, obslu­hující kolem deseti tisíc návštěv­níků denně.

Můj první profe­sionální progra­mo­vací jazyk byl mutant nazývaný VBScript. A samozřejmě trocha JavaS­criptu na klientské straně, pokro­pený mnoha „if Netscape udělej tohle, else udělej tamto“, protože tenkrát jsem neměl ponětí, jak použít JavaS­cript pořádně.

Zajímavé, je rok 2016 a sotva začínáme rozumět tomu, jak udělat cokoliv v JavaScriptu.

O unit testech jsem neslyšel. Agilní manifest ještě nebyl napsán. Conti­nuous integ­ra­tion byl sen. XML nebylo ani buzzword. Naše QA strategie se skládala z restar­tování serveru jednou týdně, protože jinak by náhodně padal. Vyvinuli jsme svou vlastní COM+ kompo­nentu ve Visual J++ na parsování JPEG souborů nahraných na server. Jakmile se začaly objevovat soubory JPEG 2000, naše kompo­nenta se rozbila.

Nepoužívali jsme verzo­vací systém. Dokonce ani CVS, RCS nebo, bože chraň, SourceSafe. Subversion ještě ani neexi­s­to­valo. Naše skóre v Joel Testu bylo mínus 25.

6776 dní

V uplynulých 6776 dnech jsem si ráno dával kafe a psal kód pomocí věcí jménem VBScript, JavaS­cript, Linux, SQL, HTML, Makefi­les, Node.js, CSS, XML, .NET, YAML, Podfi­les, JSON, Markdown, PHP, Windows, Doxygen, C#, Visual Basic, Visual Basic.NET, Java, Socket.io, Ruby, unit testy, Python, shell skripty, C++, Objec­ti­ve-C, batch files a nakonec Swift.

Za 6776 dní se událo hodně věcí. Nejdůležitější je, že jsem se oženil. Odešel jsem ze 6 zaměst­nání a byl dvakrát vyhozen. Začal jsem a skončil svůj vlastní byznys. Dokončil jsem svoje magis­terské studium. Vydal jsem několik open source projektů, přičemž jeden z nich mi zajistil článek na Ars Technica od samotné Erica Sadun. Měl jsem reklamu ve švýcarské a bolívijské televizi. Viděl jsem naživo přednášku od Billa Gatese a Steva Jobse v Seattlu a San Franciscu. Přednášel jsem a spolu­or­ga­ni­zoval konfe­rence na čtyřech konti­nen­tech. Napsal jsem a vydal dvě knihy. Dvakrát jsem vyhořel (ne v domě, já sám). Stalo se dost dalších skvělých i hrozných věcí.

Často jsem uvažo­val, že profesi úplně opustím, ale kód mě vždycky nějak po chvíli zavolal zpět. Mám rád psaní aplikací, systémů a software. Abych se vyvaroval vyhoření, musel jsem si vyvinout strategii.

V této přednášce vám předám svoje tajem­ství, takže také můžete dosáhnou nádher­ného věku 40 let jako zkušený programátor a chtít v této profesi pokračovat.

Rady pro mladé

Několik tipů jak dosáh­nout úžasné čtyřicítky jako šťastný softwa­rový vývojář.

1. Zapomeňte na trendy

První rada, kterou vám můžu dát, je: nevěnujte pozor­nost trendům. Každý rok vznikne nový progra­mo­vací jazyk, framework, knihovna, vzor, archi­tek­tura nebo paradigma, které vyvolají bouři v blogosféře. Lidé z toho šílí. Mluví se o tom na konfe­ren­cích. Jsou psány knihy. Gartner hype křivka roste a padá. Konzul­tanti účtují horentní sumy za trénink, insta­laci nebo jiné zkurvení života lidí v průmyslu. Proces bude podpo­rovat tuto hrůzu a přiměje vás cítit se provi­nile, pokud tomu nevěnu­jete pozornost.

1997 to byla CORBA & RUP.

2000 to byl SOAP & XML.

2003 to bylo Model Driven Architecture a Software Factories.

2006 to byl Semantic Web a OLPC.

2009 to byla Augmented Reality.

2012 to byly Big Data.

2015… Virtuální realita? Boti?

Nedělejte si starosti o trendy. Starejte se o svoje, pokrač­ujte v učení se toho, co jste se učili a jděte dál. Věnujte tomu pozor­nost pouze tehdy, když máte oprav­dový zájem nebo pokud máte dojem, že by to pro vás mohlo být přínosné ve střed­nědobém či dlouho­dobém horizontu.

Důvod pro to leží ve skuteč­nosti, že, jak už Římané v minulosti říkali, Nil nove sul sole. Většinu toho, co vidíte a učíte se v computer science, už tady je po deseti­letí. Tento fakt je záměrně skryt v hromadě marke­tingu, knih, blogů a otázkách na Stack Overf­low. Každá nová archi­tek­tura je jen předělávkou myšlenky, která tu je po desetiletí.

2. Vyberte si svou galaxii moudře

V našem oboru každá techno­logie generuje to, čemu já říkám „gala­xie“. Tyto galaxie zahrnují hvězdy, ale také černé díry, meteory padající v noci, mnoho planet a jen drobný zlomek jich hostí nějaký život. Také hodně kosmic­kého prachu a temné hmoty.

Příklady galaxií jsou třeba .NET, Cocoa, Node.js, PHP, Emacs, SAP atd. Každá zahrnuje zvěsto­va­tele, vývojáře, blogery, podcasty, konfe­rence, knihy, trénin­kové kurzy, konzul­tantské služby a problémy. Každá galaxie je posta­vena na předpok­ladu, že její techno­logie je odpovědí na všechny problémy. Každá galaxie je tedy posta­vena na špatném předpokladu.

Vývojáři z těchto odlišných galaxií ztělesňují přístup, který přivedl tuto techno­logii k životu. Jsou věrní myšlen­kám, budou nadšeně nosit trička a kázat ostatním o důvodech své volby.

Termín „gala­xie“ používám, abych se vyhnul poněkud vhodnějšímu ale kontro­verz­nějšímu termínu „nábožen­ství“, což by možná tento fenomén popsalo lépe.

Osobně jsem strávil první deset let své kariéry v galaxii Micro­soft a násle­dujících devět let v galaxii Apple.

Odvážím se říct, že jeden z největších důvodů, proč jsem změnil galaxie, byl Steve Ballmer. Unavoval mě přístup lidí z galaxie Micro­soft k open source software.

Na druhou stranu musím říct, že galaxie Apple je nádherné místo plné umělců, muzikantů a spiso­va­telů, kteří shodou okolností také píší software.

Navštívil jsem konfe­rence v galaxii Micro­soft jako Barce­lona TechEd 2003 nebo různé Tech Talks v Buenos Aires, Ženevě nebo Londýně. Dokonce jsem přednášel na Micro­soft DevDays 2006 v Ženevě. Obecně přístup programátorů v galaxii Micro­soft není přátel­ský, naopak je „korporátní“ a svázán tajem­stvím, NDA a těžkopád­nými IT procesy.

Galaxie Apple pro mě byla v roce 2006 přesným opakem. Byla plná muzikantů, umělců a malířů; psali software, aby podpořili svou vášeň a aby mohli vášnivě psát software. Tím to bylo jiné a dodnes si tuto galaxii, ve které jsme a která nás všechny svedla dohro­mady, nesmírně užívám.

Pak vyšel iPhone a zbytek je historie.

Moje doporučení tedy je: vyberte si svou galaxii moudře, užijte si ji tak moc či málo, jak chcete, ale mějte svůj teleskop namířený k jiným galaxiím a buďte připra­veni učinit hyper­skok na jiná místa, pokud to bude potřeba.

3. Studujte historii software

Což mě přivádí k dalšímu bodu: studujte, jak přišla vaše oblíbená techno­logie na svět. Máte rádi C#? Víte, kdo ho vytvořil? Jak vznikl .NET projekt? Kdo byl hlavním archi­tek­tem? Jaké byly omezení projektu a proč se jazyk vyvinul v to, čím je dnes?

Uplat­něte stejný přístup k libovol­nému jazyku či CPU archi­tek­tuře, které máte rádi nebo milujete: Python, Ruby, Java, jakýkoliv progra­mo­vací jazyk; studujte jejich původ, jak přišly na svět. Stejně s operač­ními systémy, síťovými techno­lo­giemi, hardware, cokoliv. Jděte a učte se jak lidé přicházeli s nápady, jak dlouho trvalo, než vyrostly a dospěly. Protože dobrý software vyžaduje deset let.

Příběhy kolem zrození našeho odvětví jsou fasci­nující a ukáží vám dvě věci. Za prvé, všechno je předělávka. Za druhé, mohli byste předělávat další velkou věc. Ne, škrtnout: vytvoříte další velkou věc.

Abych vám pomohl se tam dostat, připravil jsem (velmi subjek­tivní) výběr historic­kých knih, které mám rád a doporučuji:

Naučíte se rovněž ocenit hodnotu věcí, které obstály ve zkoušce času: Lisp, TeX, Unix, bash, C, Cocoa, Emacs, Vim, Python, ARM, GNU make, man pages. To jsou některé příklady dlouhotr­vajících a užiteč­ných věcí, které oslavu­jeme, s láskou opatru­jeme a ze kterých se můžeme učit.

4. Nepřestávejte se učit

Učte se. Cokoliv. Chcete se naučit Fortran? Jděte do toho. Přijde vám Erlang zajímavý? Výborně. Myslíte si, že COBOL může být další velkou věcí ve vaší kariéře? Úžasné. Potře­bujte znát víc Functional Reactive programování? Potěšení je na mé straně. Design? Samozřejmě. UX? Nutnost. Poezie? Měli byste.

Mnoho běžných konceptů je v Computer Science již desítky let, takže stojí za to učit se staré progra­mo­vací jazyky a frameworky, dokonce i „tajupl­né“. Předně oceníte stávající stav odvětví (nebo zatratíte, to záleží). V neposlední řadě se naučíte, jak stávající nástroje používat efektiv­něji, protože porozumíte jejich původu a odkazu.

Tip 1: naučte se alespoň jeden nový progra­mo­vací jazyk každý rok. To jsem nevymyslel já, ale kniha Pragratic Programmer. A funguje to.

Jeden progra­mo­vací jazyk každý rok. Jedno­duché, co? Jděte dál než typický Hello, World a vytvořte něco užiteč­ného. Obvykle napíšu jedno­du­chou kalkulačku v každé nové techno­lo­gii, kterou se učím. To mi pomůže naučit se syntaxi, seznámit se s API nebo IDE atd.

Tip 2: čtěte alespoň 6 knih za rok. Výše jsem ukázal povinnou četbu, která by vám měla vystačit na první rok. Tady je seznam na další rok:

(Dobrá, to je sedm knih)

Šest knih za rok vypadá hodně, ale znamená to pouze jednu za dva měsíce. A většina knih, které jsem uváděl, nejsou dlouhé. Navíc jsou skvěle napsané, zábavné a rozšíří vám rozhled.

Podívejte se na to takhle. Je-li vám dvacet, tak ve třiceti budete mít přečtených přes 60 knih a přes 120 až vám bude tolik kolik mně. A hráli jste si alespoň s dvaceti různými progra­mo­vacími jazyky. Na okamžik se nad tím zamyslete.

Některé z těch dvanácti knih, které jsem vybral, byly napsány v sedmdesátých letech, jiné v osmdesátých, některé v devadesátých a většina za posled­ních deset let. Zastu­pují nejlepší psaní, na které jsem v našem oboru narazil.

Ale pouze nečtěte, dělejte si poznámky. Pište do nich. Čtete je často znovu. Borges říkával, že větší potěšení než čtení knihy, je čtení jí znovu. Knihy, které máte opravdu rádi, si prosím kupujte v papírové podobě. Věřte mi. Elekt­ro­nické knihy se přeceňují. Nic neporazí skutečnou věc.

Vězte, že samozřejmě jak budete stárnout, prudce klesne počet věcí, které vyhod­notíte jako nové a/nebo důležité. Připravte se na to. Je v pořádku tiše zapla­kat, až si to uvědomíte.

5. Učte

Jakmile se něco naučíte, učte. Je to velmi důležité.

To nezna­mená, že byste měli založit třídu a pozvat lidi, aby poslou­chali vaše historky (ačkoliv by bylo úžasné, kdybyste to uděla­li). Může to zname­nat, že smysluplně zodpovíte otázky na Stack Overf­low; že napište knihu; že budete natáčet podcast o vaší oblíbené techno­lo­gii; že si povedete blog; budete psát na Medium; že vyrazíte na jiný konti­nent a založíte školu progra­mování, kde budou používat Raspberry Pi; nebo že pomůžete mladšímu programáto­rovi tak, že se stanete jeho mentorem (to ovšem nedělejte dřív, než vám bude 30)

Učení vás udělá pokor­nějším, protože vám boles­tivě ukáže, jak omezené vaše znalosti jsou. Učit někoho je nejlepší způsob, jak se sám něco naučit. Pouze testováním vašich znalostí vůči jiným se naučíte pořádně. Budete si víc vážit ostat­ních vývojářů a jiných techno­lo­gií; každý jazyk, nezáleží jak pokořený nebo tajuplný, má svoje místo v Tao programování a jenom skrze učení je možné ho pocítit.

Skrze učení můžete opravdu měnit svět. V roce 2012 jsem obdržel e-mail od ženy, která navštívila jedno z mých školení. Praco­vala jako Adobe Flash vývojářka. Pamatu­jete ActionS­cript a tak? No, ne že by se to nedalo čekat, ale po 12 letech práce na volné noze jako Flash vývojářka se najednou ocitla bez práce. Sama. S dítětem na krku. Napsala mi, že navštívila moje školení, že se jí líbilo a že se naučila něco užiteč­ného. A že si potom našla práci jako mobile web develo­per. Napsala mi, aby mi řekla: „Děkuji vám!“

Nemůžu tvrdit, že jsem změnil svět, ale možná jsem ho trošku posunul v něco lepšího (alespoň doufám). Tahle myšlenka učinila každou moji přednášku hodnot­nější a smysluplnější.

6. Pracoviště stojí za starou bačkoru

Neočekávejte, že vám softwa­rové korpo­race nabídnou nějaký kariérní růst. Možná v USA, ale v Evropě jsem to neviděl. To znamená, že jsme sami zodpovědní za svůj kariérní úspěch. Nikdo vám neřekne: „Ehm, no, příští rok by z tebe mohl být tým lídr, pak manažer, pak CTO…“

Vůbec ne. Je to právě naopak. Ve skuteč­nosti jste poměrně drahý dělník u pásu a nehledě na to, co vám řeknou, váš manažer by vaše úkoly velmi rád outsourcoval.

Neberte práci jen kvůli penězům. Softwa­rové firmy se staly dílnami s drsnými pracov­ními podmínkami, kde se očekává, že si ospra­ved­l­níte absurdně vysoké mzdy tak, že budete pracovat přesčas a splňovat nereálná očekávání. Alespoň ve Švýcarsku neexi­s­tují odbory, které by vám pomohly, pokud se věci zvrtnou. Tedy ony tam odbory jsou, ale ve skuteč­nosti se o vás nezajímají, dokud se věc neobjeví v médiích.

O co horší, na většině praco­višť vás budou obtěžo­vat. Částečně proto, že jste žena, člen LGBT nebo příslušník etnické menšiny. Viděl jsem vývojáře, kterým vyhrožo­vali, že jim nepro­dlouží pracovní víza, pokud nebudou pracovat rychleji. Byl jsem svědkem obtěžování kolegů, žen a gayů.

Některé části našeho oboru jsou nechutné a nemusíte být v Silicon Valley, abyste to zažili. Nepotře­bu­jete Medium, abyste o tom četli. Můžete to zažít právě tady ve Švýcar­sku. Mnoho bank má otřesné praco­viště. Finanční insti­tuce chtějí, abyste chrlili kód 15 hodin denně, ačkoliv švýcarské pracovní právo takové jednání výslovně zakazuje. Farma­ceu­tické firmy po vás budou chtít, abyste psali kód, který bude podvádět s výsledky testů a pomůže jím obejít předpisy. Startupy chtějí vaši kůži, pracovat 18 hodin denně a nic za to, jen žvásty jako „protože máte stock options“ nebo „protože jsme všichni týmoví hráči“

Nezáleží, že jste Zach Holman a ve svém životo­pise tvrdíte, že jste napsali Github doslova od začátku: vyhodí vás z toho nejprťavějšího důvodu.

Nezáleží, že aplikace přináší firmě víc jak polovinu provozu a zisku; API team vámi bude pohrdat a k vašim nápadům bude přistu­povat nedbale.

Dvakrát jsem byl požádán, abych pracoval zadarmo. A to známými lidmi v oboru, někteří mají i svoji stránku na Wikipe­dii. To je prostě děsivé. Nebudu je jmeno­vat, ale zabrání každému junio­rovi, aby se k ním přiblížil, protože lidé bez etiky si nezas­louží ničí mozek.

Kdykoliv vám HR manažer řekne: „Musíš udělat tohle (dosaďte cokoliv špatného), protože tě platíme,“ pamatujte si, že mu máte odpovědět: „Platíte mě, ale já vám na oplátku dávám svůj mozek a odmítám provést tento rozkaz.“

Nakonec vás dají do open space, na což jsou z nějakého důvodu hrdí. Open space je rakovina. Jedná se bezpo­chyby o nejhorší rozvržení kanceláří, které bylo kdy vynale­zeno. Navíc nejméně vhodné pro softwa­rový vývoj či jakou­koliv jinou duševní práci podob­ného typu.

Pamatujte: skuteč­nost, že něčemu rozumíte, nezna­mená, že s tím musíte souhla­sit. Neupo­slech­něte autoritu. Řekněte: “Běž se vycpat, nebudu dělat, co mi říkáš,” a změňte práci. Tam venku jsou úžasná pracovní místa; není jich moc, ale existují. Měl jsem to štěstí v některých z nich praco­vat. Nenechte špatnou práci, aby zabila váš entuzias­mus. To za to nestojí. Odmítně a jděte dál.

Nebo ještě lépe, staňte se nezávislým.

7. Znejte svou cenu

Možná jste slyšeli o mýtu „10x softwa­rový inženýr“, že? No, věc se má tak: není to mýtus, ale nefun­guje to tím způso­bem, jak myslíte.

Nicméně funguje to z pohledu zaměst­na­va­tele: „10x softwa­rový inženýr“ generuje hodnotu 10 krát tolik, co mu platí. To znamená, že dosta­nete 100 tisíc švýcar­ských franků za rok, ale vytváříte hodnotu přes milión franků. Jasně, oni dostanou na konci roku bonusy, protože, víme, kapita­lis­mus. Znejte svou cenu. Přečtěte si Karla Marxe a Thomase Pikettyho. Dost řečeno.

Pořád se pohybujte; buďte jako žralok, který nepřes­tává plavat, protože vaše schop­nosti jsou nesku­tečně cenné. Mluvte o svém platu, říkejte to nahlas, blogujte o tom, aby vaši kolegové věděli, jakou cenu má jejich práce. Firmy vás budou chtít umlčet, protože ženy dostávají 70 % toho co muži. Promluvte! Napište blog! Tweet­něte! Vydělávám 135 tisíc švýcar­ských franků za rok. To je můj plat. Co ty? A ty? Čím víc o tom budeme mluvit, tím méně bude nerov­nosti. Kdokoliv s mými zkuše­nostmi by měl dostat stejné peníze nehledě na rasu, pohlaví, věk nebo komu fandí ve fotbale. Konec příběhu. Ale není tomu tak. Není.

8. Pošlete výtah dolů

Jste-li bílý muž, uvědomte si, že jste od narození měli veškeré výhody jen díky tomu, že jste se tak narodili. Je vaší zodpověd­ností změnit odvětví a jeho předsudky k větší inkluzi.

Je vaší povinností poslat výtah dolů.

Dělejte ve svém životě vědomá rozhod­nutí. Buďte si vědomi svých činů a jejich následků. Nestyďte se změnit názor. Řekněte: „Promiň“, když je třeba. Naslou­chejte. Nemach­rujte. Zacho­vejte si integ­ritu a sebeúctu.

Nekri­ti­zujte nebo si nedělejte legraci z technic­kých voleb svých kolegů. Měli k k rozhod­nutí své vlastní důvody, které musíte respek­to­vat. Buďte připra­veni kdykoliv během učení změnit názor. Jednoho dne můžete mít rádi Windows, příště třeba Android. Já třeba poslední dobou mám zrovna rád některé části Android. A je to v pořádku.

9. LLVM

Všichni blázní kolem Swift, ale já věnuju větší pozor­nost LLVM.

Domnívám se, že LLVM je nejdůležitější softwa­rový projekt součas­nosti, měřeno dlouho­dobým dopadem. Objec­ti­ve-C blocks, Rust & Swift (dva nejvíce milované silně typované a kompi­lo­vané jazyky podle průzkumu StackO­verflow 2016), Dropbox Pyston, Clang Static Analy­ser, ARC, Google Souper, Emscripten, LLVMSharp, Micro­soft LLILC, Rubymotion, cheerp, watchOS apps, Android NDK, Metal, všechno stvořeno nebo poháněno LLVM. Existují kompilátory, které používají LLVM jako backend téměř pro všechny současné důležité jazyky. .NET CLR s tím bude případně spolupracovat a Mono už ho používá. Facebook se pokusil integ­rovat LLVM s HHVM a WebKit nedávno přešel z LLVM na nový B3 JIT JavaS­cript kompilátor.

LVVM jde napříč platformami, CPU archi­tek­tu­rami, jazyky, kompilátory. Kontro­lován mnoho očima. Volný jako gratis, volný jako pták.

Naučte se o LLVM všechno, co můžete. Je to galaxie, kde se teď dějí oprav­dové inovace. Je to základ na dalších 20 let.

10. Následuj svůj instinkt

Měl jsem pocit, že .NET bude velká věc, když jsem viděl jeho předs­ta­vení v červnu 2000. Měl jsem pocit, že iPhone bude velká věc, když jsem viděl jeho předs­ta­vení v roce 2007.

V obou přípa­dech se mi lidé doslova vysmáli. V obou přípa­dech jsem násle­doval svůj instinkt a uhodl, že to bude fungovat dobře.

Následuj svůj instinkt a možná taky budeš mít štěstí.

11. API je král

Skvělé API umožňuje skvělé aplikace. Stojí-li API za starou bačkoru, tak i aplikace za nic nestojí a ani nezáleží, jak úžasný má design.

Pamatujte, že robustní je lepší než ukecaný a že klienti by měli být hloupí; tlačte co nejvíc logiky do API.

Nevymýšlejte vlastní bezpeč­nostní protokoly.

Naučte se pár serve­rových techno­logií a ať je jedna z toho Node.

Nechte stranou REST a osvojte si Socket.io, ZeroMQ, RabbitMQ, Erlang, XMPP; prozkou­mejte reálný čas jako další krok vývoje aplikací. Reálný čas není jen pro chato­vací aplikace. Odstraňte navždy aktivní čekání.

Jo a začněte nad těmi API stavět boty.

12. Bojujte s komplexitou

Jedno­dušší je lepší. Vždycky. Myslete na KISS princip. A nemyslím jen na úrovni UI ale až do té nejhlubší vrstvy vašeho kódu.

Refak­to­rování, unit testy, kód review a pull requesty; všechny tyto nástroje jsou vám k dispo­zici, abyste se ujistili, že doručíte co nejjed­no­dušší archi­tek­turu, která funguje. Tak se staví pružné systémy na dlouhou dobu.

Závěr

Nejdůležitější věcí k zapama­tování je, že na vašem věku nezáleží.

Jeden z mých synů mi řekl: „Neuvěři­telné, tati. Matema­tici dělají svou nejlepší práci kolem čtyřicítky. A tobě je přes osmdesát. Je nemožné, abys teď dostal dobrý nápad.“

Pokud jste stále bdělí a mentálně čilí a je vám přes osmdesát, tak máte výhodu, že jste žili dloho a hodně toho viděli, takže máte rozhled. Je mi 86 a posled­ních několik let se mi tohle honilo hlavou. Nové myšlenky přicházejí a vy tu a tam nějakou vyzob­nete. Čas uzrál do podoby, ve které nemohl být před pěti nebo deseti lety.

Michael Atiyah, matema­tik, držitel ocenění Fields Medal a Abel Prize, citace z článku ve Wired.

Dokud vám srdce bude říkat, abyste dál progra­mo­vali a tvořili nové věci, budete navždy mladí.

V roce 2035, ode dneška přesně za 19 let, bude někdo přednášet na softwa­rové konfe­renci jako je tato a začne nějak podobně:

„Ahoj, je mi 42 let a tohle je můj příběh.“

Doufejme že jeden z vás bude přednášet, jinak to bude robot s umělou inteli­gencí. Začnete s několika překva­pivými fakty o roce 2016, jako napřík­lad, že šlo o rok, kdy zemřeli David Bowie, Umberto Eco, Gato Barbieri a Johan Cruyff nebo že SQL Server byl dostupný na Linuxu, Google AlphaGo porazil šampiona v Go, v ten samý den unikly Panama Papers a databáze turec­kých občanů. Nebo že Google poprvé zauvažoval o použití Swift pro Android. Nebo že šlo o poslední rok, kdy si lidé užívali zbytečné věci, které se říkalo soukromí. < Budeme tři roky od Year 2038 Problem a lidé ohledně toho budou nervozní.

Samozřejmě že nevím, co se stane za 19 let, ale můžu říct tři věci, které se určite stanou:

  1. Někdo se na Stack Overflow zeptá, jak filtrovat e-mailovou adresu pomocí regulárního výrazu.
  2. Někdo vydá nový JavaScriptový framework.
  3. Někdo postaví nějakou úžasnou věc na LLVM.

A možná si budete pamatovat tuto přednášku s úsměvem na rtech.

Děkuji vám mnoho­krát za pozornost.

Související