Zum Hauptinhalt Zur Navigation

Was ich aus der Arbeit mit Claude gelernt habe

Als große Einschränkung muss ich anmerken, dass ich bereits ein wenig Erfahrung mit Kernel-Modulen und insgesamt viel Erfahrung mit C habe. Deshalb sollte Claudes Erfolg in diesem Szenario nicht überbewertet werden.

Es waren nicht wirklich nur drei Eingabeaufforderungen nötig, um Claude dazu zu bringen, ein funktionierendes Kernel-Modul auszuspucken, sondern einiges Hin und Her – und, ja, mehrere manuelle Korrekturen des Codes. Ohne Grundkenntnisse über die Interna eines Kernelmoduls wäre diese Modernisierung nicht möglich gewesen.

Dies brachte mich dazu, ein paar Gedanken zur Arbeit mit solchen Codierungsagenten in der heutigen Zeit zu formulieren.

Offen sein für Zusammenarbeit

Die Interaktion mit Claude Code fühlte sich wie eine echte Zusammenarbeit mit einem Kollegen an. Sie wird oft mit der Zusammenarbeit mit einem Junior-Entwickler verglichen, und das trifft es ziemlich gut: Claude Code tut alles, was man ihm sagt, will gefallen, ist übermäßig selbstbewusst, entschuldigt sich schnell, lobt einen dafür, dass man "absolut Recht" habe, wenn man auf einen Fehler hinweist, und so weiter. Aus diesem Grund muss der Mensch immer noch die Leitplanken setzen, Produktentscheidungen treffen, Architekturrichtlinien durchsetzen und potenzielle Probleme so früh wie möglich erkennen.

So konkret wie möglich sein und spezifische Schlüsselwörter verwenden

Ich behaupte nicht, plötzlich Experte für Prompt Engineering zu sein, aber am erfolgreichsten waren für mich die Prompts, die das verbale Gerüst eines Features klar beschreiben und anschließend präzise benennen, welche Lücken dieses Gerüsts vom LLM gefüllt werden sollen. (Aus irgendeinem Grund kommt mir dabei das Bild eines biologischen Stammzellgerüsts in den Sinn, auf dem ein künstliches menschliches Ohr wächst.)

Ein Gespür dafür entwickeln, welche Aufgaben für einen Agenten geeignet sind

Agenten sind keine Zauberer und können nicht alles tun, was wir von ihnen verlangen. Wir sollten sie nicht mit einer Aufgabe betrauen, für die sie ungeeignet sind, dann frustriert sein und die Tools vorschnell ablehnen. Es ist hilfreich, sich mit der Funktionsweise von LLMs vertraut zu machen, um ein Gespür für ihre Stärken und Schwächen zu entwickeln.

Tools als Multiplikatoren für eigene Fähigkeiten nutzen

Ich bin mir sicher, dass ich die beschriebene Modernisierung auch alleine geschafft hätte, wenn ich wirklich gewollt hätte. Aber dafür hätte ich mich mit der Kernel-Entwicklung vor 25 Jahren auskennen müssen. Ich hätte wahrscheinlich wochenlang Dokumentationen gewälzt, die heute völlig nutzlos sind. Stattdessen verbrachte ich ein paar Tage damit, mit einem Agenten zu chatten und mir von ihm erklären zu lassen, was er gemacht hat.

Natürlich habe ich die vorgenommenen Änderungen überprüft und getestet – und dabei eine Menge gelernt, das mir in Zukunft nützlich sein wird, zum Beispiel moderne Kernel-Konventionen, einige interessante Details der x86-Architektur und mehrere Befehlszeilenbefehle, die ich in meinem Repertoire behalten werde.

Tools für eine schnelle Einarbeitung in neue Frameworks nutzen

Ich bin kein Kernel-Entwickler, aber die Erfahrung hat einen Funken entfacht, der zu mehr Arbeit auf Kernel-Ebene führen könnte. Und es hat sich herausgestellt, dass die Kernel-Entwicklung gar nicht so schwierig ist, wie sie vielleicht klingt.

Ich habe auch schon eine Flutter-App erstellt, ohne je zuvor mit Flutter gearbeitet zu haben. Wer wie ich am liebsten durch praktische Anwendung lernt, gewinnt durch diese Tools massiv Tempo beim Erlernen neuer Frameworks – und hat mehr Zeit für wichtige architektonische Überlegungen.

Ich freue mich jedenfalls, jetzt sagen zu können: ftape lebt weiter! 25 Jahre nach seiner letzten offiziellen Veröffentlichung lässt es sich wieder unter modernem Linux kompilieren und verwenden.

Ich arbeite noch an Optimierungen und füge neue Funktionen hinzu, aber habe bereits überprüft, dass es mit den floppybasierten Bandlaufwerken in meiner Sammlung sowie mit parallelportbasierten Laufwerken, die es ebenfalls unterstützt, funktioniert.

Das physische Set-up sieht sehr ähnlich aus, aber das Betriebssystem ist jetzt Xubuntu 24.04 statt CentOS 3.5!

Übersetzt von Juliane Gunardono mit Unterstützung von DeepL


Relevante Themen