Czy powinienem rozpocząć naukę programowania w Pythonie czy SICP? Powiedziałem mi, że SICP będzie dużo trudniejszy, ale na dłuższą metę zostanę znacznie lepszym programistą.


Najlepsza odpowiedź

Zdecydowanie użyj SICP, jeśli podejmiesz wyzwanie. Możesz korzystać z SICP, jeśli nie wiesz nic o programowaniu, ponieważ zaczyna się od podstawowych zasad, jednak wymaga trochę matematyki, nie dużo, ale trochę. Autorzy mają piękny, jasny język do opisywania pojęć i idei.

SICP podjąłem, gdy byłem już poza uniwersytetem i stwierdziłem, że jest to wciąż wielkie oświecenie. Mógłbym nawet powiedzieć, że jest to książka, która nauczyła mnie najwięcej ze wszystkich, które czytam, chociaż jeszcze jej nie skończyłem. Zalecam skonfigurowanie ćwiczeń SICP przy użyciu na przykład języka SICP firmy Racket.

Odpowiedź

Tak, zdecydowanie, zdecydowanie tak.

SICP nie jest książką o programowaniu komputerowym, ani też nie jest książką o inżynierii oprogramowania, OOP ani żadnym z innych gadżetów i bazgrołów. SICP dotyczy informatyki: rozumienia komputera jako abstrakcyjnej maszyny używanej do manipulowania informacjami.

W rozdziale pierwszym „zostałeś wprowadzony do Scheme, języka stworzonego przez jednego z autorów.” Pokazano ci, jak przepływ sterowania jest modyfikowany i zarządzany w dużym programie poprzez obliczenia w podprogramie AKA w środowisku zamkniętym leksykalnie. Książka poprowadzi Cię przez oba główne sposoby implementacji podprogramów oraz wyjaśnia wady i użyteczność obu.

W rozdziale drugim nauczysz się strukturyzowania danych i budowania nowych znaczeń surowych danych z istniejące typy danych. Pokazano ci siłę symbolicznej manipulacji w różnych miejscach, takich jak systemy algebry komputerowej i drzewa kodujące Huffmana.

Rozdział trzeci jest najbardziej podstawowym ze wszystkich rozdziałów. W rozdziale trzecim dowiesz się o przypisywaniu i sile zmienne mutujące. Poprzednie modele obliczeń omówione w tej książce zostały teraz radykalnie rozszerzone, aby uwzględnić zdolność języka do utrzymywania stanu i wpływania na niego.

W rozdziale czwartym zostajesz wprowadzony do jednego z najwspanialszych idee w historii informatyki: makro LISP i homoikoniczność programów Scheme. W przeciwieństwie do makr podstawień w C, makra LISP pozwalają na manipulowanie podstawową strukturą abstrakcyjnego drzewa składni programu w czasie wykonywania i pozwalają na implementację nowych paradygmatów programowania w LISP-ie.

Ostatni rozdział zajmuje zupełnie inne podejście i traktuje komputer jako maszynę rejestrującą. Pokazano wam, w jaki sposób kompilator LISP nie różni się od żadnego z programów schematu, które widzieliście, a następnie nawiązano do pojęcia uniwersalności. Wreszcie, „zostałeś przeprowadzony przez proces tworzenia prawdziwego kompilatora LISP-a.

Ta książka była niesamowita; zmieniła moje myślenie z informatyki, czyli mówienia komputerowi, jak drukować liczby na ekranie, na informatykę oznacza zrozumienie branży różnych abstrakcji i jak z nich właściwie korzystać.

tl; dr Absolutnie przeczytaj tę książkę. Jeśli ci się nie podoba, prawdopodobnie wygrałeś. ” ciesz się CS.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *