Czy warto kupować literaturę informatyczną?

21 września 2021
Jakub Rojek Jakub Rojek
Źródło: fragment biblioteczki autora
Kategorie: Literatura

Bardzo dużo mówi się o tym, że bycie programistą (czy informatykiem w ogóle) oznacza nie tylko nauczenie się technik programistycznych, zasad działania aplikacji, podstaw przeróżnych protokołów, elementów architektury oprogramowania, ale też - a może i przede wszystkim - stałe doskonalenie się. IT ma bowiem to do siebie, że zmiany w tej branży zachodzą bardzo szybko i chcąc ciągle oferować najwyższą jakość usług, siłą rzeczy należy zapoznawać się z nowościami i obserwować otoczenie. Niekiedy dzieje się to naturalnie, gdyż programiści bardzo często sami z siebie przeglądają informacje dot. świata IT czy aplikacji, a także sami korzystają z przeróżnych rozwiązań, w których można podpatrzeć podejście do pewnych funkcji.

Czasem jednak trzeba się trochę "zmusić" i sięgnąć po materiały z wiedzą bardziej usystematyzowaną, przygotowaną przez (teoretycznie) odpowiednie do tego osoby. Tutaj możliwości mamy bardzo dużo i ograniczają nas jedynie czas i pieniądze - od mniej "formalnych" ścieżek m.in. w rodzaju blogów, podcastów, tutoriali, aż po te najbardziej wzbudzające respekt w postaci literatury fachowej czy prelekcji na konferencjach. Nie zamierzam dzisiaj poruszać tematu tego, z czego człowiek powinien najbardziej czerpać (gdyż każde źródło informacji jest warte uwagi, jeśli tylko jest sprawdzone), natomiast chciałem się skupić stricte na książkach technicznych dotyczących branży IT, a konkretnie zmierzyć z następującą hipotezą:

Nie warto kupować książek o IT, gdyż bardzo szybko się dezaktualizują.

A jeśli wolicie w wersji graficznej:

Źródło: imgflip.com

Aby spróbować to rozwinąć, należy uświadomić sobie, że w wielkim skrócie można wyróżnić trzy kategorie takich książek.

Pierwsza to pozycje poświęcone konkretnemu rozwiązaniu lub nawet jego specyficznej wersji. Przykładem mogą być książki poświęcone Javie 7 lub Symfony 2 - na pewno część zawartej w nich wiedzy może być rozszerzona na inne języki bądź wersje silnika, jednak z założenia dotyczą konkretnego wycinka technologii, który dogłębnie omawiają.

Druga to książki poświęcone danej technologii, ale w bardziej ogólnym kontekście. Mowa tutaj o pozycjach uczących np. SQL-a czy Dockera - co prawda, te języki/narzędzia ewoluują, ale na przestrzeni lat widać, że są raczej "stałymi" rozwiązaniami, ulegającymi jedynie rozbudowie i w różnych formach wciąż obecne w informatycznym świecie.

Trzeci rodzaj to szerokie spektum książek traktujących o całych koncepcjach, nierzadko ugruntowanych od niepamiętnych czasów. Tutaj mamy do czynienia zarówno z pozycjami popularno-naukowymi, jak i typowo naukowymi i myślimy np. o nauce algorytmów, sieciach komputerowych, programowaniu obiektowym itd. Te książki są najczęściej polecane na studiach w ramach bibliografii konkretnych przedmiotów i nie bez powodu, ponieważ wiele z nich jest nadal aktualnych i dostarcza niezbędnych podstaw do badania danego tematu od podszewski.

To zgrubne rozgraniczenie literatury na trzy kategorie ma fundamentalne znaczenie dla tematu dzisiejszego wpisu. Jak się pewnie domyślacie, pierwsza kategoria książek może być bardzo ważna dla osób, które są niedoświadczone i chcą szybko zapoznać się z daną techniką, aby korzystać z niej tu i teraz. Dodatkowo takie pozycje zawsze są ciekawą propozycją dla osób spoza branży, które chcą się czegoś konkretnego nauczyć, a nie zaczynać od "starożytności". Natomiast dla dłuższego rozwoju programisty są one zwykle nieodpowiednim zakupem - wiedza w nich zawarta szybko się dezaktualizuje i w niektórych przypadkach już po kilku latach taka pozycja na półce będzie się tylko kurzyć, a na dodatek trudno będzie ją odsprzedać. Także tego typu książki jak najbardziej potwierdzają przytoczoną wcześniej hipotezę i chcąć posiąść zawartą w nich wiedzę, lepiej posiłkować się materiałami internetowymi.

Trudniej jest o ocenę w przypadku drugiej kategorii - o ile konkretne narzędzia się zmieniają, o tyle w przypadku całych technologii i ich fundamentów jest to już rzadsze. Tego typu książki mogą już być użyteczne przez dłuższy czas i stanowić bazę do zrozumienia spektrum konkretnych rozwiązań. Przykładowo, książka o Dockerze będzie (a przynajmniej powinna) opisywać konteneryzację oraz wirtualizację w szerokiem zakresie, co już jest dużym zastrzykiem wiedzy dla programisty chcącego zrozumieć mechanikę działania emulowania systemów. A nawet mimo tego, że sam Docker zyskuje nowe wersje i się zmienia, to jest to cały czas jedno narzędzie, którego przez pewien czas nic nie "zdejmie", a zatem taka książka powinna być aktualna przez dłuższy okres.

Trzecia kategoria tym bardziej zaprzecza głosom krytyków, gdyż te książki dotyczą rzeczy "ponadczasowych", natomiast tutaj problem może być inny - trudność w odbiorze takich pozycji. O ile można w tym obszarze znaleźć tomy bardzo przystępne napisane (np. książki Roberta C. Martina), o tyle znajdziemy tutaj też kobyły, które - co prawda - oferują bardzo dużo wiedzy, ale nierzadko dotykają naukowej teorii i dają jedynie bazę do dalszych poszukiwań. Przykładem może być słynne "Wprowadzenie do algorytmów" Cormena (a raczej czterech autorów, z których jeden to Cormen), które żartuje z nas już w tytule, pisząc o wprowadzeniu i oferując tym samym ok. 1500 stron z symbolami matematycznymi.

Podsumowując, to nie jest tak, że wszystkie książki o sferze IT są niewarte kupna i w krótkim czasie wiedza w nich zawarta pójdzie na śmietnik. Należy do każdej pozycji podchodzić indywidualnie i w razie potrzeby wyszukać o niej informacji oraz opinii. Zawsze możesz też zapytać znajomego programistę czy informatyka (także nas!), który na pewno udzieli odpowiedniej rady, patrząc tylko na spis treści lub nawet opis na tylnej okładce. Innym problemem jest cena - literatura fachowa nigdy nie była tania i choćby z tego względu nasze zakupy i plany poświęcenia czasu na lekturę powinny być dogłębnie przemyślane.

Czytać warto, bo to rozwija na różne sposoby (także językowe). A że powoli zbliżają się długie jesienne wieczory, to warto zaopatrzyć się w solidną biblioteczkę, która nie tylko będzie cieszyć nasze oko, ale i zapewni dostatek wiedzy.

Pozdrawiam i dziękuję - Jakub Rojek

Piszemy nie tylko artykuły na blogu, ale też aplikacje i dokumentację dla naszych klientów. Zobacz, z kim do tej pory współpracowaliśmy.

O autorze

Jakub Rojek

Główny programista i współwłaściciel Wilda Software, z wieloletnim doświadczeniem w tworzeniu i rozwoju oprogramowania, ale także w pisaniu tekstów na różnorakich blogach. Zaprawiony w boju analityk i architekt systemów IT. Jednocześnie absolwent Politechniki Poznańskiej i okazjonalny prowadzący zajęcia na tej uczelni. W wolnych chwilach oddaje się graniu w gry wideo (głównie w karcianki), czytaniu książek, oglądaniu futbolu amerykańskiego i e-sportu, odkrywaniu cięższej muzyki oraz wytykaniu innym błędów językowych.

Jakub Rojek