
Czas czytania: 9 min
Jako typowy zwolennik przedmiotów ścisłych, nie miałem dobrego zdania o “humanistycznych mądrościach”, jakimi byłem raczony w szkole. Podobnie myślałem o osobach, których umysł nie był tak samo wspaniale logiczny jak mój…
Na szczęście od zawsze sporo czytałem i z każdą kolejną książką, coraz dosadniej zauważałem, że jest na tym świecie wiele spraw, o których nawet nie myślałem… Okazało się, że wyłącznie ścisłe spojrzenie na świat to zdecydowanie za mało, żeby być dobrym, w tym co się robi i rozpędzić swoją karierę.
Czasami dostaję pytania o książki, które warto przeczytać jako programista. Jest kilka takich, które uważam za podwaliny tego, co mnie ukształtowało na ten moment.
Nie będę Cię jednak nudził tym, co możesz przeczytać w każdym artykule na dowolnym, innym programistycznym blogu. To już wszyscy doskonale wiemy. Ja pójdę w nieszablonowy zbiór. Mój własny, subiektywny.
Polecane przeze mnie książki nie są związane z programowaniem wprost. Ale uważam, że w programowaniu jest mnóstwo rzeczy poza kodem. Być może stąd nazwa bloga? 😎
Na początku krótko się zastanówmy, po co komu to całe czytanie… Przecież jest mnóstwo ciekawszych (teoretycznie) zajęć. Ileż można się uczyć, kiedy człowiek już wszystko wie?
Czytanie… a po co to komu?
Nie będę tutaj wchodził w “oczywiste oczywistości”. Chcę tylko zwrócić uwagę na kilka aspektów, które są (moim zdaniem) ważne dla programisty.
Zacznę od tego, co jest dla mnie absolutnie najważniejszą zaletą. Czytanie to droga na skróty.
Pochłaniając kolejną pozycję, dostajemy wiedzę eksperta z wieloletnim doświadczeniem, zamkniętą na kilkuset stronach. Oczywiście wszystko zależy od książki, ale te dobre są rezultatem praktyki autora (czy autorki). Są wypadkową mnóstwa prób, dotkliwych błędów i spektakularnych sukcesów. Dostajemy to wszystko w cenie 3 kaw na mieście! Aż strach pomyśleć, ile sami musielibyśmy popełnić błędów, i jaką zapłacić cenę, zanim byśmy posiedli tę wiedzę!
Umysł zaś potrzebuje książek, podobnie jak miecz potrzebuje kamienia do ostrzenia, jeśli ma oczywiście zachować ostrość.
Tyrion Lannister “”Gra o tron”
Kolejną zaletą jest poprawianie komunikacji.
Na tym blogu ten temat jest co chwilę… no ale, co mi tam… to mój blog… 😅
W programowaniu komunikacja jest bardzo istotna. Czytanie książek poszerza słownictwo, poprawia sposób konstruowania myśli i poszerza światopogląd. To wszystko owocuje zwiększeniem umiejętności przekazywania myśli innym członkom zespołu.
Ostatnią zaletą, na którą chcę zwrócić uwagę to fakt, że książki obniżają stres.
Doskonale wiesz, jak różne dni zdarzają się podczas pracy programisty. Jednego dnia niczym kwiat lotosu unosisz się nad klawiaturą, tworząc niespiesznie kolejne zgrabne partie kodu. Innego, diabeł podkłada pod produkcje ogniska, które musisz gasić. Jedno po drugim, do odwołania.
Oczywiście można odreagowywać na różne sposoby, ale według badań dr Davida Lewisa z Mindlab International na University of Sussex, już 6 minut czytania obniża poziom stresu o 68%. Okazało się, że ta aktywność jest najskuteczniejsza.
Dla porównania słuchanie muzyki – 61%, kawa czy herbata – 54%, spacer – 42%, a gry komputerowe tylko 21%. Więcej o badaniu możesz przeczytać TUTAJ.
6 nieoczywistych książek, które powinien przeczytać każdy programista
W końcu dotarliśmy do subiektywnego zbioru książek, które powinny być przez Ciebie przeczytane! Dla mnie zrobiły wiele dobrego. Istnieje spora szansa, że w Twoim przypadku będzie podobnie!
Ostrzegam! Lista nie jest szablonowa! Kolejność jest przypadkowa.
Pociągnij za spust – Steven Pressfield

Jeszcze kilka lat temu byłem jedną z wielu osób, które popełniały największy błąd, jeżeli chodzi o czytanie książek. Nie samo czytanie i zdobywanie nowej wiedzy jest ważne. Jeżeli nic nie robi się z wiedzą, którą się z książek wynosi, to nic się tak naprawdę nie zmienia. Posiadasz więcej informacji i możesz prowadzić dłuższe dyskusje filozoficzne, jak być powinno lub jak mogłoby być…
Ten krótki poradnik bardzo klarownie tłumaczy, co nas hamuje przed wzięciem spraw w swoje ręce i daje prosty przepis, jak sobie z tym poradzić.
W którymś momencie (najlepiej jak najszybciej) musisz skończyć przygotowania i zacząć działać! Ta wiedza, którą już teraz masz, wystarczy. Resztę dowiesz się w międzyczasie. Najważniejsze to codziennie, sukcesywnie, podążać w stronę celu.
Jak to się przekłada na programowanie?
Nie wpadnij w błędne koło przygotowywania się na zdarzenia, które nie nastąpią. Nie czytaj kolejnych dokumentacji kolejnych frameworków. Zacznij pisać kod. I pisz go codziennie. Na bieżąco uzupełniaj luki w wiedzy. Odważnie podejmuj się kolejnych zadań (czasami tych teoretycznie poza Twoją ekspertyzą czy umiejętnościami). Zdziwisz się, jak szybko zrobisz ogromne postępy.
Pamięć absolutna – Arnold Schwarzenegger

Za każdym razem, gdy komuś polecam tę książkę, widzę na twarzy rozmówcy to samo: “Serio? Biografia Arnolda? Nie masz nic lepszego?” Ano nie mam! Ta biografia jest genialna pod wieloma względami. Arnold okazuje się kimś zdecydowanie bardziej interesującym niż jego role w filmach.
Autor osiągnął wszystko, co było możliwe w każdej z dyscyplin, za jakie się zabrał: sport, aktorstwo, biznes i polityka. Okazuje się, że zawdzięcza to trzem prostym technikom.
Powtórzenia. Zrób coś tyle razy, aż staniesz się w tym dobry.
Oszukiwanie siebie w kierunku zmiany. Mentalnie wmawiaj sobie, kim chciałbyś być, a takim się staniesz.
Ucz się od ludzi, którzy już są tam, gdzie chcesz być. Szukaj ekspertów i rozmawiaj z nim, tak długo, jak Ci na to pozwolą.
Gwarantuję Ci, że po przeczytaniu tej książki już nigdy nie spojrzysz na Arnolda Schwarzeneggera w ten sam sposób.
Jak to się przekłada na programowanie?
Rozmawiaj jak najwięcej z ludźmi, którzy mają doświadczenie w programowaniu. Oglądaj ich kod. Zastanawiaj się i pytaj, dlaczego coś robią w ten sposób. Jeżeli czujesz się w czymś słaby – powtarzaj to do znudzenia. Aż wejdzie ci to w krew. I może najwazniejsze – wierz w siebie i myśl codziennie o tym, gdzie chcesz być.
Jedna rzecz – Gary Keller

Przed przeczytaniem tej książki praktycznie już się doktoryzowałem w produktywności. Jakich to ja nie znałem systemów, które kusiły swoją złożonością i dokładnością. Próbowałem je wdrażać…
Jedne działały lepiej, inne wcale. Wszystkie miały dwie wspólne cechy. Były skomplikowane i rozmywały główny cel, pozwalając się zatopić w procedurach i pobocznych potrzebach.
Ta książka dobitnie pokazuje, że jeżeli chcemy się rozwijać, to nie potrzebujemy niedorzecznych systemów produktywności i musimy być cały czas zajęci. Wystarczy skupić się w danym momencie na tytułowej “jednej rzeczy” i nagle wszystko staje się dużo łatwiejsze. Nikt nie każe zapominać o innych celach i potrzebach. Po prostu trzeba spojrzeć na to inaczej.
Zapomnij też o multitaskingu. Czegoś takiego nie ma. Po prostu. Kiedy w końcu sobie to uświadomimy? Kto nas tak okłamał?
Jak to się przekłada na programowanie?
Zastanów się, co w danym momencie jest najistotniejsze i zacznij to robić. Poświęć się temu.
Co następnego powinieneś się nauczyć? Programowania mobilnego? Baz danych? Wybierz jedno i zacznij naukę od tego. Jak skończysz – zacznij następna rzecz. Ja wiem, że być może WSZYSTKO by się przydało. Ale bądźmy szczerzy… na pewno jest Ci potrzebne programowanie mobilne, właśnie w tym momencie? Co da Ci największą dźwignię w najbliższym czasie?
Projekty rób po kolei. Oczywiście, jeżeli to możliwe. Nikt nie namawia do skupiania się nad zmianą koloru baneru na stronie, gdy płonie produkcja! W miarę możliwości skończ jeden projekt, zanim zaczniesz następny. Zdziwisz się, ale tak jest wbrew pozorom szybciej!
Jak zdobyć przyjaciół i zjednać sobie ludzi? – Dale Carnegie

Ja wiem, że ten tytuł jest straszny! Ale niech Cię nie zwiedzie! Ta książka zrobi więcej dla Twoich umiejętności komunikacji niż setki innych w tej tematyce.
Jest pełna momentów “No tak! Właśnie tak jest! Bez kitu!”. Długo stała u mnie na półce i teraz żałuje, że nie sięgnąłem po nią wcześniej!
Jak to się przekłada na programowanie?
W programowaniu komunikacja to podstawa. To gra zespołowa i rzadko możemy sobie pozwolić na samotne przemierzanie połaci kodu. Musimy potrafić się ze sobą dogadać. To ważne wewnątrz zespołu programistów, ale być może ważniejsze poza nim.
Zacznij rozmawiać z ludźmi, używając rad, jakie daje autor tej książki. Projekty zaczną iść szybciej. Będziecie popełniać mniej błędów. Staniesz się liderem zespołu. Nie przesadzam!
Ekstremalne przywództwo – Jocko Willink, Leif Babin

Jak taktyki Navy Seals mogą się przydać w pracy programisty? Czy mnie, aby nie ponosi?
Ta książka otworzyła mi oczy na wiele spraw, ale również umocniła w tym, co podświadomie wiedziałem. Cokolwiek nie robisz, najważniejsze jest to, aby być częścią rozwiązania nie problemu. Być może jest to już aż nazbyt wyeksploatowany slogan, ale przez chwilę zastanów się, jak to jest u Ciebie? Sam zdaje sobie sprawę, że nie jestem idealny… Ta książka stawia powyższą zasadę do ekstremum. WSZYSTKO jest Twoją sprawą i odpowiedzialnością.
Dodatkowo duża uwaga skierowana jest na to, aby upraszczać wszystko, co się robi. Proste procedury są łatwiejsze w utrzymaniu w zespole, a ryzyko pomyłek jest znikome.
Jak to się przekłada na programowanie?
KISS. Ta zasada ratuje nie jeden projekt i zadanie. Oprogramowanie ma tylko jedno zadanie – rozwiązywać problem klienta. Należy je pisać tak, aby spełniało to zadanie i nic poza tym (YAGNI). Wodotryski rzadko są potrzebne… a jak są, to dopiero wtedy się należy tym zająć.
Przekazując zadanie koledze czy koleżance upraszczaj przekaz. Nie chodzi tu o brak zaufania do jego/jej inteligencji. Eliminujesz ryzyko pomyłki czy braku zrozumienia. Na pewno nie raz braki w zrozumieniu prowadziły do sytuacji, gdy wykonany został “kawał dobrej i nikomu niepotrzebnej roboty”.
Gdy w projekcie idzie coś nie tak, nie szukaj winnych. Szukaj rozwiązania. Gdy pył już opadnie, zastanów się, co Ty mogłeś zrobić lepiej. Szukanie winnych i wytykanie z wyższością palcami zostaw innym. Zaufaj mi. Taka postawa zostanie doceniona!
12 zasad życia – Jordan Peterson

Ostatnia w moim subiektywnym zestawieniu, ale niemniej ważna niż powyższe.
Książka ta jest zbiorem przemyśleń autora z wielu lat jego praktyki klinicznej jako psychologa. Moim zdaniem jest bardzo trafnym spojrzeniem na życie. Zwraca uwagę na potrzebę ciągłej pracy nad sobą, aby być wartościowszym członkiem rodziny i społeczeństwa.
Dla mnie największymi lekcjami z niej było dbanie o siebie. Niby jest to oczywiste, ale jeżeli nie zadbamy o siebie, nie jesteśmy w stanie zadbać o innych. Dr Peterson zwraca również uwagę na takie sprawy jak klarowne przekazywanie informacji, ciągłe doskonalenie się, otaczanie się właściwymi ludźmi i wiele innych istotnych rad.
Jak to się przekłada na programowanie?
Skupie się tutaj tylko nad jedną z rad, bo inne już wybrzmiały przy poprzednich książkach.
Zadbaj o siebie! Ja wiem, że programista zamienia kubki kawy w doskonałej jakości kod i nie musi spać, ani robić nic innego. Łatwo się zagonić w tryb ciągłej pracy, w szczególności, gdy programowanie to coś co bardzo lubisz robić. Musisz, jednak uważać…
Nie pomożesz nikomu, gdy będziesz skrajnie wykończony i w złym stanie fizycznym. A już na pewno Twój kod nie będzie dobry, gdy jedyną siłą trzymającą Cię na nogach jest kolejna kawa.
Zadbaj o jakość snu. Pomyśl nad sposobem jak utrzymać sprawność fizyczną. W pracy i tak siedzimy przed monitorami przez wiele godzin. W czasie wolnym warto zadbać o odrobinę ruchu i odpowiedni posiłek.
Nie tylko technicznym tomem człowiek żyje
Nie sposób nie wspomnieć w takim wpisie o klasykach nad klasykami:
- Czysty Kod – Robert C. Martin (Uncle Bob)
- Mistrz czystego kodu – Robert C. Martin (Uncle Bob)
- Rusz głową! Wzorce projektowe – Bert Bates, Elisabeth Robson, Eric Freeman, Kathy Sierra
Jest ich oczywiście więcej. Wymieniam je, bo chcę, abyś zwrócił na coś uwagę. Nie ma wśród nich typowych książek do nauki języka programowania czy konkretnego frameworka.
Wszystkim początkującym programistom szczerze polecam przeczytać te książki, wdrożyć kilka z tematów, które poruszają, a potem trzymać je na półce i wracać od czasu do czasu.
Jestem fanem just-in-time learning. Książki techniczne, jeżeli już mam, to raczej kartkuje. Zazwyczaj korzystam z możliwości internetu. Po pierwsze dlatego, że samo czytanie, bez wdrażania od razu “w boju” nowej wiedzy jest bez sensu. I tak nic nie zapamiętasz! Po drugie, w internecie można łatwo porównać kilka podejść, a w książkach technicznych jest najczęściej jedno “słuszne wg autora” podejście.
Nasuwa się pytanie, jak znaleźć czas na czytanie
… a ja ledwo co czuję, kiedy rymuję…
Znam tylko jeden sposób. Zbuduj w sobie nawyk codziennego czytania. No, ale jak to codziennego? Kto ma na to czas… Moim zdaniem każdy!
Moim sposobem na zbudowanie nawyku i codzienne sięganie po lekturę jest proste założenie:
“Czarku – Twoim zadaniem jest przeczytanie jeden strony dziennie z dowolnej książki”.
Przeczytanie jednej strony, mocno niewprawionemu w czytanie człowiekowi powinno zając maksymalnie 2 minuty. Chyba tyle każdy da radę poświęcić dziennie?!
Oczywiście są dni, kiedy czytam jedną stronę, po czym odkładam książkę (podtrzymuje nawyk). W większości przypadków czytam jednak o wiele więcej!
Standardowa książka ma około 300-400 stron. Czytając tylko 10 stron dziennie, można śmiało przeczytać 10 książek w roku! Dla porównania statystycznie około 61% polaków nie przeczytało żadnej książki w przeciągu ostatniego roku.
Czytanie dobrych książek jest niczym rozmowa z najwspanialszymi ludźmi minionych czasów.
Kartezjusz
Możesz również spróbować z audiobookami. Niewątpliwą zaletą jest to, że można je “czytać” wszędzie. Dodatkowo można je bardzo szybko zdobyć. W końcu to produkt cyfrowy. Sam mam niewiele styczności z taką formą przyswajania materiałów, chociaż odnotowałem pewne sukcesy.
Ja po prostu uwielbiam “mieć fizycznie” książki, stąd mój wybór pada na papier.
Podsumowanie
Uwielbiam czytać!
Półki w moim domu zapełniają się książkami już przeczytanymi, ale także tymi, po które dopiero mam zamiar sięgnąć.
Często nie potrafię sobie odmówić kolejnej pozycji, chociaż wiem, że wciąż w kolejce czeka ich wiele.
Uważam, że czytanie książek daje mi przewagę. Czytając, czerpię z wielu lat doświadczeń ich autorów i autorek. Uczę się na ich błędach. Sprawdzam ich tezy w praktyce. Szukam najlepszych ścieżek dla siebie – łącząc najlepsze rozwiązania. To droga na skróty.
Innym razem – po stresującym dniu, książka pozwala mi oczyścić umysł, wchodząc do fantastycznego świata pełnego magii i smoków lub rozwiązać zagadkę kryminalną z szalonym detektywem. Nie samym rozwojem człowiek żyje!
Pamiętaj jednak, że samo czytanie to za mało. Jeżeli nie będziesz wdrażać i testować poznanych konceptów – wtedy lektura będzie tylko sposobem na odreagowanie stresów. Czy to źle? Oczywiście, że nie! Ale dobrze jest mieć balans we wszystkim.
Czytanie… a po co to komu? Mam nadzieję, że już wiesz! 😀
A Ty? Jakie książki polecasz w rozwoju swojej programistycznej drogi?
Jeżeli podoba Ci się ten artykuł, to prześlij go znajomemu/znajomej! Może oni też mają do polecenia jakąś ciekawą książkę?