Programmieren lernen mit KI

Große Sprachmodelle können heute erstaunlich schnell Code generieren.
Manche Junior Developer beginnen ihre Arbeit inzwischen damit, sich einen ersten Entwurf ihres Codes von einer KI erstellen zu lassen.

Das wirft für mich eine interessante Frage auf.

Wie können Junior Developer heutzutage überhaupt programmieren lernen – obwohl KI den Code schreibt?

Wieso mühsam selbst den Code eintippen, wenn es ein Standardfall ist, den auch eine KI schreiben kann?
Außerdem war Geschwindigkeit in unserer Branche schon immer ein Thema.
Es kann also durchaus sinnvoll sein, als Junior Developer KI als Sparringspartner und zum Generieren von Code zu benutzen.
Die Frage ist immer das “wie” und das “wozu” und wann es tatsächlich sinnvoll ist.

Aber lernt man nicht Programmieren genau durch dieses Tippen und anschließende Debuggen von Code?

Durch die Fehler, die man macht und die Teile, die nicht funktionieren?

Wie soll man also Praxiswissen entwickeln, wenn man nicht mehr selbst coded?

Denn auch wenn KI beim Schreiben hilft:
Auf das Ergebnis kann man sich nicht zu 100 % verlassen.

Man braucht weiterhin Fähigkeiten wie:

  • Architekturverständnis
  • Code reviewen
  • Debugging
  • Refactoring
  • Software-Engineering-Konzepte
  • Best Practices im jeweiligen Stack

und vieles mehr.

Meine Erfahrung aus der Zeit vor KI

Als ich selbst Programmieren gelernt habe, gab es diese Werkzeuge noch nicht.

Viele allgemeine Konzepte habe ich erst wirklich verstanden, als ich schon eine Zeit lang Erfahrung als Entwicklerin in einem Unternehmen gesammelt hatte.

Man liest zwar theoretisch über Dinge wie Architektur, Abstraktion oder Clean Code – aber wirklich zu verstehen beginnt man vieles erst, wenn man selbst Code schreibt, verändert, repariert und debuggt.

Nachteile beim Coden mit KI für Einsteiger:innen

Wenn KI einen großen Teil des Codes produziert, könnte es passieren, dass Anfänger:innen sehr schnell funktionierenden Code bekommen – ohne wirklich zu verstehen, warum er funktioniert.

Das birgt die Gefahr, dass sie sich nicht mehr wirklich mit dem Code beschäftigen – der Output funktioniert ja bereits wie erwünscht.
Schwachstellen im Code bleiben unbemerkt.
Und später wissen sie nicht, wie sie ihn debuggen können, wenn ein unerwartetes Problem auftritt.

Vor allem lernt man nur durch Auseinandersetzung mit Code, wie dieser tatsächlich funktioniert und wie die Zusammenhänge eines Systems gesetzt sind.

Was brauchen Junior Software Engineers also, um zwar die Vorteile von KI nutzen zu können –  aber gleichzeitig auch das Codeverständnis zu entwickeln, das wir früher so selbstverständlich erlernten, als wir unseren Code noch selbst schreiben mussten?
(oder ihn aus Stack Overflow kopiert und angepasst haben 😉)

Die Lösung: Eine Beobachtung aus der DevOps Engineering-Welt

Dann kam mir eine Idee.

Mein Mann Florian Weinzettl arbeitet seit mehr als einem Jahrzehnt als Systemadministrator und DevOps Engineer – lange Zeit davon bei einem Webhoster.

Eine seiner Hauptaufgaben war es, Code von anderen Entwickler*innen auf den Servern des Hosters zu analysieren, um herauszufinden:

Ist der Server schuld – oder der Code?
Müssen wir etwas korrigieren – oder etwas rückmelden?

Programmieren konnte er ursprünglich nicht.
Erst viel später lernte er funktionale Programmierung für Automatisierungen.
Aber er lernte – von Anfang an – sehr schnell zu debuggen.

Denn er musste fremden Code lesen, verstehen und analysieren, um Fehlerursachen zu finden.

Und genau dadurch entstand ein Grund-Verständnis dafür, wie Entwicklung funktioniert.

Ich kann sogar Architektur-Diskussionen mit ihm führen, weil er mir immer sagen kann, welchen Aufbau er häufig bei Agenturen oder Softwarefirmen in Webanwendungen beobachtet hat.

Lernen durch Lesen, Analysieren und Debugging

Das hat mich zu der Schlussfolgerung geführt:

Man kann auch durch Lesen und Debuggen lernen, Code zu verstehen und zu optimieren.
Genau das tun viele DevOps Engineers oder SREs bereits heute.

Zuerst versucht man den Code zu lesen und zu verstehen.
Man lässt sich schwierige Abschnitte von der KI erklären.
Dann nutzt man sein theoretisches Methodenverständnis, um zu prüfen:

  • Entspricht der Code den richtigen Konzepten?
  • Entspricht er den Best Practices?

Im Zweifelsfall diskutiert man es mit einem Senior.

Es versteht sich von selbst, dass das Endergebnis auf jeden Fall reviewt werden sollte.

Ko-Kreation statt Einzelarbeit

Vielleicht verändert KI also nicht nur, wie Code geschrieben wird, sondern auch, wie Programmieren gelernt wird.

Man schreibt nicht mehr alles selbst von Grund auf.

Stattdessen entsteht Software zunehmend durch eine Art Zusammenarbeit: zwischen Entwickler:innen, der KI und dem Team

Das Verständnis entwickelt sich dabei möglicherweise stärker über Analyse, Debugging und Verbesserung.

Man zäumt das Pferd gewissermaßen von hinten auf.

Eine offene Frage

Das ist zumindest meine Vorstellung davon,
wie Juniors in Zukunft mit KI ko-kreieren und lernen könnten.

Aber ich bin gespannt, diese Vorstellung mit anderen Entwickler:innen zu diskutieren und zu hören, wie sie das sehen – und wie Seniors mit den Tools von heute neue Junior Entwickler:innen einschulen.


Autorin

Mag. Rubina Weinzettl