🇩🇪 Deutsch | 🇬🇧 English
Ein projektbasierter Einsteigerkurs in JavaScript, geschrieben, um Kolleginnen und Kollegen, angehenden Azubis und allen anderen Interessierten die Grundlagen der Softwareentwicklung zu vermitteln. Er ist so gedacht, dass man ihn 1:1 weitergeben kann: den Link zu diesem Repository schicken, und alles Nötige für den Einstieg ist bereits da. Programmiererfahrung wird auf Seiten der Lernenden nicht vorausgesetzt. Jedes Kapitel baut auf dem vorherigen auf, und jedes Kapitel hat optionale Vertiefungen für alle, die mehr Herausforderung möchten.
Dieser Kurs existiert auf Deutsch und Englisch, gleichberechtigt nebeneinander: Jedes Kapitel liegt als zwei getrennte Dateien mit demselben Inhalt vor — lies, was dir leichter fällt, und wechsle jederzeit. Code und Code-Kommentare sind dagegen immer auf Englisch geschrieben. Das ist eine bewusste Entscheidung und zugleich eine reale Konvention: Professioneller Code wird unabhängig von der Teamsprache auf Englisch geschrieben, und daran gewöhnt man sich am besten von der ersten Zeile an.
Angefangen bei nichts als den Programmier-Grundlagen aus Kurs 1 zeigt der Abschnitt Kurse weiter unten zu jedem Kurs einen Screenshot dessen, was du tatsächlich baust — scroll durch und sieh zu, wie die Apps Kapitel für Kapitel spürbar mehr können.
Variante A — ganz ohne Werkzeuge, wenn du gerade erst anfängst:
- Geh zu https://github.com/ftrauernicht/javascript-course.
- Klick auf den grünen Code-Button → Download ZIP.
- Entpack die heruntergeladene ZIP-Datei irgendwo auf deinem Computer (Rechtsklick → Alle extrahieren unter Windows, oder Doppelklick unter Mac).
- Öffne den entpackten Ordner. Du hast jetzt alle Dateien, die dieser Kurs braucht.
Variante B — mit Git, falls du es bereits installiert hast:
git clone https://github.com/ftrauernicht/javascript-course.git
So oder so muss nichts installiert oder gebaut werden, und es braucht auch
keinen Server. Kurs 1 spielt sich komplett in der Browser-Konsole ab. Kurs 2
genauso — direkt in die Konsole eingetippt (eine optionale Herausforderung
gegen Ende lässt dich eine Referenzdatei einfügen). Der Taschenrechner aus
Kurs 3 läuft, indem du einfach seine index.html doppelklickst. Die
Ausnahmen sind Kurs 10 und
Kurs 11, die
Node.js installiert brauchen — das steht in beiden
gleich am Anfang. Los geht's bei
Kurs 1 – Basics, Kapitel 0.
Für Kurs 1 muss nichts installiert werden — nur ein Computer und ein aktueller Browser.
| Werkzeug | Wofür | Link |
|---|---|---|
| Ein Browser | Um die Entwicklerkonsole zu öffnen — unser erster "Code-Editor" | Google Chrome, Mozilla Firefox |
| Ein Texteditor | Für Kurs 3 (den GUI-Taschenrechner), um HTML-/CSS-/JS-Dateien zu schreiben | Visual Studio Code |
| Node.js | Für Kurs 10-11, um JavaScript außerhalb des Browsers auszuführen | nodejs.org |
Eine Schritt-für-Schritt-Anleitung (inklusive dem Öffnen der Konsole) steht in Kurs 1 – Basics, Kapitel 0.
Dieses Repository ist darauf angelegt, mit der Zeit mehr als einen Kurs zu
enthalten. Jeder bekommt unter courses/ seine eigene Nummer, in der
Reihenfolge, in der er entstanden ist — ein künftiger Kurs 12 landet also
unter courses/12-.../, direkt neben diesen elf, ohne sie anzufassen.
Kurs 1 ist die gemeinsame Grundlage, die jeder spätere Kurs voraussetzt. Kurs 2 bis Kurs 11 sind jeweils unabhängige, eigenständige Projekte, die nur Kurs 1 voraussetzen — keiner setzt einen der anderen voraus. Wähl, was dich mehr reizt, in welcher Reihenfolge du willst.
Nicht an ein bestimmtes Projekt gebunden — das gemeinsame Vokabular, das jeder spätere Kurs voraussetzt.
| # | Kapitel | Was du lernst |
|---|---|---|
| 0 | Einleitung & Werkzeuge | Die Browser-Konsole, ein Texteditor, wie dieser Kurs aufgebaut ist |
| 1 | Programmier-Grundlagen | Werte, Variablen, Operatoren, die drei Klammerarten, Funktionen, Bedingungen, Schleifen |
Setzt nur Kurs 1 voraus. Ein Taschenrechner, komplett in der Browser-Konsole gebaut — keine Dateien, keine Oberfläche.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Taschenrechner in der Konsole | Die Bausteine aus Kurs 1 zu einem echten Programm zusammensetzen — plus ein optionaler Klammer-Parser |
Setzt nur Kurs 1 voraus (nicht Kurs 2). Dieselbe Idee, mit einer echten, klickbaren Oberfläche.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Taschenrechner mit Oberfläche (GUI) | HTML-/CSS-/JS-Grundlagen, das DOM, Events und ein sanfter erster Schritt in Richtung OOP (Klassen) |
Setzt nur Kurs 1 voraus. Eine To-Do-Liste mit Hinzufügen/Abhaken/Entfernen und einem Daten-zu-HTML-Rendering-Muster, das weit über einen einzelnen Taschenrechner-Button hinausgeht.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | To-Do-Liste | Objektliterale, Arrays aus Objekten, Daten als HTML rendern, Persistenz mit localStorage |
Setzt nur Kurs 1 voraus. Rechnet Länge, Gewicht und Temperatur zwischen Einheiten um und gibt dir spürbar weniger fertigen Code zum Abtippen als frühere Kurse — der Punkt hier ist, die Umrechnungslogik selbst zu bauen, sobald du die Bausteine dafür hast.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Einheitenumrechner | Das Nachschlagetabellen-Muster, Elemente mit document.createElement bauen, eine Funktion verallgemeinern, indem man eine Annahme zu einem Parameter macht |
Setzt nur Kurs 1 voraus. Ein Multiple-Choice-Quiz mit Punktestand, Rückmeldung zu jeder Antwort und einem Ergebnisbildschirm — und gibt dir, wie Kurs 5, spürbar weniger fertigen Code als die frühesten Kurse.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Quiz | Klassen als Vorlagen für Objekte, eine Liste von Fragen modellieren, aus Daten neu rendern, ein Feature in kleine benannte Funktionen aufteilen |
Setzt nur Kurs 1 voraus. Ein Karten-Memory-Spiel mit gemischtem Raster, einer reinen CSS-Flip-Animation und verzögertem Zurückdrehen bei einem Fehlversuch.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Memory-Spiel | Spielzustand als Daten modellieren, der Fisher-Yates-Shuffle, setTimeout, CSS-Übergänge für einen Flip-Effekt |
Setzt nur Kurs 1 voraus. Ruft echtes, aktuelles Wetter für eine beliebige eingetippte Stadt ab — der erste Kurs, in dem dein Code mit einer echten, öffentlichen API spricht.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Wetter-App | Promises, async/await, fetch, try...catch, eine echte öffentliche API aufrufen |
Setzt nur Kurs 1 voraus. Erfasst Einnahmen und Ausgaben, mit Kontostand und einer Kategorie-Aufschlüsselung als reinem CSS-Balkendiagramm.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Budget-Tracker | .filter(...), .reduce(...), Object.keys(...), ein reines CSS-Diagramm, komplett aus Daten gesteuert |
Setzt nur Kurs 1 voraus. Baut einen kleinen Server mit Node.js und Express — der erste Kurs, in dem dein JavaScript komplett außerhalb eines Browsers läuft.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | REST-API | Node.js, npm, Express-Routing, HTTP-Methoden und Statuscodes, eine API mit curl testen |
Setzt nur Kurs 1 voraus. Verbindet zum ersten Mal ein Frontend und ein
Backend — eine Notizen-App mit einer echten SQLite-Datenbank dahinter,
statt Arbeitsspeicher oder localStorage.
| # | Kapitel | Was du lernst |
|---|---|---|
| 1 | Notizen-App | SQL (CREATE TABLE/SELECT/INSERT/UPDATE/DELETE), Nodes eingebautes node:sqlite, ein Frontend und eine API vom selben Express-Server ausliefern (kein CORS) |
Es kommen mit der Zeit weitere Kurse dazu; dieser Abschnitt wächst mit.
Sobald du Kurs 2 bis Kurs 11 abgeschlossen hast, findest du in PROJECT-IDEAS.de.md eine sortierte Liste dessen, was als Nächstes gebaut werden könnte — vom naheliegenden nächsten Schritt bis zu etwas wirklich Ambitioniertem. Sie liegt an der Wurzel des Repositories, nicht innerhalb eines einzelnen Kurses, weil jede dieser Ideen der Kurs 12 dieses Repositories werden könnte.
- Lies ein Kapitel von oben nach unten durch.
- Tippe die Beispiele selbst ab, statt sie nur zu kopieren — Abtippen baut das Muskelgedächtnis auf, Kopieren baut nur einen Scrollbalken.
- Jedes Kapitel hat einen Kernteil (🟢, notwendig, um weiterzumachen) und ein oder mehrere optionale Teile (🟡 solide Zusatzübung, 🔴 eine echte Herausforderung). Die optionalen Teile zu überspringen ist völlig in Ordnung — komm später zurück, wenn du magst.
- Innerhalb eines Kurses verwenden spätere Kapitel ausdrücklich Code aus früheren weiter. Über Kurse hinweg wird dagegen nichts außer Kurs 1 vorausgesetzt — Kurs 2 bis Kurs 11 bauen ihre jeweilige Logik bewusst von Grund auf neu, damit sich jeder davon in beliebiger Reihenfolge bearbeiten lässt.
- Links innerhalb eines Kapitels führen genau dort, wo ein neuer Begriff auftaucht, zur passenden Seite bei MDN Web Docs (dem Standard-Nachschlagewerk für JavaScript) — statt sie am Ende in einem Glossar zu sammeln. Ist ein Begriff unklar, ist der nächste Link dein Glossar.
PROJECT-IDEAS.md / .de.md Ideen dafür, was ein künftiger Kurs sein könnte
courses/
01-basics/ Kurs 1 — allgemein, an kein Projekt gebunden
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
02-calculator-console/ Kurs 2 — Taschenrechner, in der Konsole
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ Musterlösungen (calculate.js, bracket-parser.js)
03-calculator-gui/ Kurs 3 — Taschenrechner, mit GUI
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ der lauffähige GUI-Taschenrechner (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
04-todo-list/ Kurs 4 — To-Do-Liste
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ die lauffähige To-Do-Liste (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
05-unit-converter/ Kurs 5 — Einheitenumrechner
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ der lauffähige Einheitenumrechner (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
06-quiz/ Kurs 6 — Multiple-Choice-Quiz
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ das lauffähige Quiz (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
07-memory-game/ Kurs 7 — Memory-Spiel
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ das lauffähige Memory-Spiel (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
08-weather-app/ Kurs 8 — Wetter-App (fetch, async/await)
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ die lauffähige Wetter-App (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
09-budget-tracker/ Kurs 9 — Budget-Tracker
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ der lauffähige Budget-Tracker (index.html, style.css, script.js)
assets/ Screenshots aus dem Kapitel
10-rest-api/ Kurs 10 — REST-API mit Node.js + Express
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ der lauffähige Server (package.json, server.js) — kein assets/, keine GUI
11-notes-app/ Kurs 11 — Full-Stack-Notizen-App (Express + SQLite)
en/ Kapiteltexte, Englisch
de/ Kapiteltexte, Deutsch
code/ die lauffähige App (package.json, db.js, server.js, public/)
assets/ Screenshots aus dem Kapitel
12-.../ künftige Kurse, nach demselben Muster
Siehe CONTRIBUTING.md.






