Zum Inhalt
wannacode

Software-Engineering

Du kennst die Syntax, Klassen und Collections. Das Programm läuft. Dann kommen die echten Fragen: warum es mit einer Million Bestellungen eine Minute wartet, warum jede Änderung etwas anderes kaputtmacht, warum der Zähler manchmal falsch ist, wie jemand in ein Konto kommt, das ihm nicht gehört. Die Antworten stehen in keiner einzelnen Sprache, und sie gelten für alle. Um sie geht es in diesem Kurs.

  • Entwurfsmuster: bewährte Lösungen für Probleme, die in jedem Projekt wiederkommen, und wann man sie nicht einsetzt.
  • Sauberer Code und Refactoring: Code, den ein anderer Mensch (und du, einen Monat später) ohne Angst ändern kann.
  • Algorithmen und Komplexität: wie schnell die Arbeit mit den Daten wächst, Suchen, Sortieren, Datenstrukturen, Graphen, dynamische Programmierung.
  • Nebenläufigkeit und Race Conditions: wie zwei Threads die Daten des anderen verderben und wie du sie schützt.
  • Sicherheit für Entwickler: nicht vertrauenswürdige Eingaben, Passwörter, Sitzungen und CSRF, Tokens, Geheimnisse, Abhängigkeiten und Zufallszahlen.
  • Softwarearchitektur: Schichten, Module und Services, Ereignisse und Warteschlangen, API-Entwurf, Caching, Skalierung und festgehaltene Entscheidungen (ADR).
  • Der Architekt bei der Arbeit: eine Ergänzung für Lösungs- und Unternehmensarchitekten: messbare Anforderungen, Kompromisse, Ausfallsicherheit, Integration, Migration laufender Systeme, Architektur-Review und ein Projekt.

Jede Lektion beginnt bei einem Problem in echtem Code. Dann wird die Idee mit einer Szene gezeigt, die Zeile für Zeile mit dem Code synchron läuft: wie sich die Objekte bewegen, wie die Zahl der Schritte wächst, wie sich die Threads verzahnen. Der Text ist für die vier Sprachen derselbe, der Code steht in der Sprache, die du wählst, und jedes Programm wurde ausgeführt und geprüft. In jeder Lektion kannst du die Sprache wechseln.

Eine der vier Sprachen, mindestens bis „Klassen und Objekte“ und „Collections“. Für die Nebenläufigkeit auch „Programme in der echten Welt“. Jedes Modul sagt zu Beginn, welche Lektionen der Sprache es benutzt.

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·