Quick Facts:
- Autor: Daniel Shiffman
- Veröffentlichung: 3. September 2024 (zweite Edition)
- Umfang: ca. 500 Seiten
- Format: Online frei verfügbar + Printversion
- Zielgruppe: Programmierer, Artists
- Link: natureofcode.com
- ISBN-10: 1718503709
- ISBN-13: 978-1718503700
Worum geht es? #
Daniel Shiffman beschreibt sein Buch in der Einleitung wie folgt:
… exploring the unpredictable evolutionary and emergent properties of nature in software via the creative coding framework Processing …
Daniel Shiffman
Sinngemäß: Das Buch erforscht, wie emergente und evolutionäre Phänomene aus der Natur durch Code lebendig gemacht werden können – umgesetzt mit dem Creative-Coding-Framework Processing.
Konkret bedeutet das: Du lernst, wie Schwerkraft, Schwärme, Fraktale, zelluläre Automaten und andere natürliche Systeme programmiert werden.
Für wen ist das Buch? #
Ideal für:
- Creative Coder, die ihre Arbeiten mit echten Naturphänomenen anreichern möchten
- Entwickler, die Mathematik und Physik endlich verstehen statt nur auswendig lernen wollen
- Studierende, die generative Kunst, Simulationen oder Game-Physics interessant finden
- Alle, die bei The Coding Train auf YouTube hängengeblieben sind (über diesen Kanal wird es vermutlich nochmal einen separaten Empfehlungsartikel geben)
Du solltest mitbringen:
- Grundkenntnisse in JavaScript oder einer ähnlichen Programmiersprache
- Neugierde auf Mathematik und Physik (Vorkenntnisse nicht nötig!)
- Lust, Code auszuprobieren und zu experimentieren
Eher nicht geeignet, wenn:
- Du noch nie programmiert hast
- Du trockene, akademische Lehrbücher bevorzugst
Was behandelt das Buch? #
The Nature of Code ist in elf Kapitel gegliedert, die aufeinander aufbauen, aber auch einzeln gelesen werden können.
Teil 1 - Unbelebte Objekte #
0 - Zufall - Verschieden Arten von Zufall
1 - Vektoren – Die Grundlage für Bewegung und Position im Raum
2 - Kräfte – Gravitation, Reibung, Wind und wie Objekte darauf reagieren
3 - Oszillation – Pendel, Wellen und trigonometrische Bewegungen
4 - Partikelsysteme – Feuer, Rauch, Regen und andere Effekte
Teil 2 - Es lebt #
5 - Autonome Agenten – Wie Objekte Entscheidungen treffen und sich verhalten
6 - Physik-Engines – Integration von Box2D für realistische Kollisionen
7 - Zelluläre Automaten – Conway’s Game of Life und ähnliche Systeme
8 - Fraktale – Selbstähnliche Muster und rekursive Strukturen
Teil 3 - Intelligenz #
9 - Evolutionäre Algorithmen – Genetische Algorithmen und künstliche Selektion
10 - Neuronale Netze – Grundlagen von Machine Learning
11 - Neuroevolution - Wie neuronale Netze durch Evolution lernen
Jedes Kapitel erklärt die mathematischen Grundlagen, zeigt lauffähigen Code (in p5.js/JavaScript) und bietet Übungen zum Experimentieren. Alle Beispiele sind online interaktiv verfügbar.
Warum lohnt sich das Buch? #
Drei Gründe, warum ich dieses Buch jedem empfehle:
1. Es verändert, wie du Mathematik siehst
Plötzlich sind Vektoren keine abstrakten Pfeile mehr, sondern Bewegung. Sinus und Cosinus werden zu Wellen. Matrizen zu Transformationen. Du verstehst statt nur anzuwenden.
2. Daniel Shiffman ist ein Ausnahme-Lehrer
Seine Begeisterung ist ansteckend. Er erklärt nicht nur was, sondern warum. Jedes Kapitel fühlt sich an wie eine spannende Entdeckungsreise, nicht wie trockener Unterricht.
3. Es ist ein Türöffner
Die Techniken aus dem Buch brauchst du überall: Spieleentwicklung, Datenvisualisierung, Simulationen, generative Kunst, Machine Learning. Es ist eine Investition, die sich vielfach auszahlt.
Zusatz: Es kostet nichts, alle Beispiele sind interaktiv, und die Community ist riesig und hilfsbereit.
Wie liest man es am besten? #
Daniel Shiffman gibt in der Einleitung eine klare Empfehlung. Behandle das Buch wie einen Lehrplan und arbeite es über mehrere Wochen hinweg durch.
Besondere Betonung liegt auf durcharbeiten, nicht nur lesen! Die Code Beispiele solltest du abtippen, erweitern und damit experimentieren.
Manche Kapitel schaffst du locker in einer Woche, für andere solltest du dir mehr Zeit lassen – je nachdem, wie tief du einsteigen möchtest.
Zum Programmieren nutzt du am besten den Browser und p5.js.
Wenn du zusätzlich Videos zum Lernen möchtest, kannst du dir Daniels Kanal The Coding Train auf Youtube anschauen. Hier gibt es alle Kapitel nochmal in Videoform und viele Erweiterungen zu den einzelnen Themen.
Verfügbarkeit #
Das Buch ist online kostenlos verfügbar direkt auf der Seite von The Nature of Code oder zum selbst erstellen unter Github.
Zudem kann man es als Printausgabe bestellen. Ich habe meine Version beispielsweise bei Thalia bestellt.
Es ist außerdem bei no starch press erhältlich, in Deutschland allerdings nicht versandkostenfrei.
Persönliches Highlight #
Mein persönliches Highlight, ist das Kapitel 9 über die evolutionären Systeme. Es zeigt, wie man mit relativ wenig Code sehr mächtige und intelligent wirkende Programme realisieren kann.
Außerdem ist die Art und Weise wie Daniel das Wissen vermittelt einmalig. Man spürt wie viel Spaß ihm die Materie aber auch das Unterrichten macht.
Zum Schluss #
The Nature of Code ist ein Buch, das man nicht einfach liest, sondern man erlebt es. Jedes Kapitel öffnet neue Türen und zeigt, wie viel Schönheit in Mathematik und Code steckt.
Dinge die nach Chaos aussehen, können einfachen Regeln folgen und genau das macht die Faszination für dieses Buch aus.
Mein Tipp für den Einstieg:
- Lies Kapitel 1-3 der Reihe nach, für die wichtigsten Grundlagen
- Spring dann zu den Themen, die dich am meisten interessieren
- Experimentiere und baue eigene Projekte
Hinter Daniel Shiffman steht eine große, freundliche und hilfsbereite Community, also trau dich ruhig Fragen zu stellen.
Ich wünsche dir viel Freude beim Programmieren, ich hatte und habe sie noch heute mit dem Buch.
Quellenangaben #
- Vorschaubild: freepik
- Zitat “Worum geht es?”: The Nature of Code