Sytuacja kobiet w IT w 2024 roku
29.03.20196 min
Rafał Kotusiewicz

Rafał KotusiewiczCo-OwnernexonIT

9 książek dla Junior Developera

Oto 9 książek dla Junior Developera, które pomogą Ci uporządkować wiedzę, zmotywują i ułatwią rozwój.

9 książek dla Junior Developera

Jesteś juniorem, zacząłeś właśnie swoją karierę, skończyłeś studia (bądź nie), jesteś pełen energii i zapału. Masz sporo wiedzy, ale jest ona trochę chaotyczna. Potrzebujesz jej uporządkowania, pomocy w odrzuceniu zbędnych i podkreśleniu istotnych informacji. Potrzebna Ci zapewne jeszcze dawka motywacji i dystansu oraz wskazówki wspomagające rozwój.

Ponad rok temu w tekście Co po studiach informatycznych napisałem kilka rad dla wstępujących na rynek pracy programistów (kandydatów na programistów). Wspominam tam o czytaniu książek. Zaproponowałem, byś czytał co najmniej jedną książkę miesięcznie (zawodową, czytaj także inne) i podrzuciłem kilka tytułów. Dziś chciałbym tę listę nieco rozbudować i zainspirować Cię do przeczytania konkretnych pozycji. Zaczynamy.

Lekcja programowania - R. Pike, B. Kernighan

Świetna i klasyczna już książka dla programistów. Myślę, że była ona inspiracją dla R. Martina, gdy zaczął pisać swój Czysty kod. Autorzy to prawdziwi hakerzy, w najlepszym znaczeniu tego słowa. Ich głównym środowiskiem w czasie pisania książki był język C i jakiś Unix. Naturalne jest więc, że przykłady i praktyki opisane w książce opierają się właśnie na nich. Nie ma to jednak znaczenia, bo pewne zasady są tak uniwersalne, że sprawdzają się w każdym środowisku i w każdym języku programowania.

Czysty kod - R. Martin

Jak wspomniałem w poprzednim akapicie, Czysty kod jest niejako rozwinięciem Lekcji programowania. Zawiera mnóstwo dodatkowych wskazówek i "listę kontrolną" dobrego (bądź słabego) kodu. "Językiem wykładowym" książki jest Java, ale mam nadzieję, że każdy programista jest w stanie odczytać bez problemu kod w niej napisany. Tym bardziej że R. Martin pisze bardzo elegancko i unika niepotrzebnych komplikacji.

Moim zdaniem jest to książka, którą programista powinien przeczytać co najmniej kilka razy. Najlepiej wracać do niej co 18 do 24 m-cy. I obserwować czy odnajduje się w niej coś nowego. Jeśli nie to mogą być dwa powody:

  1. już nic nie wnosi do bogatego warsztatu programisty (brawo!)
  2. programista przestaje się rozwijać (sygnał alarmowy)


Oczywiście to bardzo subiektywne spojrzenie na jej wartość. Czytam ją regularnie i wciąż dostrzegam coś ciekawego. Za każdym razem pojawia się jakiś impuls rozwojowy. Pozycja obowiązkowa!

Jak stać się lepszym programistą - P. Goodliffe

Książka podobna do poprzednich różni się jednak od nich tym, że niemal w ogóle pozbawiona jest kodu (jakiś tam jest, ale to naprawdę wyjątek). Porady autora są więc na wyższym poziomie. Opisuje kulturę pracy i współpracy. Na każdym poziomie. Z tej książki pochodzi jeden z moich ulubionych cytatów:

(...) jeśli kod jest wystarczająco ważny, aby go napisać, jest też na tyle istotny, aby go przetestować.

Bardzo polecam. To bogate źródło inspiracji. Jeśli jesteś młodym programistą (starszym także) i czujesz, że nie wiesz, w jaki sposób pokierować swoim rozwojem, aby zdobyć więcej wiedzy, umiejętności i budować swój warsztat, koniecznie sięgnij po tę pozycję.

Pragmatyczny programista - A. Hunt, D. Thomas

Nie możesz napisać doskonałego oprogramowania. - tymi słowami zaczyna się rozdział czwarty. Nie możesz - tylko Donald Knuth może (podobno program TeX, jego autorstwa, jest pozbawiony błędów). Ale umówmy się, Donald Knuth nie jest zwykłym programistą, jest raczej kimś w rodzaju "Architekta" z "Matrixa".

Wracając do książki - znowu mamy zestawione praktyki, którymi powinien prawie zawsze kierować się programista w swojej pracy. Praca Hunta i Thomasa podzielona jest na osiem części, które stają się motywami przewodnimi rad szczegółowych w nich zawartych. Jej ponadczasowość jest tak oczywista, że blisko 20 lat po pierwszym wydaniu wciąż sprawia wrażenie, jakby była napisana wczoraj.

Lektura obowiązkowa każdego poważnego programisty!

Hakerzy i malarze. Wielkie idee ery komputerów - P. Graham

O tej książce pisałem już rok temu. Jest to zbiór piętnastu esejów P. Graham, które publikował na swojej stronie. Dotyczą różnych spraw, ale nawet jeśli nie są bezpośrednio związane z programowaniem, to pisane są z punktu widzenia programisty. O ich wartości znowu świadczy ponadczasowość myśli i wniosków. Mimo, że napisane kilkanaście lat temu, wciąż są aktualne i czyta się je tak, jak w chwili pierwszej publikacji. Mój ulubiony cytat z książki dotyczy Lispu:

Fenomen polegający na tym, że język z lat pięćdziesiątych nie jest przestarzały, można najkrócej wyjaśnić w ten sposób, że nie był technologią, a matematyką, a matematyka się nie starzeje. Właściwym porównaniem dla Lispu nie jest sprzęt z lat pięćdziesiątych, a algorytm Quicksort, który został wynaleziony w 1960 roku i wciąż jest najszybszym algorytmem ogólnego zastosowania.

Innowatorzy - W. Isaacson

Dziwnie wyglądająca w tym zestawieniu książka Isaacsona (autora m.in. doskonałej biografii Steve'a Jobs'a), to prawdziwa perełka. Najbardziej przystępnie napisana historia rozwoju techniki, jaką czytałem. Ta dotyczy głównie rozwoju wszystkiego, co doprowadziło do aktualnego stanu branży IT.

Historia zaczyna się w XIX wieku. Isaacson ze swadą opisuje zmagania swoich bohaterów z życiem, matematyką, fizyką, problemami społecznymi, literaturą itd. Dzięki tej wspaniałej opowieści dowiesz się, gdzie cyklicznie urządzano wspólne kąpiele z “ziołem”, kto szukał inspiracji, wybierając się na długie przejażdżki kabrioletem oraz mnóstwo innych ciekawostek.

Przede wszystkim książka ta jest niekończącym się źródłem inspiracji i dlatego właśnie znalazła się w moim zestawieniu.

Struktura i interpretacja programów komputerowych - H. Abelson, G.J. Susman, J. Sussman

Pamiętam, że gdy pierwszy raz sięgnąłem po tę pozycję, to zdziwił mnie kod wewnątrz. Byłem młodym programistą z jakimś doświadczeniem w Perlu, C i Javie. To było moje pierwsze zetknięcie z kodem innym niż "C-style". Wszystkie przykłady w książce zapisane są w języku Scheme (dialekt Lispu). Początkowo wydawał mi się naprawdę dziwny. Ale myślę, że po około setce stron, stał się dla mnie naturalny. Jedyna niedogodność zniknęła (do tego stopnia, że dziś piszę o Lispie, Clojure i używam ich, gdy tylko mogę) i w rękach miałem - jak sądzę - jedną z najważniejszych książek w historii literatury informatycznej.

Bardzo zachęcam do zapoznania się z nią każdego programistę. Jest to nieocenione źródło dotyczące stylu i zasad programowania, w innym jednak znaczeniu niż wspomniane wcześniej Czysty kod, czy Pragmatyczny programista. Przede wszystkim pozwala  zrozumieć algorytmy, struktury danych i styl w oderwaniu od języka, ale jednocześnie osadzone w rzeczywistych problemach.

Algorytmy bez tajemnic - T. Cormen

Ta książka to pierwsze "mięcho" w moim zestawieniu. Wybrałem książkę Cormena spośród wielu innych opracowań tylko dlatego, że opisuje algorytmy w sposób bardzo abstrakcyjny, w zupełnym oderwaniu od jakiegokolwiek języka. To mniejsza wersja jego ogromnego dzieła Wprowadzenie do algorytmów, które napisał z innymi autorami.

Dlaczego to książka ważna dla juniora? Algorytmy wraz ze strukturami danych, to właściwie esencja programowania, a bardzo często widzę młodych programistów (i nie tylko młodych), którzy nie wiedząc o tym, że istnieją doskonałe i dobrze opisane rozwiązania ich codziennych problemów, wynajdują koło w każdy poniedziałek od nowa. Przyznam, że przeglądam każdą nową książką ze słowem "algorytmy" w tytule, żeby sprawdzić, czy nie przegapiłem jakichś nowych odkryć w tej dziedzinie. Jeśli jest coś nowego lub chociażby pojawia się świeże spojrzenie na stare rozwiązania - kupuję książkę, czytam i wrzucam do mojej “narzędziowej skrzynki".

Podsumowując - książkę Cormena trzeba poznać.

TDD. Sztuka tworzenia dobrego kodu - K. Beck

To malutka książeczka (około 200 stron) opisuje jedną z najważniejszych praktyk programistycznych. Miałem to szczęście, że już podczas studiów wdrażano nam na zajęciach praktyki TDD i XP, które wtedy były dość nowe. Dziś to już branżowy standard, który niestety w wielu miejscach wciąż nie jest stosowany.

TDD to zestaw praktyk, który wdrożony na wczesnym etapie kariery, staje się nawykiem, bez którego później nie wyobrażamy sobie pracy. Bardzo polecam. Przykłady w książce napisane są w Javie (mnóstwo kodu, który jest esencją książki), ale w sposób, który powinien być czytelny dla programistów nieznających tego języka. Dobrym ćwiczeniem możemy być przenoszenie przykładów do wykorzystywanego przez czytelnika języka.

<p>Loading...</p>