Wie man die eigenen Programmierfähigkeiten mit AI verbessert
(news.ycombinator.com)- Mit AI-Coding-Tools sollen Transformationsaufgaben, die für Menschen 1–2 Stunden dauern, auf ein Review von 15–20 Minuten reduziert werden.
- Allerdings liegt die Qualität des von AI erzeugten Codes derzeit nicht einmal bei 90 % von handgeschriebenem Code, sodass sie praktisch wenig hilfreich zu sein scheint.
- Deshalb stellt sich die Frage, wie man AI so einsetzen sollte, dass sich Produktivität und Codequalität gleichzeitig steigern lassen.
Praktische Tipps, um mit AI Effizienz und Qualität beim Programmieren zu steigern
1. AI nur auf wiederholbare Aufgaben konzentrieren
- AI erzielt den größten Effekt, wenn ähnlich geformte Aufgaben mehrfach wiederholt werden.
- Einmal setzt ein Mensch die bestmögliche Lösung direkt in hoher Qualität um und nutzt sie als Referenzbeispiel.
- Danach werden Aufgaben mit demselben Muster der AI zur Massenverarbeitung übergeben.
- Bei Aufgaben, die Denken und Urteilsvermögen erfordern, sinkt die erwartbare Effizienz stark.
2. Vor dem Coden unbedingt zuerst einen Plan erstellen
- Nicht sofort Code generieren, sondern zuerst einen Lösungsplan aufschreiben.
- In der Planungsphase sollen alle Unklarheiten und Fragen sichtbar gemacht werden.
- Wenn der Plan nicht zufriedenstellend ist, nicht in die Umsetzungsphase wechseln.
- Die Qualität des Ergebnisses hängt stärker von der Klarheit des Planungsdokuments ab als vom Prompt.
3. Aufgaben in extrem kleine Einheiten zerlegen
- In Einheiten wie eine Datei, eine Komponente oder einige wenige Funktionen anfragen.
- Anfragen wie „gesamtes Refactoring“ oder „idiomatisch verbessern“ haben eine hohe Fehlerrate.
- Die Struktur entwirft der Mensch, die wiederholte Implementierung übernimmt die AI.
4. Keinen Kontext anhäufen, sondern häufig zurücksetzen
- Je länger ein Gespräch wird, desto stärker fallen Regelkonformität und Qualität ab.
- Eine Session sollte nur eine Aufgabe behandeln.
- Wenn sich die Richtung ändert, in einer neuen Session neu beginnen.
- Bei langfristigen Aufgaben den Status in Dokumenten (
plan.mdusw.) festhalten und erneut einspeisen.
5. Regeldokumente kurz und mechanisch halten
CLAUDE.md/AGENTS.mdsollten innerhalb von 500–1000 Tokens bleiben.- Statt deklarativer Anweisungen vor allem konkrete und überprüfbare Regeln formulieren.
- Nur das Nötigste zu häufigen Fehlern festhalten.
- Alles andere über Code und automatische Prüfungen erzwingen.
6. Tests, Linter und Builds als Feedback-Loop nutzen
- Statt „mach es gut“ lieber klare Erfolgskriterien vorgeben.
- Als Ziel Tests bestanden, Build erfolgreich und 0 Linter-Fehler setzen.
- Nur mit einem Feedback-Loop kann sich die AI selbstständig annähern.
- Tests, die bestehendes Verhalten absichern, senken die Schwierigkeit von Refactorings erheblich.
7. Nicht während der Ausführung nachbessern, sondern den Plan korrigieren und neu ausführen
- Wenn das Ergebnis nicht gefällt, nicht wiederholt Änderungen am Code anfordern.
- Stattdessen das Planungsdokument anpassen und in einer neuen Session erneut ausführen.
- Wenn die Richtung erst in der Umsetzungsphase geändert wird, bricht die Qualität schnell ein.
8. Stil anhand von Beispielen vermitteln
- Abstrakte Anweisungen wie „guter Code“ haben fast keine Wirkung.
Before-/After-Beispiele zusammen bereitstellen.- Gute und schlechte Beispiele klar voneinander trennen.
- Regeln rund um die Beispiele erweitern.
9. Das Verstehen nicht aufgeben und Verantwortungsgrenzen klar ziehen
- Von AI erzeugter Code muss immer von Menschen verstanden und geprüft werden.
- Außer bei Prototypen und risikoarmem Code ist eine Nutzung ohne Review tabu.
- Bei sicherheitskritischem, betrieblichem oder langfristig zu wartendem Code ist Verständnis die Voraussetzung für Qualität.
10. Zuerst prüfen, ob die Aufgabe überhaupt für AI geeignet ist
- Aufgaben ohne eindeutige richtige Antwort und mit starkem ästhetischem oder strukturellem Urteil sind für AI ungeeignet.
- Besonders schwierig sind UI-Refactorings, bei denen sich visuelle Ergebnisse schwer automatisch verifizieren lassen.
- Falls nötig:
- Schritt 1: mechanische Transformation mit dem Ziel, das Verhalten beizubehalten
- Schritt 2: Qualitäts-Refactoring durch Menschen
11. Mit der Erwartung „10 % Verbesserung“ starten
- Nicht von Anfang an 10x erwarten.
- Eine Strategie, kleine Verbesserungen zu kumulieren, ist langfristig wirksamer.
- Entscheidend ist, die Maßstäbe für Design und Qualität nicht aufzugeben
1 Kommentare
Hacker-News-Kommentare
Hier ist Boris aus dem Claude-Code-Team. Ich teile ein paar Tipps.
CLAUDE.mdfesthalten. Claude liest diese Datei automatisch.Hoffe, das hilft.
CLAUDE.mdübernommen.CLAUDE.mdgut einrichtet, ist der Effekt groß.CLAUDE.mdfunktioniert nur etwa 4- bis 5-mal gut, danach vergisst es die Anweisungen. Selbst wenn man etwa sagt, es solle mich „Mr. bcherny“ nennen, vergisst es das schnell wieder..clinerules-Datei verwenden. Ich würde gern den Unterschied zuCLAUDE.mdkennen.Wenn man Spracheingabe nutzt, versteht das Modell die Absicht genauer. Ich spreche Prompts mit etwa 500 Wörtern ein. Beim Sprechen fließen die Gedanken natürlicher als beim Tippen.
Wenn man sagt: „Mach einen Plan und frag nach, wenn du Fragen hast“, dann stellt Claude tatsächlich Fragen. Es ist auch effektiv, Claude anzuweisen, den bisherigen Code-Stil nachzuahmen.
Man sollte im Prompt eine Loop-Bedingung aufnehmen. Zum Beispiel: „Wiederhole, bis
yarn testerfolgreich durchläuft.“Ein LLM ist letztlich ein Agent, der Werkzeuge wiederholt ausführt, also sollte man es auch so behandeln.
Siehe auch: Prompting the Agent Loop
Ich empfehle meine nori-profiles-Konfiguration.
Nach vier Monaten Experimenten hat sich die Leistung von Claude Code spürbar verbessert.
Verwandter Artikel: Averaging 10 PRs a Day with Claude
Bei uns im Unternehmen arbeiten wir mit einer großen Golang-Codebasis. Ich habe viele Tools ausprobiert, darunter Cursor, Claude Code und Gemini CLI, aber die meisten werden von der Menge an Code überwältigt.
aider ließ sich dagegen viel leichter kontrollieren und war genauer. Dateien hinzuzufügen ist zwar manuell, aber dafür ist es fast zu 100 % korrekt.
Zusammen mit aktuellem Claude Sonnet oder Gemini 2.5 Pro ist es am präzisesten.
Wenn ich mit Cursor arbeite, lasse ich zuerst beim Refactoring einer Route eine Regeldatei erzeugen. Bei den anderen Routen reicht danach einfach „refactor“.
Man sollte die verbleibende Kontextkapazität immer im Blick behalten und bei Bedarf frühzeitig den Kontext leeren.
Wichtig ist die Sichtweise, den Agenten wie ein Teammitglied zu behandeln. Man sollte die jeweiligen Stärken und Schwächen beobachten und die Zusammenarbeit entsprechend anpassen.
Ich konzentriere die Stärke des Agenten auf verifizierbare Probleme oder experimentellen Code.
Ich kenne mich mit Svelte nicht gut aus, aber es scheint sinnvoll, ein Rewrite über disposable Tests im TDD-Stil zu steuern.
Manchmal ist es am besten, den bisherigen falschen Kontext zu verwerfen und in einem neuen Workspace neu zu beginnen.
Ich sehe LLMs als Sucher (searcher). Wenn man Fragen klein und konkret hält, wird die Suche einfacher, und je weiter man sich von den Trainingsdaten entfernt, desto höher ist die Fehlerwahrscheinlichkeit.
Bei neuen Projekten reicht oft schon ein One-Shot-Prompt.
Mein bevorzugtes Claude-Code-Toolset ist superpowers.
Ich nutze das jetzt seit zwei Wochen und es ist fast nie fehlgeschlagen.
Meine Prinzipien für AI-Programmierung sind einfach.
Der Kern ist „Less is more“. Je frischer das Kontextfenster, desto besser, und etwa 500 bis 750 Wörter sind ideal. Jeder Schritt muss überprüfbar sein.
Bei Java-bezogenen Aufgaben wechselt Claude ständig die Richtung oder macht widersprüchliche Vorschläge. Ich habe das Gefühl, dass ChatGPT deutlich besser ist.
Wenn man „idiomatischen Code“ möchte, muss man zunächst den eigenen Stil sehr genau definieren. Gute und schlechte Beispiele sollte man in kleine Teile aufteilen, in den Plan-Modus von Opus 4.5 geben, einen Plan erstellen lassen und dann ausführen. Wenn es nicht auf Anhieb perfekt ist, überarbeitet man das Planungsdokument und versucht es erneut. Wenn man versucht, es wie einen Junior-Entwickler bis ins Detail anzuleiten, wird es eher ineffizient.