-
Tłumaczenie: Jacek Janusz
Tytuł oryginału: Think Like a Programmer: An Introduction to Creative Problem Solving
Seria/cykl wydawniczy: –
Wydawnictwo: Helion SA
Data wydania:
ISBN 978-83-246-7284-4 -
Wydanie: papierowe
Oprawa: miękka
Liczba stron:
Nauka programowania to w rzeczywistości nauka sposobu myślenia. Jako programista musisz biegle analizować problemy, dzielić je na części oraz starać się je rozwiązać w optymalny sposób. Składnia języka i środowisko programistyczne to podstawowe narzędzia, których obsługi może się nauczyć każdy. Jednak nie każdy potrafi myśleć jak programista.Dzięki tej książce masz szanse zostać profesjonalistą! W trakcie lektury poznasz najlepsze sposoby rozwiązywania problemów, opanujesz rekurencję i przekonasz się, że wcale nie jest ona taka straszna. Zobaczysz również, jak tworzyć kod nadający się do ponownego użycia, opanujesz zagadnienia z obszaru programowania obiektowego. Przykłady w tej książce zostały napisane w języku C++, ale nie stanowi to bariery, żeby przenieść te idee na inne języki programowania. Warto poświęcić tej książce parę wieczorów i zmienić swój sposób patrzenia na programowanie.www.helion.pl
Książki informatyczne są zazwyczaj nudne i głupie. Zwłaszcza te, które można spotkać nawet na półkach marketów. A że traktują czytelników jak głupców świadczą tytuły np. amerykańska seria „…. for Dummies” niedosłownie tłumaczona na polski jako „… dla opornych”. Można nawet posunąć się dalej w stwierdzeniu, że wielu użytkownikom są zbędne, bo po prostu opowiadają o korzystaniu z oprogramowania, które jest zwykle samo objaśniającym się i bystry użytkownik nie ma problemów z poznaniem kolejnego programu. Aby jednak czytelnik był bystry nie zawsze wystarczy młodość i inteligencja. Przydałyby się książki, które czytane za młodu dałyby wiedzę i umiejętności przydatne na lata.
Podobnie jak ma się to z książkami o użytkowaniu komputera i licznych programów tak też podręczniki programowania często sprowadzają się do encyklopedycznego potraktowania danego języka programowania. To może nie jest zbyt fascynujące, ale zazwyczaj niezbędne bowiem pomoc on-line dla języków programowania jest zazwyczaj mniej rozwinięta niż dla programów użytkowych. Twórca takiego podręcznika zazwyczaj ma dylemat czy założyć, że czytelnik posiada podstawowe umiejętności programowania czy też potraktować nauczanie tego języka potraktować jako okazję do nauczenia programowania w ogóle. W tej walce koncepcji często dochodzi do niezdrowych kompromisów.
Książka „Myśl jak programista” zakłada, że czytelnik zna język programowania C++ i umie z niego korzystać. Jednak chce pomóc czytelnikowi w rozwiązywaniu trudniejszych problemów jakie mogą stanąć przed programistą wymagając od niego nieschematycznego wykorzystania języka. W rozdziale zatytułowanym „strategie rozwiązywania problemów” omawia sposoby w jaki człowiek podchodzi do trudniejszych problemów umysłowych w ogóle. Wykorzystuje tu typowe łamigłówki jednak nawiązując przez analogie do problemów programistycznych i jak metody ich rozwiązywania wykorzystać w praktyce programistycznej. Rozdział „prawdziwe łamigłówki” jest już znacznie mocniej zakotwiczony w problemach prawdziwego programowanie, lecz nie wymaga szczegółowej znajomości języka C++. Tym niemniej wynikiem rozwiązywanych w nim zadań są kody programów w języku C++. Kolejne rozdziały dotyczą rozwiązywania problemów za pomocą typowych, nie tylko dla języka C++, ogólnych środków programistycznych takich jak: tablice, pamięć dynamiczna i wskaźniki, klasy, rekurencja, ponowne wykorzystanie kodu. Rozdział zatytułowany „Myślenie jak programista” stanowi podsumowanie dotychczasowych uczulając na to jak postępować by poprawnie rozwiązywać problemy z użyciem języka programowania. Zawiera ciekawy przykład takiego zaprogramowania gry „Wisielec” by zwiększyć szanse komputera w tej grze przez … oszukiwanie tj. pominięcie losowania odgadywanego wyrazu na początku i odwleczenie jego ustalenia aż do momentu kiedy użytkownik przegra, albo zada pytanie, na które będzie już tylko jedyna odpowiedź. Zaprogramowanie tego zagadnienia stanowi spore wyzwanie intelektualne dla programisty zmuszając go do twórczego myślenia i operowania specjalnie tworzonymi na ten użytek abstrakcyjnymi tworami.
Podsumowując uważam, że lektura „Myśl jak programista” to spore przeżycie intelektualne. Nie jest to bowiem ani encyklopedia języka programowania ani encyklopedia algorytmów, czyli gotowych lecz abstrakcyjnych rozwiązań do wykorzystania w dowolnym języku programowania. Ta książka próbuje nakłonić do myślenia i rozwiązywania problemów z jakimi może zetknąć się programista w dowolnym języku programowania. Uważam, że jest niezbędną lekturą dla każdego początkującego programisty wzbogacając jego warsztat intelektualny i dzięki temu jego wydajność w programowaniu.