Veröffentlicht am 23. September 2024
Letzte Woche tippte mich mein Sohn als Teil eines Ablenkungsmanövers, um nicht ins Bett zu müssen, auf die Schulter und fragte, wie viele Zeilen Code ich denn da schon geschrieben hätte. Ich guckte kurz auf die vielleicht 100 Zeilen React-Code im Editor vor mir und antwortete: Fast gar keine.
Wir waren beide verblüfft, aber die Antwort war richtig. Denn so gut wie den gesamten Code vor mir hatte ich durch Claude generieren lassen. Konkret arbeitete ich gerade an einer kleinen Webanwendung für Taxaro auf Basis von Next.js, React, TypeScript, Prisma und SQLite. Sachen, mit denen ich in den letzten Jahren immer und immer wieder gearbeitet habe und mit denen ich mich beinahe blind auskenne.
Ich war vor Jahren mal an einem Punkt, an dem ich mir schwor, nie wieder Login/Registrierung/Passwort vergessen für eine Webapp bauen zu wollen, weil ich das bis zu diesem Punkt gefühlt schon einhundertmal gemacht hatte und es mittlerweile schlicht unglaublich langweilig fand. Inzwischen muss ich sagen: Auch das Erstellen von API-Endpunkten, das Auslesen von oder das Schreiben von Daten aus bzw. in eine Datenbank und vieles mehr ist keine Raketenwissenschaft, nicht mehr spannend für mich – muss ich einfach nicht unbedingt selbst programmieren. Jedenfalls nicht im Detail.
An der Stelle kommen mir die Fähigkeiten aktueller Large-Language-Modelle wie der hinter ChatGPT oder Claude sehr gelegen. Was mich zum zweiten Teil meiner Antwort an meinen Sohn bringt: All das hat es ja vor zwei Jahren in dieser Form noch nicht gegeben. Damals war es selbstverständlich so, dass man alles von Hand programmiert hat. Hier und da gab es mal ein Snippet aus Stack Overflow und natürlich gab es Code Completion und andere Unterstützung im Editor bzw. der IDE, aber im Kern war das klassische Codieren nicht sehr viel anders als vor 10, 20 oder 30 Jahren. Das hat sich nun auf jeden Fall geändert.
Für mich ist das zweifelsohne eine Art Super-Power. Allerdings: Ich kenne alles, was mir das KI-Zeug generiert aus eigener Erfahrung im Detail, über verschiedene Abstraktionsebenen hinweg bis runter zu Plain-JavaScript und CSS. Ich habe mit allem gearbeitet, nicht nur einmal, sondern jahrelang. Ich habe mich eingelesen, rumprobiert, bin gescheitert und habe weitergemacht, habe Muscle-Memory entwickelt und bin schlichtweg ein Profi im Umgang mit den meisten Sachen geworden.
Nicht alles muss man im Detail kennen und können. So wenig ich mich mit Assembler auskenne, so wenig muss man in meinen Augen CSS können, wenn man mit TailwindCSS arbeiten kann. Aber man sollte schon – um im konkreten Anwendungsfall zu bleiben – die Grundlagen von HTTP, HTML, REST, Tailwind, React, TypeScript, relationalen Datenbanken, SQL, SQLite, Prisma, Node.js, NPM, Docker, VS Code und wahrscheinlich vielem mehr gut kennen. Eine ganze Menge, oder? Aber nur so lässt sich professionell beurteilen, ob das, was die KI generiert, auch Sinn macht. Oft genug tut es das nämlich nicht.
Und das bringt mich zur zentralen Frage: Wenn es für mich, der all diesen Kram kennt und sich noch dazu ewig und drei Tage mit Software-Architektur beschäftigt hat und das alles sinnvoll zusammenstecken und nutzen kann, so dass dabei wartbare Software rauskommt und nicht nur ein Haufen per Trial & Error funktionierender Code, eine Super-Power ist: Was ist das dann für Einsteiger?
Ich erinnere mich an meine ersten Gehversuche. Ich war nur wenig älter als mein Sohn heute und ich wollte unbedingt programmieren lernen. Ich hatte aber niemanden, der es mir hätte zeigen können. Also habe ich für mich allein begonnen, irgendwelche PHP-Scripte zusammenzustecken. Geklappt hat das oft nicht und wenn doch, wusste ich in der Regel nicht, warum. Das habe ich erst viel später gelernt, als ich mich im Rahmen meiner Ausbildung wirklich lang und intensiv mit all diesen Grundlagen beschäftigen konnte.
Aber werden wir Azubis oder Studierenden zukünftig noch die Zeit geben, wenn es erfahrene Leute gegebenenfalls in 1/10 der Zeit hinbekommen? Werden sich die Neuen die Zeit selbst nehmen, oder – nicht zuletzt angefeuert durch den Hype um KI-No-Code-Tools – Abkürzung um Abkürzung nehmen und Software in die Welt setzen, von der keiner mehr versteht, wie sie funktioniert und bei der alle hoffen müssen, dass sie auch genau das tut, was man sich von ihr erwartet?