Inspirationen

Hier ein paar interessante Ressourcen, falls du z.B. noch nicht so die Idee hast, was man so schönes bauen könnte.

Schau dir neben den Vorschlägen hier auf jeden Fall auch mal Robert Heatons Programming Projects for Advanced Beginners. Er hat zu jedem Projekt einen ausführlichen Blog-Post, der dich schrittweise durch das Projekt führt.

Key-Value Store mit Memcached Protokoll

Dies ist ein möglicher Einstieg ins Datenbanken und Systemprogrammierungs rabbit hole.

Ein Key-value store ist eine simple Datenbank. Memcached ist ein solcher key-value store und hat ein ziemlich simples Zugriff-Protokoll. Dieses Tutorial zeigt, wie man memcached benutzen kann. Außerdem hier die Dokumentation zum memcached protocol.

Du kannst nun versuchen, deinen eigenen Key-value store zu implementieren. Implementiere zwei, drei commands des memcached Protokolls, teste deine Implementierung und versuch dann z.B. deinen Server schneller zu machen, oder das die Daten nicht nur in-memory sondern auch auf der Festplatte gespeichert werden (c.f. ACID).

Ray Tracing in one Weekend

In Ray Tracing in One Weekend, you will build a simple brute-force path tracer.

Der Kurs bietet ein Intro in Computergrafik. Wenn du dich also dafür (oder für Lineare Algebra oder shiny Bilder) begeisterst, schau mal rein :)

todo.txt file format

Das todo.txt file format und die dazugehörige Kommandozeilenapp können ein guter Startpunkt für eine eigene Kommandozeilen- oder sogar Webapp sein.

Web-APIs wie transport.rest

Es gibt für alle möglichen Dinge Web-Schnittstellen. transport.rest stellt unter anderem Schnittstellen zu den Daten der BVG, VBB und Deutschen Bahn bereit und benötigt keinerlei Registration oder sonstiges. Du kannst dir damit also z.B. deine eigene kleine Busanzeige für deine Lieblingshaltestelle bauen.

Wenn ÖPNV jetzt nicht so dein Steckenpferd ist, gibt es noch viele andere tolle Web- bzw. REST-APIs, wie z.B. die von Spotify, wttr.in für Wetterdaten, und vieles mehr. Einfach mal googlen!

Für den Anfang brauchst du hier einen HTTP-Client wie Java’s HttpClient oder Python’s requests Bibliothek.

BattleSnake

Bei Battlesnake kannst du eine KI1 für das Snake-Spiel bauen, und die gegen andere KIs antreten lassen. Es gibt offiziele Dokumentation, die u.a. Starter-Templates enthalten, sodass du nicht komplett bei null anfangen musst.

Um online zu spielen, musst du deine BattleSnake auf einem Server hosten. Schau mal nach den Free Tiers von den vorgeschlagenen Anbietern. Du kannst aber auch erstmal deine Schlange lokal mit der battlesnake CLI laufen lassen.


Fußnoten

  1. KI weniger im grade gehypeten ML-Ansatz sondern eher Old-School wie bei Russel und Norvig