Měl bych se začít učit programovat pomocí Pythonu nebo SICP? Řekl jsem, že SICP bude mnohem těžší, ale že z dlouhodobého hlediska budu nakonec mnohem lepší programátor.


Nejlepší odpověď

Určitě použít SICP, pokud jste na tuto výzvu. SICP můžete stat, když nevíte vůbec nic o programování, protože vychází z prvních principů, vyžaduje však nějakou matematiku, ne hodně, ale některé. Autoři mají nádherně jasný jazyk pro popis konceptů a myšlenek.

Vybral jsem si SICP, když jsem už byl na univerzitě, a zjistil jsem, že je to stále ještě velmi osvícení. Dokonce bych mohl říci, že toto je ta kniha, která mě naučila nejvíce ze všech knih, které jsem četl, i když jsem ji ještě nedokončil. Doporučuji nastavení cvičení SICP získat například pomocí jazyka SICP Racket.

Odpověď

Ano, absolutně, rozhodně ano.

SICP není knihou o počítačovém programování, ani knihou o softwarovém inženýrství, OOP ani žádném z jiných gizmosů a doodadů. SICP je o počítačové vědě: chápání počítače jako abstraktního stroje používaného k manipulaci s informacemi.

V první kapitole jste představili Scheme, jazyk vytvořený jedním z autorů. Ukázali jste, jak tok řízení je upravován a řízen ve velkém programu výpočtem v lexikálně obsaženém prostředí AKA podprogramu. Kniha vás provede oběma hlavními způsoby, jak lze podprogramy implementovat, a vysvětlí nedostatky a užitečnost obou.

V kapitole dvě se dozvíte o strukturování dat a vytváření nových významů pro nezpracovaná data z pre- existující datové typy. Ukázali jste sílu symbolické manipulace na různých místech, jako jsou systémy počítačové algebry a Huffmanovy kódovací stromy.

Třetí kapitola je nejzásadnější ze všech kapitol. Ve třetí kapitole se dozvíte o přiřazení a síle mutující proměnné. Předchozí modely výpočtu diskutované v knize jsou nyní radikálně rozšířeny, aby vyhovovaly schopnosti jazyka udržovat a ovlivňovat stav.

Ve čtvrté kapitole jste představeni jednomu z nejskvělejších myšlenky v historii počítačové vědy: makro LISP a homoikonicita programů Scheme. Na rozdíl od substitučních maker C umožňují makra LISP manipulovat se základní strukturou abstraktního stromu syntaxe programu za běhu a umožňují implementovat nová programovací paradigmata do LISP.

Poslední kapitola zcela odlišný přístup a považuje počítač za registrační stroj. „Ukázali jste, jak se kompilátor LISP neliší od žádného z programů schématu, které jste viděli, a pak se zmiňoval pojem univerzálnosti. Nakonec jste prošli vytvořením skutečného kompilátoru LISP.

Tato kniha byla úžasná; změnila mé myšlení z počítačové vědy znamená říci počítači, jak tisknout čísla na obrazovce, počítačové vědy znamená porozumět obchodu odrůdy různých abstrakcí a jak je správně používat.

tl; dr Absolutně si přečtěte tuto knihu. Pokud se vám nelíbí, pravděpodobně jste vyhráli “ Užijte si CS.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *