00:00:00Wisst ihr, was noch frustrierender ist, als ein Projekt zu bauen? Nicht zu wissen, was man bauen soll.
00:00:04An einem gewissen Punkt deiner Reise als Entwickler erreichst du diese seltsame Phase.
00:00:08Noch eine CRUD-App mit einem JavaScript-Framework zu bauen, fühlt sich langweilig an,
00:00:11aber ein Betriebssystem von Grund auf zu entwickeln, scheint unmöglich. Du steckst in der Mitte fest.
00:00:16Du willst es nicht zu einfach, aber auch nicht unmöglich. Du willst einfach etwas Sinnvolles.
00:00:21Etwas, das dich genug herausfordert, um dich weiterzubringen, aber nicht so überwältigend ist, dass du aufgibst.
00:00:26Glaub mir, ich kenne das. In diesem Video zeige ich dir deshalb einige wirklich großartige Projektideen.
00:00:32Ich habe diese in drei Stufen unterteilt. Stufe eins: Grundlagen schaffen. Stufe zwei: Speicherung,
00:00:38Datenbanken und Datensysteme. Und Stufe drei: Fortgeschrittene Systeme und Interna.
00:00:44Wenn du diese Projekte baust, wirst du nicht nur besser im Coden. Du fängst an, wie ein Ingenieur zu denken.
00:00:49Fangen wir mit Stufe eins an. Das erste Projekt ist der Bau eines eigenen HTTP-Servers von Grund auf.
00:00:55Wenn du das hier siehst, weißt du wahrscheinlich, was ein HTTP-Server ist. Jedes Mal, wenn du
00:01:01eine Website öffnest oder eine API aufrufst, findet im Hintergrund ein Request-Response-Zyklus statt.
00:01:06Aber bisher hast du damit nur über Frameworks wie Express interagiert. Der Bau eines eigenen Mini-HTTP-Servers
00:01:12zwingt dich zu verstehen, was darunter wirklich passiert. Du lernst, wie TCP-Sockets Daten senden
00:01:19und empfangen, wie HTTP-Requests geparst werden, wie Antworten formatiert sind und wie mehrere
00:01:25Anfragen gleichzeitig verarbeitet werden. Falls du dich jetzt schon davon überwältigt fühlst,
00:01:30wie du diese Projekte angehen sollst, habe ich am Ende des Videos eine kleine Lösung für dich. Verpass das nicht.
00:01:35Kommen wir zum zweiten Projekt: Baue deine eigene Shell. Du hast Befehle wie cd, ls oder pwd
00:01:40schon hunderte Male benutzt. Aber hast du jemals darüber nachgedacht, was diese Befehle eigentlich verarbeitet?
00:01:46Wenn du deine eigene Shell baust, erschaffst du dieses System selbst. Du lernst Dinge wie das
00:01:52Einlesen und Parsen von Benutzereingaben, das Ausführen von Prozessen und Systemaufrufen sowie
00:01:58Konzepte auf Betriebssystemebene. Indem du deine eigene Shell von Grund auf baust,
00:02:04verstehst du Computer auf einer tiefen Ebene. Jetzt wird es richtig interessant. Schauen wir uns Stufe zwei an.
00:02:09Das erste Projekt hier ist der Bau deines eigenen Redis. Redis ist ein In-Memory-Datenspeicher,
00:02:15der als Cache, Datenbank, Message Broker und mehr dient. Er ist unglaublich schnell. Aber erst,
00:02:21wenn du selbst einen baust, verstehst du wirklich, warum. Bei der Implementierung deines eigenen Redis-Klons
00:02:26lernst du, wie In-Memory-Datenstrukturen funktionieren. Du implementierst grundlegende Redis-Befehle,
00:02:32verstehst das Redis-Protokoll und verwaltest mehrere Client-Verbindungen effizient über Event-Loops.
00:02:38Das sind nur einige Highlights. Es gibt noch viel mehr zu lernen, sobald du damit anfängst.
00:02:43Du wirst merken, dass Software-Engineering mehr ist, als nur CRUD-Anwendungen zu schreiben.
00:02:48Das nächste Projekt ist der Bau deines eigenen Git. Du benutzt Git jeden Tag, aber weißt du,
00:02:54wie es wirklich funktioniert? Wenn du selbst ein vereinfachtes Versionskontrollsystem baust, macht es klick.
00:03:00Du verstehst, wie Commits intern gespeichert werden, implementierst Hashing und inhaltsadressierbaren Speicher
00:03:05und organisierst Datei-Snapshots in Commit-Trees. Und es gibt noch so viel mehr zu lernen.
00:03:11Das Tolle daran, alles selbst zu bauen, ist, dass du es genau so anpassen kannst, wie du es willst.
00:03:16Schließlich ist unser drittes Projekt der Bau einer eigenen SQLite-Datenbank. SQLite ist eine
00:03:22serverlose Datenbank-Engine, die alles in einer einzigen Datei speichert. Anders als MySQL oder Postgres
00:03:29gibt es keinen separaten Serverprozess. Sie ist leichtgewichtig, aber extrem leistungsstark. Wenn du deine
00:03:34eigene Version baust, verstehst du, wie Daten mittels B-Bäumen organisiert werden. Du wirst einfache
00:03:39Abfragen parsen und ausführen und Indizierung für schnelleren Abruf implementieren. Als Entwickler
00:03:45kommt man an Datenbanken nicht vorbei. Aber wer versteht, wie sie intern arbeiten, gehört zur Elite.
00:03:52In Stufe drei gehen wir noch tiefer. Das erste Projekt hier ist der Bau deiner eigenen Mini-Programmiersprache.
00:03:58Ja, deine eigene Sprache. Du erschaffst etwas, das Code liest, versteht und Anweisungen ausführt.
00:04:04Auch wenn das einschüchternd klingt, ist es eines der lohnendsten Projekte, die man bauen kann.
00:04:10Du lernst und implementierst Dinge wie Lexer, Parser und abstrakte Syntaxbäume. Vor allem aber
00:04:17verstehst du, wie Interpreter und Compiler wirklich funktionieren. Das ist ein großartiges Projekt, weil du
00:04:22endlich begreifst, wie wir mit Computern kommunizieren. Und du kannst damit angeben, eine eigene Sprache
00:04:27erschaffen zu haben, die du nennen kannst, wie du willst. Das zweite Projekt ist ein eigener BitTorrent-Client.
00:04:32Hier kommen verteilte Systeme ins Spiel. BitTorrent ist ein Peer-to-Peer-System zum Filesharing,
00:04:38bei dem Nutzer Dateistücke von vielen Peers statt von einem einzelnen Server herunterladen.
00:04:44Dabei implementierst du Peer-Discovery, verwaltest Verbindungen zwischen Knoten, unterteilst Dateien,
00:04:50stellst die Dateiintegrität sicher und händelst verteilte Kommunikation. Das ist kein einfaches Projekt.
00:04:57Sicher hast du kaum die Hälfte von dem verstanden, was ich gerade gesagt habe. Aber es lehrt dich,
00:05:02wie riesige verteilte Systeme funktionieren. Und schließlich: Baue deinen eigenen Coding-Assistenten,
00:05:08ähnlich wie Claude Code. Moderne KI-Tools fühlen sich toll an, aber unter der Haube sind es
00:05:14Systeme, die Large Language Models mit klassischer Softwarearchitektur verbinden. Wenn du selbst einen baust,
00:05:20integrierst du eine LLM-API in eine Anwendung. Du parst und indizierst Projektdateien,
00:05:27um Kontext zu liefern, verwaltest Prompts und kontrollierst Antworten. Du entwirfst ein System,
00:05:32das KI mit echten Engineering-Prinzipien vereint. Danach wirst du verstehen, wie diese
00:05:38beliebten KI-Tools unter der Haube wirklich funktionieren. Und nicht nur das: Da KI gerade
00:05:44so gehypt wird, ist dies ein Projekt, mit dem du wirklich aus der Masse herausstechen kannst. Aber seien wir ehrlich.
00:05:50Einige dieser Projekte sind hart. Ein eigenes Redis, Git oder einen BitTorrent-Client baut man nicht
00:05:55mal eben an einem Wochenende. Du wirst feststecken. Du wirst an dir zweifeln. Manchmal wirst du
00:06:01nicht einmal wissen, ob du es richtig machst. Und genau an diesem Punkt geben die meisten Leute auf.
00:06:05Um das zu verhindern, gibt es eine Plattform namens CodeCrafters. Das ist eine projektbasierte
00:06:11Lernplattform, auf der du Tools wie Redis, SQLite oder DNS-Server Schritt für Schritt nachbaust.
00:06:19Sie geben dir nicht die Lösung vor, sondern Tests und strukturierte Meilensteine. Und du
00:06:23implementierst alles selbst. Ich habe es selbst für diese Projekte genutzt. Ganz ehrlich,
00:06:29diese strukturierte Anleitung war der Unterschied zwischen Aufgeben und Fertigstellen. Wenn dir diese
00:06:34Ideen gefallen, du aber Anleitung suchst, findest du einen Link in der Beschreibung. Aber egal, ob du eine
00:06:39Plattform nutzt oder es allein versuchst: Wichtig ist, dass du wirklich selbst baust. Wenn du das Internet
00:06:45nach dem nächsten Projekt durchforstet hast, hoffe ich, dass dir das hier Klarheit verschafft hat.
00:06:51Es mag erst beängstigend sein, aber das Wasser wird nicht wärmer, wenn man nicht reinspringt. Wenn dir
00:06:57dieses Video gefallen hat, lass ein Like und Abo da und sag mir, mit welchem Projekt du startest.
00:07:02Wir sehen uns im nächsten Video.