PHP 7. Algorytmy i struktury danych, Mizanur Rahman

"PHP 7. Algorytmy i struktury danych" to nie jest książka dla każdego. To propozycja dla fachowców, którzy chcieliby wiedzieć więcej. Dlaczego to must have w biblioteczce każdego programisty?

Sufi Mohamed Mizanur Rahman to założyciel i prezes firmy PHP Family. Wcześniej nazywała się ona PHP Group of Industries. Sam Rahman jest właścicielem aż dwóch startupów technologicznych. Co ważne, jest on bardzo zaangażowany w życie społeczności związanych z programowaniem, takich jak Agile Bangladesh i Project Euler. Często bierze udział w wykładach i konferencjach. Nie boi się bezpośredniego kontaktu z miłośnikami PHP. Dzięki temu, że jest ekspertem w swoich fachu, napisał podręcznik „PHP 7. Algorytmy i struktury danych”. To książka, która może być wykorzystana jako podstawa do dalszego doskonalenia się w zawodzie programisty. Może też rozbudzić miłość do programowania.

Mizanur Rahman napisał swoją książkę, stylizując się na cierpliwego nauczyciela. Każdy rozdział poprzedzony jest wyjaśnieniem tematu. Jest to zrobione w sposób prosty i przystępny. Tak by osoba, która nie ma zbyt dużego doświadczenia w pracy z językiem programowania PHP była w stanie nadążać za materiałem. Przedstawione w książce przykłady są proste i zrozumiałe. Mało tego, są poparte bardzo prostymi, intuicyjnymi grafikami oraz fragmentami kodu. Czytelnik może na własne oczy zobaczyć, jak wygląda prawidłowo napisany kod oraz jak należy go interpretować. Ta książka to też dobra propozycja dla tych wszystkich, którzy myślą, że znają PHP – ale jeszcze nigdy nie znaleźli czasu na to, by się go nauczyć.

Obecnie, znajomość języka programowania PHP nie jest niezbędna do tworzenia własnych stron internetowych. Spokojnie można poradzić sobie bez niej. Tym bardziej że obecnie można projektować strony, korzystając z wygodnych i prostych kreatorów. Nawet laik może ich używać, by stworzyć stronę, która niczym nie różni się od strony wykonanej przez profesjonalistę. Jednakże znajomość języka PHP to dodatkowy atut, który można wykorzystać we własnej działalności gospodarczej. W końcu, wiedząc więcej, można być lepszym specjalistą. Ci, z kolei zarabiają więcej.

Autor „Algorytmów i struktur danych” zaczyna od przedstawienia podstawowych wiadomości, które powinien znać (i rozumieć) każdy programista. Pierwszy rozdział to wprowadzenie do algorytmów i struktur danych. Porusza wszystkie podstawowe informacje na temat ich znaczenia, różnych struktur oraz znaczeniu abstrakcyjnych typów danych. W tym samym rozdziale autor wyjaśnia również podstawowe pojęcia – tablica, struktura, kolejka, stos, zbiór, sterta, lista dwukierunkowa, graf… i wiele więcej. Bez znajomości tych pojęć nie można przystąpić do żadnej konkretnej nauki. Bo jak uczyć się o implementacji stosu, gdy nie bardzo wiadomo, czym jest stos? W następnym rozdziale autor porusza już bardziej zaawansowane tematy, które dotyczą zrozumienia tablic PHP. Dzięki nim każdy programista może zrozumieć jak używać tablic do elastycznego przechowywania danych oraz jak wykorzystywać je do reprezentowania struktur danych. Ważne jest też, by pamiętać, że wszystkie informacje oparte są na konkretnych przykładach. Pomaga to zrozumieć możliwości, jakie daje zdobywana wiedza.

Ważne miejsce w podręczniku zajmują listy – ich rodzaje, tworzenie oraz obsługa. Rahman wyjaśnia jak wstawiać węzły, jak je wyszukiwać i jak usuwać poszczególne węzły i jak je wstawiać.

Przejrzysta forma książki umożliwia korzystanie z niej bez nadwyrężania umysłu. Tym bardziej że każdy rozdział zakończony jest podsumowaniem. Autor ponownie umieszcza w nim najważniejsze informacje, jakie chciał przekazać. Jeszcze raz objaśnia, a w niektórych przypadkach urozmaica podsumowanie anegdotką lub dodatkowymi przykładami czy grafikami. To nie jest typowy podręcznik z suchymi faktami. „Algorytmy i struktury danych” to książka, z której faktycznie można się ich nauczyć. Wystarczy odrobina dobrej woli i zaangażowania w naukę, a z całą pewnością inwestycja w wiedzę się zwróci.

Podręcznik uczy też konstruowania stosów i kolejek. Cechą charakterystyczną kolejek jest to, że dane pobierane z początku są zapisywane na końcu kolejki (First In, First Out). Odróżnia to kolejki od list i stosów. W listach dane przenoszone są do przodu lub do tyłu (lub w obu kierunkach w przypadku list dwukierunkowych). Inaczej działa stos. Dane zapisywane są na szczycie wierzchołka i z niego są też pobierane. Nie wystarczy utworzyć listę, czy kolejkę trzeba jeszcze wiedzieć jak ją implementować. Wszystko to jest bardzo szczegółowo i konkretnie opisane przez Mizanura Rahmana. Nawet laik będzie w stanie zobaczyć różnicę pomiędzy tymi zbliżonymi przecież pojęciami. Ważne jest też, że będzie w stanie wyobrazić sobie i samodzielnie podać przykłady ich zastosowań.

Ważne jest również poznawanie przez programistę technik wyszukiwania. Najważniejsze z nich to wyszukiwanie binarne i liniowe. Binarne opiera się na metodzie „dziel i zwyciężaj”. Linearne wyszukiwanie to inaczej wyszukiwanie sekwencyjne. Jest to najprostsze dostępne wyszukiwanie, więc powinien znać je absolutnie każdy programista. Można też wyszukiwać interpolacyjne, wykładniczo, wszerz, w głąb, w drzewach i przy użyciu tablicy mieszającej. Oczywiście, wyszukiwanie na niewiele się zda bez umiejętności właściwej analizy uzyskanych danych.

Rahan opowiada także o włączaniu grafów do akcji i ich praktycznym wykorzystaniu. Porusza też niezwykle ważny temat obsługi algorytmów i struktur danych przez język PHP. Tak właściwie, pod wieloma względami jest to najważniejszy aspekt, dla którego warto znać ten język.

Ostatnim bardzo ważnym elementem poruszanym w książce są implementacje stosu, kolejki lub drzewa. W tym samym miejscu Rahman wyjaśnia jak pracować z biblioteką Tarasana i PECL.

Książkę zamyka bardzo rozbudowany skorowidz. Pozwala on na szybkie i skuteczne wyszukiwanie interesujących haseł. W końcu przedsiębiorca ma dość ograniczony czas i szkoda by tracił go na poszukiwania właściwych stron.

Książka „Algorytmy i struktury danych” nie jest może lekturą dla laików. Osoby, których programowanie nie interesuje, pewnie nie będą w stanie przebrnąć przez jej strony. Natomiast każdy, kto chciałby być profesjonalnym programistom lub do takiego miana aspiruje, z całą pewnością doceni tę pozycję.