Dlaczego warto czytać książki

W trakcie prowadzenia bloga zauważyłem, że dobre przedstawienie materiału jest kluczowe. Można mieć ogromną wiedzę i jednocześnie nie móc jej sensownie przekazać. Moim zdaniem książki to dobre źródło zorganizowanej wiedzy. Autor książki musi włożyć sporo wysiłku w przygotowanie materiału w taki sposób, aby był przejrzysty i dobrze zorganizowany.

Książki są przydatne, jednak nie powinieneś na nich poprzestawać. Blogi, dokumentacja techniczna, grupy dyskusyjne, praktyczne eksperymentowanie itp. to wszystko powinno pomóc Ci być na bieżąco. Sam pracuję zawodowo jako programista od 2007 roku, cały czas uczę się nowych rzeczy, książki są tu bardzo pomocne.

Po polsku czy po angielsku

Książki techniczne mają to do siebie, że w oryginale pisane są po angielsku (w ogromnej większości). Angielski to język, którego używa się na co dzień w pracy w branży IT. Często książki, które są tłumaczone na język polski są nieaktualne1. W Polsce wychodzi pierwsza edycja po polsku, a po angielsku jest już jej nowsza wersja. Moim zdaniem, właśnie z tego powodu, książki techniczne warto czytać po angielsku. Dodatkowo w trakcie lektury można podszlifować trochę znajomość tego języka i poznać słownictwo techniczne.

Zestaw książek

Książki, które tutaj prezentuję to subiektywny wybór tych, które najbardziej zapadły mi w pamięć. Część z nich to “klasyki”, które ugruntowały swoją pozycję. Nie jest to lista kompletna i zawiera tytuły, na które natknąłem się pracując jako programista Java.

Część z linków do książek to tak zwane linki afiliacyjne. Oznacza to tyle, że jeśli kupisz książkę używając tych odnośników cena książki dla Ciebie się nie zmienia, a ja mogę dostać prowizję za przyprowadzenie nowego klienta do sklepu (jeśli nie miałeś wcześniej konta w sklepie).

Prowadzenie projektu

The Mythical Man-Month - Frederick P. Brooks

The Mythical Man-Month - Frederick P. Brooks

Zgadnij, ile ta książka ma lat?

Przedmowa do pierwszego wydania była napisana w 1974 roku. Bez mała pół wieku. Tak, to książka o IT, gdzie biblioteki i narzędzia zmieniają się częściej niż pory roku. A ta książka cały czas ma rację bytu. To w niej przeczytałem o tym, że dokładanie ludzi do już spóźnionego projektu opóźni go jeszcze bardziej. Przykłady odnoszące się do technologii mogą być przeterminowane, jednak książkę nadal warto przeczytać.

Death March - Edward Yourdon

Death March - Edward Yourdon

Do tej książki mam sentyment :). Opisuje projekt, w którym pracowałem. Tytułowy marsz śmierci, wszyscy wiedzą o nierealnych terminach, wymaganiach itp. a i tak brną dalej.

Architektura i wzorce projektowe

Design Patterns - Gamma, Helm, Johnson, Vlissides

Design Patterns - Gamma, Helm, Johnson, Vlissides

Możliwe, że słyszałeś o GoF albo Gang of Four. Tak właśnie mówi się o autorach tej książki. Klasyk. Ta książka to encyklopedia wzorców projektowych. Każdy wzorzec ma przykładową implementację, diagramy, powody powstania, inne powiązane wzorce, konsekwencje jego użycia itd.

Patterns Of Enterprise Application Architecture - Martin Fowler

Patterns Of Enterprise Application Architecture - Martin Fowler

Ciężka książka. Dosłownie i w przenośni. Delikatnie mniej encyklopedyczne podejście do wzorców projektowych. Mogę się doczepić do słowa Enterprise, które swego czasu było czymś modnym (jak dzisiaj Blockchain, Data Science czy niedawno Big Data).

W tej książce przeczytasz o wzorcach, których używasz na co dzień w wielu popularnych bibliotekach (Spring czy Hibernate to standardowy przykład).

Dobre praktyki

Clean Code - Robert C. Martin

Clean Code - Robert C. Martin

Książka, która pozwala spojrzeć inaczej na swój kod. Niezależnie od tego jak długo programujesz na pewno znajdziesz w niej opis błędów, które popełniasz. Ja znalazłem sporo swoich. Jeśli Design Patterns to encyklopedia wzorców projektowych, to tę książkę nazwałbym encyklopedią dobrych praktyk przy pracy z kodem źródłowym. Chociaż przykłady pokazane są w języku Java mam wrażenie, że programiści innych języków też mogą z tej książki bardzo dużo wynieść.

Jeśli miałbym Ci wskazać wyłącznie jedną książkę spośród wszystkich, które tu wymieniłem to wybór padłby właśnie na Clean Code.

Test-Driven Development By Example - Kent Beck

Test-Driven Development By Example - Kent Beck

Ta książka otworzyła mi oczy ;). Przerabiając przykłady z tej książki nauczyłem się TDD. Jeśli do tej pory nie miałeś styczności z Test Driven Development mogę śmiało polecić tę książkę.

Refactoring - Martin Fowler

Refactoring - Martin Fowler

Kolejne encyklopedyczne zestawienie. Książka zawiera zbiór możliwych refaktoryzacji. Dodatkowo zobaczysz refaktoryzację przykładowej aplikacji, gdzie autor sukcesywnie poprawia jakość kodu. Po przeczytaniu tej książki praca ze starym kodem nie jest już taka straszna, teraz mam wielką frajdę z polepszania jakości kodu :).

Autor na swoim blogu zapowiedział drugą edycję tej książki. Przykłady w drugiej mają być napisane w JavaScript. Autor planuje poświęcić więcej uwagi refaktoryzacji funkcji2.

Różne

Masterminds of Programming - Federico Biancuzzi

Masterminds of Programming - Federico Biancuzzi

Chciałem zajrzeć do głowy programistów, którym nie dorastam do pięt. Ta książka to zestaw wywiadów z twórcami różnych języków programowania. Przydaje się jako odskocznia od ściśle technicznych tytułów.

The Productive Programmer - Neal Ford

The Productive Programmer - Neal Ford

Moim zdaniem ta książka przyda się głównie początkującym programistom. Jeśli nie słyszałeś wcześniej o DRY, czy YAGNI to ta książka może Ci pomóc. Książka opisuje kilka dobrych praktyk, pomagających w organizacji pracy programisty. Jeśli jednak masz już za sobą kilka lat programowania prawdopodobnie znasz większość wspomnianych tu wskazówek.

Książki dotyczące Javy

Poniższych książek nie mam już w swojej prywatnej biblioteczce. Głównie dlatego, że były mi przydatne na etapie uczenia się języka Java, teraz już nie są. Drugim powodem jest to, że się przeterminowały. Jak ja czytałem te książki Java 5 to była nowość ;). Niemniej jednak, opiszę Ci książki, które mi pomogły - może znajdziesz inne pozycje tych samych autorów.

  • Head First Servlets and JSP - Basham, Sierra, Bates - Książka jest przegadana, ma ponad 900 stron. Przepraszam, przerysowana ;). Jeśli szukasz “łopatologicznego” wytłumaczenia jak działają strony JSP czy serwlety to może to być dobre źródło. Jeśli nie lubisz rysunków w książce pomiń tę pozycję.

  • Java Puzzlers - Bloch, Gafter - Przypomina mi się moja pierwsza praca. Właśnie tam z kolegami z zespołu przerabialiśmy tę książkę. Książka to zestaw “pułapek”, które pokazują zachowanie Javy, które jest czasami bardzo dziwne. Niestety książka nie doczekała się nowego wydania więc polecam ją jedynie jako ciekawostkę.

  • Java od podstaw do technologii - Krzysztof Barteczko - Jest to jedyna książka po polsku, którą wspomniałem. To z tej książki nauczyłem się składni języka Java. Szczególnie pierwszy tom był przydatny.

Effective Java - Joshua Bloch

Świetny podręcznik do poznania języka Java. Pamiętam, że czytałem między innymi tę książkę przygotowując się do certyfikatu z języka Java. Jest to wyjątek od trzech tytułów wspomnianych wyżej, ten doczekał się nowego wydania. Niestety nie miałem przyjemności czytać tego najnowszego, jednak tego autora można spokojnie polecić :).

Co teraz czytam?

Do niedawna byłem w trakcie czytania 3 książek jednocześnie. Bardzo mocno staram się oduczyć tego podejścia. Więc na dzisiaj na tapecie mam jedną książkę ;).

The Go Programming Language - Donovan, Kernighan

The Go Programming Language - Donovan, Kernighan

Aktualnie w wolnych chwilach uczę się nowego języka, tym razem padło na Go. Chociaż nie przeczytałem całej książki muszę powiedzieć, że jest świetna. Nie jest ona jednak kierowana do początkujących programistów. Prezentowane przykłady i sposób wprowadzania materiału zakładają, że Go nie jest pierwszym językiem, którym czytelnik się posługuje.

Podsumowanie

W jednym zdaniu: książki warto czytać.

Jeśli Twoim zdaniem pominąłem jakieś ważne pozycje proszę daj znać w komentarzach. Twoja rekomendacja na pewno przyda się nie tylko mi. Jeśli nie chcesz pominąć kolejnych artykułów na blogu proszę dopisz się do samouczkowego newslettera i polub Samouczka na Facebooku. Do następnego razu!

  1. Oczywiście nie jest to prawda dla niektórych tytułów, które są “ponadczasowe” ;). 

  2. W JavaScript funkcje są tak zwanymi obiektami first class, w Javie można porównać je do wyrażeń lambda

Zostaw komentarz