Wybaczcie, że znów zacznę od wspominków, lecz dzisiejszy temat (oraz upał; tak, to z pewnością sprawka tej obłędnej temperatury) sprawił, że zebrało mi się na sentymenty. Bzzt, maszyna czasu przenosi mnie o cztery dekady wstecz i widzę niepozorną prostokątną bryłę z klawiszami oraz dumnym napisem „Unipolbrit”, na którą pada zielonkawa poświata z monochromatycznego monitora kineskopowego. Obok leży magazyn „Bajtek”, a z grubsza dziesięcioletni ja pracowicie przeklepuje zamieszczony w nim kod programu „Kubuś Literka”.

O nie, to oczywiście nie tak, że ów stary klon ZX Spectrum nie służył mi przede wszystkim do absolutnie najważniejszej rzeczy, do jakiej nadawał się komputer, czyli do grania. Ale gdy już zestrzeliłem wszystko w JetPacu i poległem po raz enty w którejś komnacie Manic Minera z soczystym „motyla noga!” na ustach, zaciekawiło mnie to, co mogę „kazać” komputerowi zrobić w jego tajemniczym języku. Tylko jak poznać ten język? „Bajtek” i zamieszczane w nim programy oraz wyjaśnienia były dla mnie pierwszym zetknięciem z programowaniem, podobnie zresztą jak dla wielu osób z mojego pokolenia. No właśnie, pierwszym – a jak mogłem zrobić drugi krok bez YouTube’a, tutoriali w internecie (w jakim internecie?!) i bez książek? Całkiem inaczej niż dziś, gdy możemy przebierać w pozycjach obiecujących, że w dwa tygodnie opanujemy C albo kilka innych literek, wtedy problem nie polegał na dokonaniu wyboru; pytanie brzmiało raczej: „Jak znaleźć jakąkolwiek książkę do programowania?”. Gdy wreszcie jakimś cudem udało mi się zdobyć sfatygowane i bardzo niewyraźne ksero podręcznika języka Basic, najpierw byłem wniebowzięty, ale owo „najpierw” nie trwało długo. W odróżnieniu bowiem od bajtkowych programów, które pozwalały szybko osiągać ciekawe efekty, tu miałem do czynienia z wyjaśnieniami działania poszczególnych instrukcji – owszem, przydatnymi, ale pozbawionymi efektu wow.
 

Niech będzie wciągająca

Tak oto dotarłem do jednego z najważniejszych z mojej perspektywy czynników, które decydują o wyborze pierwszej książki do nauki programowania w jakimś języku. Może nieco paradoksalnie chodzi o to, by książka zachęcała do… odkładania jej. Odkładania po to, by zasiąść do klawiatury i wypróbować to, o czym się właśnie przeczytało. Czy w trakcie lektury książki o suchej teorii algorytmów początkujący będzie co rusz zrywał się do komputera, by pokodować? „Bardzo mocno w to nie sądzę” – jak zapewne powiedziałaby moja przyjaciółka. Kupno takiej książki na start to prosta droga do tego, by rzucić kodowanie w kąt przed upływem tygodnia. Początkujący potrzebuje czegoś, co od razu da namacalny rezultat. „Są takie książki?” – zapytasz być może. Każdy z nas myśli nieco inaczej i co innego motywuje go do działania, lecz bez wątpienia istnieją. Aby nie być gołosłownym, kilka lat temu miałem przyjemność pracować nad przekładem książki Jona Ducketta PHP i MySQL. Aplikacje internetowe po stronie serwera. Przyznam, że nie mam pojęcia, czy więcej czasu zajmowało mi tłumaczenie, czy dłubanie w kodzie i eksperymentowanie z opisanymi przez autora projektami. Jakże to się różniło od starego podręcznika do Basica sprzed lat! Po raz kolejny przekonałem się, że dobre publikacje nie ograniczają się do prezentowania składni języka (ziew!), tylko pokazują sposób myślenia programisty. Kuszą estetycznymi i pomysłowymi przykładami, które aż chce się wypróbować. Tłumaczą, dlaczego jakieś rozwiązanie działa i kiedy warto z niego skorzystać.
 

Niech będzie aktualna

Klasyka literatury pięknej właściwie się nie starzeje. Z książkami o programowaniu jest niestety zupełnie inaczej. W świecie technologii tom wydany pięć lat temu może w najlepszym razie zmuszać do samodzielnego aktualizowania przykładów (bo języki programowania ewoluują), a w najgorszym być prawie bezużytecznym zabytkiem. Warto zatem zwracać uwagę na termin przydatności do lektury… Oczywiście nie oznacza to, że każda starsza książka jest zła. Świetnie napisane rozdziały o algorytmach, strukturach danych czy dobrych praktykach zachowują wartość przez lata. Jeśli jednak uczymy się konkretnego języka, frameworka czy biblioteki, świeżość wydania ma ogromne znaczenie.
 

Niech będzie przystępna

Warto też zapoznać się ze stylem autora. Czytając, nie powinniśmy odnosić wrażenia, że odgradza się od nas murem erudycji i wiedzy albo akademickiego żargonu. Na pozycje cięższego kalibru przyjdzie czas, gdy pasja programowania będzie płonąć wystarczająco silnym płomieniem, by strawić zagadnienia bardziej skomplikowane i przedstawione w trudniejszej formie. Ponieważ w większości przypadków mamy dostęp do darmowych fragmentów książek w wersji elektronicznej, nietrudno jest zrobić przed zakupem mały rekonesans i sprawdzić, czy autorowi bardziej zależy na nauczeniu nas czegoś, czy na pokazaniu, że sam to umie.
 

Niech zatem będzie wciągająca, aktualna i przystępna (prawda, że to całkiem spory przeskok od „niech będzie jakakolwiek!” sprzed kilkudziesięciu lat?); niech zachęca do samodzielnej pracy, bo tak jak niełatwo jest schudnąć od samego patrzenia na treningi, tak programowania nie da się nauczyć, jedynie wertując kartki choćby najlepszego podręcznika. Mnie w ten fascynujący świat wprowadził „Kubuś Literka”. A kto wprowadzi ciebie?