Baner z okładką książki Myśl jak programista i kreatywnie rozwiązuj problemy

Myśl jak programista i kreatywnie rozwiązuj problemy

Autor:  V. Anton Spraul
  • 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.

Kategorie wiekowe: ,
Wydawnictwo:
Format:
Wartość merytoryczna
Poziom edytorski
Atrakcyjność treści
OVERALL
Książka nie jest przeznaczona dla zupełnie początkujących adeptów programowania. Najpierw należy poznać język programowania C++ i samodzielnie zrealizować z jego użyciem co najmniej kilka programów. Zakres książki w pewnym stopniu odpowiada tradycyjnemu kursowi algorytmów i struktur danych, lecz nie prezentuje encyklopedycznego przeglądu znanych rozwiązań. W zamian za to stawia na samodzielność czytelnika, który z jej pomocą może nawet wiele algorytmów sam odkryć. Właśnie samodzielność w rozwiązywaniu problemów jest dla tego zawodu najważniejsza i dlatego ten podręcznik uważam za ważny i bardzo ciekawy w kształceniu programisty. Pomimo, że niełatwy poleciłbym go również uczniom szkół średnich aspirujących do osiągania sukcesów w Olimpiadzie Informatycznej.

Author

Wykłada informatykę na Politechnice Poznańskiej, ale interesują go również inne dziedziny wiedzy, zwłaszcza technicznej. Próbuje swoje wizje techniczne popularyzować umieszczając je w artykułach i opowiadaniach. Prowadzi bloga: Naukowa Informatyka Techniczna: www.naukowa.it oraz

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Skip to content