Willkommen
Kurz gesagt: Der Kurs Software-Engineering lehrt, wie man Code schreibt, der Änderungen übersteht: Entwurfsmuster, sauberer Code, Algorithmen, Threads, Sicherheit und Softwarearchitektur.
Problem
Du kennst die Sprache. Es reicht trotzdem nicht
Das Programm läuft. Dann werden es eine Million Bestellungen, und es braucht eine Minute. Ein Kollege fügt eine neue Zahlungsart hinzu und macht drei andere Stellen kaputt. Der Besucherzähler liegt manchmal ein paar Stück daneben, und niemand hat den Code angefasst. Jemand kommt mit einem einzigen Anführungszeichen im Namensfeld in ein fremdes Konto.
Keines davon ist ein Syntaxfehler. Der Compiler fängt sie nicht ab. Sie entstehen daraus, wie das Programm aufgebaut ist und was es mit den Daten macht, und sie sind in Java, C#, Python und JavaScript dieselben.
Die Idee
Was du lernst
- Entwurfsmuster. Lösungen für Probleme, die in jedem Projekt wiederkommen: wie du eine neue Zahlungsart hinzufügst, ohne die alten anzufassen. Und wann ein Muster zu viel ist.
- Sauberer Code und Refactoring. Wie du fremden Code liest, siehst, warum er sich schwer ändern lässt, und ihn in kleinen Schritten verbesserst, ohne ihn kaputt zu machen.
- Algorithmen und Komplexität. Das größte Modul, mit Untermodulen: Komplexität, Suchen, Sortieren, Rekursion, Datenstrukturen, Graphen, dynamische Programmierung, gierige Algorithmen, Techniken und ein Projekt am Ende.
- Nebenläufigkeit und Race Conditions. Warum zwei Threads Erhöhungen eines Zählers verlieren und wie du die Daten schützt.
- Sicherheit für Entwickler. Nicht vertrauenswürdige Eingaben, Passwörter, Sitzungen und CSRF, Tokens, Geheimnisse, Abhängigkeiten und Zufallszahlen.
- Softwarearchitektur. Wie ein ganzes System aufgebaut ist: Schichten, Module und Services, Ereignisse, APIs, Caching, Skalierung, und wie du festhältst, warum eine Variante gewählt wurde und nicht eine andere.
- Der Architekt bei der Arbeit. Eine Ergänzung für Lösungs- und Unternehmensarchitekten: von einem geschäftlichen Bedarf zu messbaren Anforderungen, Varianten mit ihren Kosten, einer Entscheidung und einer Migration ohne Ausfall.
Die Idee
Wie du hier lernst
Jede Lektion beginnt mit einem Problem in echtem Code, wie auf der ersten Karte. Dann wird die Idee mit einer Szene gezeigt, Zeile für Zeile mit dem Code synchronisiert: wie sich die Objekte bewegen, wie die Zahl der Schritte wächst, wie sich die Threads verzahnen. Danach kommen kleine Aufgaben und ein Test.
Der Text ist für die vier Sprachen derselbe. Der Code steht in der Sprache, die du oben über der Lektion bei „Code in:“ wählst, und du kannst sie jederzeit wechseln. Jedes Programm im Kurs wurde ausgeführt und geprüft.
Die Idee
Was du wissen musst
Aus der Sprache brauchst du mindestens die Module „Klassen und Objekte“ und „Collections“. Für die Nebenläufigkeit auch „Programme in der echten Welt“. Jedes Modul sagt an seinem Anfang, welche Lektionen der Sprache es nutzt.
Wenn dir etwas fehlt, steht die Kurskarte bei Java.Test