Ocena:

Książka „50 algorytmów, które powinien znać każdy programista” autorstwa Imrana Ahmada jest chwalona za kompleksowe omówienie algorytmów, ze szczególnym uwzględnieniem uczenia maszynowego i sztucznej inteligencji. Przeznaczona jest zarówno dla początkujących, jak i doświadczonych programistów, zapewniając jasne wyjaśnienia, przykłady w języku Python i praktyczne zastosowania. Podczas gdy wielu recenzentów chwali jej strukturę i przejrzystość, niektórzy wyrażają obawy co do jej obszerności, wspominając o kwestiach edycyjnych i braku głębi w niektórych obszarach.
Zalety:⬤ Kompleksowe omówienie algorytmów, w tym podstawowych pojęć, uczenia maszynowego i sztucznej inteligencji.
⬤ Przejrzyste wyjaśnienia i praktyczne przykłady w Pythonie sprawiają, że złożone tematy są przystępne.
⬤ Odpowiednia zarówno dla początkujących, jak i doświadczonych programistów.
⬤ Dobrze zorganizowana struktura pozwala na łatwą nawigację do konkretnych tematów.
⬤ Wciągający styl pisania, który upraszcza pojęcia matematyczne.
⬤ Obejmuje rzeczywiste aplikacje, zwiększając przydatność do nauki.
⬤ Wykorzystanie platform chmurowych, takich jak Google Colab, do łatwego wykonywania kodu.
⬤ Pewne problemy z edycją, w tym brakujące odniesienia do kodu w tekście.
⬤ Niektóre algorytmy, takie jak quicksort i mergesort, nie są szczegółowo omówione, podczas gdy mniej używane mogą być bardziej skoncentrowane.
⬤ Mieszane uczucia co do włączenia szerokiego zakresu tematów bez wystarczającej głębi w każdym z nich.
⬤ Powinien zakładać pewien poziom wcześniejszej wiedzy z zakresu programowania i matematyki, co może nie być odpowiednie dla zupełnie początkujących.
(na podstawie 42 opinii czytelników)
50 Algorithms Every Programmer Should Know - Second Edition: An unbeatable arsenal of algorithmic solutions for real-world problems
Rozwiązuj klasyczne problemy informatyczne, od podstawowych algorytmów, takich jak sortowanie i wyszukiwanie, po nowoczesne algorytmy uczenia maszynowego i kryptografii
Kluczowe cechy:
⬤ Dyskusja na temat zaawansowanych architektur głębokiego uczenia.
⬤ Nowe rozdziały na temat modeli sekwencyjnych wyjaśniające nowoczesne techniki głębokiego uczenia, takie jak LSTM, GRU i RNN oraz duże modele językowe (LLM).
⬤ Nowsze tematy, takie jak sposoby radzenia sobie z ukrytą stronniczością w danych i wyjaśnialność algorytmów.
⬤ Zapoznaj się z różnymi algorytmami programowania i wybierz odpowiednie struktury danych do ich optymalnej implementacji.
Opis książki:
Umiejętność wykorzystywania algorytmów do rozwiązywania rzeczywistych problemów jest niezbędną umiejętnością każdego programisty. Ta książka pomoże ci nie tylko rozwinąć umiejętności wyboru i wykorzystania algorytmu do rozwiązywania problemów w świecie rzeczywistym poprzez zrozumienie jego działania.
Zaczniesz od wprowadzenia do algorytmów i odkryjesz różne techniki projektowania algorytmów, a następnie zbadasz, jak wdrożyć różne typy algorytmów za pomocą praktycznych przykładów. W miarę postępów poznasz programowanie liniowe, ranking stron i wykresy, a nawet będziesz pracować z algorytmami uczenia maszynowego, aby zrozumieć matematykę i logikę stojącą za nimi.
Studia przypadków pokażą ci, jak optymalnie zastosować te algorytmy, zanim skupisz się na algorytmach głębokiego uczenia się i poznasz różne typy modeli głębokiego uczenia się wraz z ich praktycznym zastosowaniem.
Poznasz również nowoczesne modele sekwencyjne i ich warianty, algorytmy, metodologie i architektury wykorzystywane do implementacji dużych modeli językowych (LLM), takich jak ChatGPT.
Wreszcie, będziesz dobrze zorientowany w technikach, które umożliwiają przetwarzanie równoległe, dając ci możliwość wykorzystania tych algorytmów do zadań wymagających dużej mocy obliczeniowej.
Pod koniec tej książki programistycznej, staniesz się biegły w rozwiązywaniu rzeczywistych problemów obliczeniowych przy użyciu szerokiej gamy algorytmów.
Czego się nauczysz:
⬤ Projektować algorytmy do rozwiązywania złożonych problemów.
⬤ Zapoznać się z sieciami neuronowymi i technikami głębokiego uczenia.
⬤ Badanie istniejących struktur danych i algorytmów dostępnych w bibliotekach Pythona.
⬤ Implementacja algorytmów grafowych do wykrywania oszustw przy użyciu analizy sieciowej.
⬤ Praca z algorytmami uczenia maszynowego w celu grupowania podobnych tweetów i przetwarzania danych z Twittera w czasie rzeczywistym.
⬤ Stworzenie silnika rekomendacji sugerującego subskrybentom odpowiednie filmy.
⬤ Wdrożenie niezawodnych zabezpieczeń przy użyciu szyfrowania symetrycznego i asymetrycznego na Google Cloud Platform.
Dla kogo jest ta książka:
Ta książka informatyczna jest przeznaczona dla programistów lub deweloperów, którzy chcą zrozumieć wykorzystanie algorytmów do rozwiązywania problemów i pisania wydajnego kodu.
Niezależnie od tego, czy jesteś początkującym, który chce nauczyć się najczęściej używanych algorytmów w zwięzły sposób, czy doświadczonym programistą, który chce poznać najnowocześniejsze algorytmy w nauce o danych, uczeniu maszynowym i kryptografii, ta książka będzie dla Ciebie przydatna.
Doświadczenie w programowaniu w Pythonie jest niezbędne, a wiedza z zakresu nauki o danych będzie pomocna, ale nie konieczna.