Od teraz "Zrozumieć programowanie" będzie jeszcze łatwiej. Recenzja książki Gynvaela Coldwinda
O programowaniu powstało już naprawdę mnóstwo książek, zarówno opisujących same języki programowania jak i masę frameworków czy metodyk tworzenia kodu. Generalnie literatury jest sporo i naprawdę jest w czym przebierać, niezależnie od interesującej nas technologii.
Natomiast w poniedziałek 27 października 2015 - premierę miała książka autorstwa Gynvaela Coldwinda pt. "Zrozumieć programowanie". W założeniu ma ona opisywać podstawowe zagadnienia dotyczące programowania z którymi programiści stykają się w codziennej pracy. Opisane przykłady omawiają często nawet najniższe warstwy środowiska wykonania, a zaprezentowane są z użyciem języków C, C++, Python oraz Java.
Książka została napisana w taki sposób, że wszystkie poruszone tematy i zagadnienia można odnieść do każdego innego języka programowania (opartego na paradygmacie obiektowym lub proceduralnym). Wszystko napisane lekkim, łatwym do przyswojenia językiem, ale o tym za chwilę...
Mała uwaga na początek:
Charakter wpisu oraz bloga jest w pełni osobisty. Zamieszczam tutaj prywatne opinie, komentarze, przemyślenia – za żadne z nich nie dostaję wynagrodzenia, a także innych korzyści. Zamieszczane wpisy są moją własną, prywatną inicjatywą.
Kilka słów o autorze...
Zanim przejdę do meritum wpisu, chciałbym przytoczyć sylwetkę autora książki. Gynvael Coldwind pracuje w Google Security Team jako Information Security Engineer. Jest to postać bardzo dobrze znana na polskiej (i nie tylko!) scenie bezpieczeństwa komputerowego, a także w środowiskach GameDev/RE (Reverse Engineering). Coldwind jest także kapitanem polskiego team'u "Dragon Sector" biorącego udział w rozgrywkach CTF (ang. Capture The Flag) osiągającego bardzo duże sukcesy m. in. 1-sze miejsce na świecie w 2014 roku.
Gynvael postanowił przelać swoje ponad dwudziestoletnie doświadczenie programistyczne na papier, dzięki czemu powstała książka "Zrozumieć programowanie", o czym informował na blogu. ..
...książka będzie nosić tytuł "Zrozumieć programowanie" i kieruje ją głównie do osób początkujących oraz średnio zaawansowanych programowaniem [...] Głównym moim celem jest aby po aktywnym (tj. z wykonaniem sugerowanych ćwiczeń/zadań) przeczytaniu książki czytelnik nabrał samodzielności w rozwiązywaniu problemów związanych z tworzeniem oprogramowania, potrafił poruszać się i analizować nieznany sobie kod bardzo dużych projektów, a także zyskał sporo praktycznej i szczegółowej wiedzy na tematy związane z różnymi składowymi programowania.
...można śmiało wywnioskować, że "Zrozumieć programowanie" to zestaw dobrych/polecanych w opinii autora praktyk przy programowaniu.
Swoją drogą Gynvaela miałem przyjemność poznać wirtualnie (m. in. na IRC-u), a także osobiście przy okazji różnych konferencji. Jego twórczość jest mi znana od 2010 roku (po wysłuchaniu prelekcji dt. Reverse Engineeringu ) i od tamtej pory na biężąco staram się czytać blog lub oglądać podcasty jego autorstwa.
"Zrozumieć programowanie"
Książka dostępna jest w księgarni PWN, aktualnie z 30% obniżką. Egzemplarze w tym momencie są dostępne w formie "przedsprzedaży" - także do 18 listopada 2015 można je kupić w cenie 48,30 zł (jednak warto mieć na uwadze, że wysyłka realizowana będzie od 19 listopada), a po tym czasie wróci do ceny 69,00zł (co dla mnie osobiście jest świetną ceną w kategorii "cena/jakość").
Zamieszanie związane z dostępnością i wysyłką książek po premierze ma związek z okresem przedsprzedaży, który ruszył 1 października. Natomiast 19 października okazało się, że zainteresowanie książką jest tak duże iż pierwotny (de facto raz rozszerzony) nakład rozszedł się w całości. Sam autor jak i wydawnictwo PWN nie spodziewali się takiego obrotu sytuacji. Natomiast efekt przedsprzedaży jedynie podkreśla bardzo dobrą renomę i popularność autora w środowisku programistów.
Książka "Zrozumieć programowanie", która przyszła do mnie dwa dni po premierze - to 623 stronicowa dawka naprawdę sporej wiedzy dt. programowania, systemów operacyjnych (m. in. z punktu widzenia ich działania) czy dobrych praktyk programowania.
Składa się ona z następujących części: (ich szczegółowy opis można znaleźć w tym wpisie )
Przedmowa (3 strony) Część I. Kilka codziennych czynności (29 stron) Część II. Podstawy (132 strony) Część III. Wykonywanie programu (107 stron) Część IV. Pliki i formaty danych (127 stron) Część V. Komunikacja (109 stron) + dodatkowa część: Programowanie dla zabawy (15 stron)
Przykładowe fragmenty książki:
Osobiście rozpoczynam już część II - natomiast po dotychczasowej lekturze + zaglądnięciu w kilka rozdziałów z innych części śmiało mogę powiedzieć, że:
- Książka - jak pisalem wcześniej - napisana jest lekkim i bardzo przyswajalnym językiem
- Omawiane zagadnienia są szczegółowo opisane, dodatkowo bogate są o uwagi/opinie/komentarze autora
- Po każdym rozdziale zamieszczono bibliografię, dzięki której temat można przyswoić w szerszym zakresie.
- Jest to prawdopodobnie pierwsza techniczna książka, którą przeczytam od deski do deski, a nie "z doskoku" ;p
- Jakość papieru nie jest najgorsza (tzn. nie rozrywa się przy byle pogięciu), okładka jest "pół twarda/pół miękka" i daje radę w plecaku ;-)
Zauważyłem także sporo pozytywnych ocen przy okazji rozmów na kanałach IRCowych. Generalnie jest bardzo pozytywny feedback i myślę, że problem z tym nadrukiem w wydawnctwie może się znowu pojawić ;p
Spotkania autorskie w listopadzie
Przy okazji recenzji warto wspomnieć o planowanych spotkaniach autorskich, które rozpoczynają się już w najbliższy weekend:
- 7 listopada - Warszawa (REJESTRACJA )
- 9 listopad - Kraków (REJESTRACJA )
- 19 listopad - Wrocław
Osobiście uda mi się wziąć udział w spotkaniu krakowskim. Z tego co wiem, to ma być do wygrania kilka egzemplarzy książki, a także prelekcja Gynvaela pt. "o książce, o programowaniu, o bezpieczeństwie" połączona z innymi prelekcjami w ramach Sekurak Hacking Party.
Dokładne informacje dotyczące spotkań są zamieszczone w tym wpisie.
Czy warto zaopatrzyć się w "Zrozumieć programowanie"?
Myślę, że warto. Każdy programista znajdzie tutaj coś dla siebie, co na pewno przyda mu się przy kolejnych wyzwaniach programistycznych. Dodatkowo jest to pozycja w której mamy opisane szerokie spektrum istotnych tematów m. in. architektura systemu, komunikacja TCP/IP, pliki i formaty danych etc. Osobiście nie mogę się doczekać aż przejdę do rozdziału z przykładem związanego z czatem P2P bazującym na protokole UDP :D
Tego typu przykłady tylko nadają książce smaczku, który mówiąc najprościej - pozytywnie odbije się na doświadczeniu i umiejętnościach programistycznych (oczywiście gdy po przestudiowaniu rozdziału, będziemy także bawić się z kodem tam zamieszczonym).