Ocena:

Książka otrzymała w większości pozytywne recenzje za wciągający styl pisania i wnikliwą integrację pojęć matematycznych z programowaniem oprogramowania, szczególnie koncentrując się na algebrze abstrakcyjnej i jej historycznym znaczeniu. Niektórzy czytelnicy stwierdzili jednak, że brakuje w niej praktycznych wskazówek programistycznych i przykładów C++, co doprowadziło do mieszanych opinii w zależności od ich oczekiwań.
Zalety:⬤ Dobrze napisana i wciągająca narracja.
⬤ Skuteczne połączenie pojęć matematycznych z programowaniem, w szczególności programowaniem ogólnym.
⬤ Wnikliwy kontekst historyczny otaczający matematykę i jej ewolucję.
⬤ Ćwiczenia w całym tekście zwiększają płynność czytania.
⬤ Odwołuje się do szerokiego grona czytelników, od osób zainteresowanych matematyką po programistów poszukujących głębszego zrozumienia teorii.
⬤ Ograniczone praktyczne porady i przykłady dotyczące programowania, rozczarowujące dla tych, którzy szukają głębokich treści C++.
⬤ Niektóre recenzje zwracały uwagę na nadmierny nacisk na historię matematyki, a nie na programowanie.
⬤ Niektóre koncepcje matematyczne mogą być skomplikowane dla mniej doświadczonych czytelników.
⬤ Niektóre fragmenty wydawały się wymuszone lub niejasne w swoich powiązaniach z programowaniem.
(na podstawie 61 opinii czytelników)
From Mathematics to Generic Programming
W tej merytorycznej, ale przystępnej książce, pionierski projektant oprogramowania Alexander Stepanov i jego kolega Daniel Rose wyjaśniają zasady programowania ogólnego i matematyczną koncepcję abstrakcji, na której się opiera, pomagając pisać kod, który jest zarówno prostszy, jak i bardziej wydajny.
Jeśli jesteś w miarę biegłym programistą, który potrafi logicznie myśleć, to masz wszelkie podstawy, których będziesz potrzebować. Stepanov i Rose wprowadzają odpowiednią abstrakcyjną algebrę i teorię liczb z wyjątkową jasnością. Starannie wyjaśniają problemy, które najpierw musieli rozwiązać matematycy, a następnie pokazują, w jaki sposób te matematyczne rozwiązania przekładają się na ogólne programowanie i tworzenie bardziej efektywnego i eleganckiego kodu. Aby zademonstrować kluczową rolę, jaką te zasady matematyczne odgrywają w wielu nowoczesnych zastosowaniach, autorzy pokazują, jak wykorzystać te wyniki i uogólnione algorytmy do implementacji rzeczywistego kryptosystemu klucza publicznego.
Czytając tę książkę, opanujesz procesy myślowe niezbędne do efektywnego programowania i dowiesz się, jak uogólnić wąsko pojmowane algorytmy, aby poszerzyć ich użyteczność bez utraty wydajności. Zyskasz również głęboki wgląd w wartość matematyki w programowaniu - wgląd, który okaże się bezcenny bez względu na to, jakich języków programowania i paradygmatów używasz.
Dowiesz się o.
⬤ Jak uogólnić liczący cztery tysiące lat algorytm, demonstrując niezbędne lekcje na temat przejrzystości i wydajności.
⬤ Starożytne paradoksy, piękne twierdzenia i produktywne napięcie między ciągłym i dyskretnym.
⬤ Prosty algorytm znajdowania największego wspólnego dzielnika (GCD) i nowoczesne abstrakcje, które na nim bazują.
⬤ Potężne matematyczne podejścia do abstrakcji.
⬤ W jaki sposób algebra abstrakcyjna dostarcza idei leżącej u podstaw programowania ogólnego.
⬤ Aksjomaty, dowody, teorie i modele: wykorzystanie technik matematycznych do organizowania wiedzy o algorytmach i strukturach danych.
⬤ Zaskakujące subtelności prostych zadań programistycznych i to, czego można się z nich nauczyć.
⬤ Jak praktyczne implementacje mogą wykorzystać wiedzę teoretyczną.