17. srpna 2013

Zdravý programátor

Pokud čtete alespoň polovinu odborných knih, toho co já, asi vám nebude neznámé nakladatelství The Pragmatic Programmer. Pravda, schopnost (spíš posedlost) přečíst kvanta knih jsem získal v minulém století, tak možná už to není tak in.

Takže, i pokud knížky nečtete, ale jste vývojář, který se nebojí v hospodě třísknout do stolu a zvolat na celý lokál: já jsem programátor, kdo je víc?, měla by vám něco říkat jména Andy Hunt a Dave Thomas. Pořád nic? Dobře, dávám vám poslední šanci: The Pragmatic Programmer. Bible softwarového inženýrství. Ano, napsali ji ti dva pánové. A ano, oni založili i to vydavatelství.

Proč se o tom tak vykecávám? Protože tohle parádní vydavatelství si zaslouží trochu promotion. Četl jsem od nich už šest knih a všechny byly skvělé, pokaždé 5 hvězdiček. Takové kvalitě se, s výjimkou Manningu, žádné další nakladatelství ani nepřibližuje. Takže, pokud váháte, jestli od nich něco koupit, anebo jste je doposud vůbec neznali - vřele doporučuju.

Memento mori

Pryč jsou doby, kdy stačilo, aby byl programátor pragmatický. Dnes musí být ještě navíc zdravý. Že by diktát New Age? Ne, jenom realita.

Programátoři (podobně jako rockeři či jazzmeni) vedou ve velké většině dosti nezdravý způsob života. Dokud je člověk mladý, tak to nějak jde. Ale jak začne oťukávat třicítku, tak mu tak nějak dojde, že není nesmrtelný a začnou se ozývat různé bolístky. A tady by měl každý zůstat ostražitý...

Jinak můžete dopadnout, jako já před pár lety - svoji programátorskou vášeň (10-12 hodin u počítače, včetně víkendů) jsem krutě zaplatil - vyhřeznutou plotýnkou. Plotýnka nabořená v míše je kritická věc (můžete třeba ochrnout) a zcela spolehlivě vás odradí od práce s počítačem - nejen, že nemůžete sedět, nemůžete ani ležet, ani stát. Všechno hrozně bolí.

No, vzhledem k tomu, že teď čtete tenhle článek, tak to asi dobře dopadlo. Vysekal jsem se z toho - s pomocí dobré víly a hlavně vlastním úsilím, jsem slezl chirugovi z lopaty a dnes žiju běžný život jako "předtím". Opět vášnivě programuji (i když rozumně - snažím se dodržovat XP Eight-Hour Burn), své děti vyhodím bez problémů metr nad hlavu, běhám, plavu atd. Všechny tyto věci mi doktoři zakazovali. (A pak jim věřte. ;-)

The Healthy Programmer

Kniha The Healthy Programmer od Joea Kutnera sice nenabízí tak srdceryvný příběh, jaký jste právě dočetli :-)  Nabízí ale něco jiného - jak se takovým problémům vyhnout. Knihu dobře vystihuje její podtitul: Get Fit, Feel Better, and Keep Coding. Nejdůležitější je to poslední - Keep Coding - protože jestli chcete programovat (nebo dělat cokoliv jiného na počítači) ještě za 10 let, budete s tím muset něco udělat. Čas, biologie a mechanika jsou neúprosné a pracují proti vám.

Zdroj The Healthy Programmer
Jádro knihy vám neprozradí nic nového, prostě: jezte zdravě, cvičte, dávejte si pozor (a pečujte) na oči, záda a zápěstí, buďte aktivní atd. Co je ale na knize unikátní, je způsob, jak jsou tyto věci vysvětlovány a jak byste k nim měli přistupovat.

Kniha totiž radí přistupovat ke svému zdraví agilně. Pro daný aspekt si udělat test a pak iterativně refaktorovat danou kvalitu, až test projde. Dostane se i na Pomodoro a kaizen. Všechny změny jsou malé a postupné. Smyslem není jen vyřešit váš aktuální problém (nadváha, bolesti zad či hlavy, únava apod.) a upozornit na (závažná) rizika, která se s vývojářským životním stylem pojí, ale hlavně najít systém, který pro vás bude udržitelný po zbytek vašeho (programátorského) života. A taky vás bude bavit.

Všechny věci, které autor doporučuje jsou podepřeny vědeckými studiemi. Pokud někde korelace není prokazatelná, tak na to upozorní. Kniha obsahuje obrovskou sumu referencí, na vědecké články a další literaturu. Abych pravdu řekl, tolik odkazů jsem v publikaci ještě neviděl.

Zakončil bych prvním citátem, který jsem si podtrhnul. Myslím, že knihu velmi přesně charakterizuje.

"Agile processes are characterized by an iterative and incremental approach to development, which allows us to adapt to changing requirements. The method you use to stay healthy shouldn't be any different."

6 komentářů:

  1. Čekal jsem, že dáš k dobru nějaké tipy.

    OdpovědětVymazat
    Odpovědi
    1. Těch tipů je tam hodně. Navíc je to zasazený v tom rámci agilního iterování. A celý to tvoří komplexní celek - nabaluje se to jako sněhová koule. A jenom přepisovat obsah se mi nechtělo.

      Ale máš pravdu, něco konkrétního tomu schází. Tak tady jeden tip je:

      Pořiďte si pedometr a choďte co nejvíc pěšky. Člověk by měl denně udělat 10.000 kroků, přičemž průměrný programátor jich udělá kolem 3.000 (můžu potvrdit, i když... já jsem nadprůměrný programátor :-)

      Vymazat
  2. Jen k těm vydavatelstvím... Pro mě je mezi top i WROX... Kdyby nic jiného, tahle kniha změnila svět...http://www.wrox.com/WileyCDA/WroxTitle/productCd-0764558315.html

    OdpovědětVymazat
    Odpovědi
    1. Johnsonova kniha je určitě zásadní počin. A Javistům svět jistě změnila (i když Rubistům je to asi jedno ;-)

      S Wroxem jsme se nějak míjeli. Četl jsem od nich jen jedinou knihu - tuhle o PHP - a je to už víc než deset let. Za poslední roky jsem si nic od nich nedal do wishlistu.

      Vymazat
  3. Jednotlivé cíle jsou:

    • Goal 1, Change one habit,
    • Goal 2, Buy a pedometer,
    • Goal 3, Find your resting heart rate,
    • Goal 4, Check your blood pressure,
    • Goal 5, Enhance your workstation,
    • Goal 6, Count your calories for one day,
    • Goal 7, Get an eye exam,
    • Goal 8, Pass the Kraus-Weber Test,
    • Goal 9, Get a negative result on Phalen's Test,
    • Goal 10, Take a yoga class,
    • Goal 11, Do a Pomodoro workout,
    • Goal 12, Sign up for an online fitness service,
    • Goal 13, Learn about your family medical history,
    • Goal 14, Take an outdoor vacation,
    • Goal 15, Take a rock-climbing class,
    • Goal 16, Reach the fiftieth percentile for the adult version of the Presidential
    Physical Fitness Test,
    • Goal 17, Give a healthy lunch seminar,
    • Goal 18, Start or join a team with your coworkers,
    • Goal 19, Set new goals

    ...takže místo karpálního tunelu budu mít zlámaný žebra z horolezeckýho kroužku. Kdybych se radami z té knihy řídil, možná bych byl zdravý (bez záruky), ale určitě bych nic nenaprogramoval. Zde například rady ohledně stolu:

    An even better solution is to have a walking desk. If you can integrate a
    treadmill into your workstation you’ll avoid most of the dangers we’ve
    discussed. However, treadmill desks have been shown to further reduce
    fine motor skills, which means you might struggle with productivity.
    Cycling desks are also available (but swimming desks haven’t hit the
    market yet).

    OdpovědětVymazat
    Odpovědi
    1. Takhle vytržené z kontextu to nemusí konvenovat každému. Podobně by dopadlo třeba TDD.

      V knížce nejde o to, "odškrtat" si jednotlivé cíle. Hlavní poselství je najít si udržitelný způsob života, který mi umožní programovat v dlouhodobém horizontu.

      Vymazat