Ja, und …: Warum du trotz KI Programmieren lernen solltest
Yes, and
Carson Gross, Informatikdozent an der Montana State University, beantwortet die Frage, ob man angesichts von KI noch Programmierer werden sollte, mit einem klaren „Ja, und …“. Er warnt davor, dass KI für Junioren gefährlich sei, wenn sie das Codelesen nicht lernen, und vergleicht Coding nicht mit Assembler, sondern betont, dass LLMs oft zusätzliche Komplexität erzeugen. Stattdessen rät er, KI als Tutor zu nutzen, während man selbst den Code schreibt.
„Ja, KI kann den Code für diese Aufgabe generieren. Lass es nicht zu. Du musst den Code schreiben.“
- layer8
> Ist Programmieren → Prompting wie Assembly → High-Level-Programmierung? […] Ich stimme diesem Vergleich nicht zu. Compiler sind größtenteils deterministisch, was aktuelle KI-Tools nicht sind.
Es geht nicht wirklich um Determinismus. Es geht darum, die Beziehung zwischen Quellcode und kompiliertem Programm mit formaler Präzision durchdenken zu können. Man kann vorhersagen, welche Änderungen im Quellcode zu welchen exakten Verhaltensänderungen des kompilierten Programms führen. Dasselbe gilt nicht für Änderungen an einem LLM-Prompt und die Ausgabe des LLM.
Man könnte eine KI deterministisch machen, indem man ihre Zufallsquelle fixiert. Das würde es immer noch nicht ermöglichen, darüber nachzudenken, wie sich ihre Ausgabe ändert, wenn man (zum Beispiel) ein Wort im Prompt hinzufügt oder entfernt. Die einzige Möglichkeit, das herauszufinden, besteht darin, das LLM laufen zu lassen (= den Prompt durch das Modell zu schicken und zu beobachten, was herauskommt).
Das ist der grundlegende Unterschied. Änderungen am Quellcode haben vorhersehbare und nachvollziehbare Ergebnisse. Man muss den Code im Allgemeinen nicht kompilieren und testen, um zu wissen, wie genau die Änderung das Verhalten des kompilierten Programms gemäß der Semantik der Programmiersprache beeinflusst. Das gilt selbst dann, wenn der Compiler einige probabilistische Heuristiken für Kompromisse bei der Codegenerierung verwendet und daher auf Maschinencode-Ebene nicht deterministisch ist.
Um es zu wiederholen: Der Unterschied liegt darin, wie man über das Verhalten eines Compilers im Vergleich zu dem eines LLM nachdenken kann. Programmiersprachen sind so entworfen, dass man darüber nachdenken kann. Bei LLMs […]
- tengbretson
> Ich erkläre, dass sie, wenn sie den Code nicht schreiben, nicht in der Lage sein werden, den Code effektiv zu lesen. Die Fähigkeit, Code zu lesen, wird in einer KI-basierten Programmierzukunft sicherlich wertvoll sein, vielleicht sogar wertvoller.
Da bin ich mir nicht sicher. Wenn ich daran zurückdenke, wie ich nach dem Abschluss in meinen Beruf eingestiegen bin – ich erinnere mich, dass ich das Gefühl hatte, meine Fähigkeit, Code zu schreiben, habe sich während meiner Schulzeit stark verbessert. Gleichzeitig hatte ich das Gefühl, dass sich meine Fähigkeit, Code zu lesen, kaum verbessert hatte. Selbst jetzt, nach über einem Jahrzehnt in der Branche, während sich beide Fähigkeiten enorm verbessert haben, habe ich immer noch das Gefühl, dass meine Fähigkeit, Code zu lesen und zu verinnerlichen, nicht auf dem Niveau ist, das ich mir wünschen oder das ich einfach aufgrund meiner Erfahrung annehmen würde.
Es könnte sehr gut sein, dass Lesen und Schreiben zwei getrennte (wenn auch verwandte) Fähigkeiten sind, die jeweils gezielte Übung und Verfeinerung erfordern. Ich kann nicht für alle sprechen, aber für mich begann sich die Fähigkeit, Code zu lesen, erst wirklich zu entwickeln, als ich einen Job hatte, in dem sie von mir erwartet wurde.
Vielleicht ist es möglich, Code lesen zu lernen, ohne ihn schreiben zu lernen. Es fühlt sich sicherlich so an, als sei es möglich, ihn schreiben zu lernen, ohne ihn lesen zu lernen.
- johsole
Ich stimme dem Autor nicht zu. Ich denke, je besser LLMs im Programmieren werden, desto wahrscheinlicher ist es, dass weniger Entwickler benötigt werden, um Systeme am Laufen zu halten und voranzubringen; der Engpass in meinem Unternehmen sind bereits neue umsatzgenerierende Ideen. Wir haben eine etwa 30-prozentige Steigerung der Geschwindigkeit neuer Funktionen festgestellt, sodass dieselbe Anzahl von Entwicklern viel schneller baut. Ich erwarte, dass das weiter zunimmt. Ich sehe auch viele Entwickler, die einfach darauf vertrauen, dass der Code korrekt ist, und den Kontakt zum Code verlieren.
Ich glaube nicht, dass ich meine Kinder ermutigen würde, sich mit Programmierung zu beschäftigen; stattdessen würde ich sie ermutigen, Unternehmer zu werden, die vielleicht etwas programmieren.
- ivanjermakov
Programmierer erstellen Computerprogramme. LLMs machen das Erstellen von Computerprogrammen erschwinglicher und effizienter, was zu mehr Computerprogrammen und einer höheren Nachfrage nach Programmierern führt. Wir wissen nicht, wie das Programmieren in 10 Jahren aussehen wird, aber warum sollte die Nachfrage nach gut funktionierenden Computern sinken?
- samstress
Nein, aber ... ist die bessere Antwort in meinen Augen. Programmieren zu lernen ist eine beträchtliche Verpflichtung. Es dauert Jahre, bis man gut genug ist, um Software in Profiqualität zu produzieren. Wenn man von den Verbesserungen extrapoliert, die wir in den letzten 12 Monaten bei KI im Programmieren gesehen haben, ist das einfach eine schlechte Verwendung deiner Zeit.
Stattdessen, wie der Artikel betont, lerne, ein Übersetzer zwischen der realen Welt und der KI-Codegenerierung zu werden. Lerne Branchen kennen, die von Technologie relativ unterversorgt sind. Baue keine Tools für Entwickler oder Ingenieure. Lerne etwas über Bauwesen, Bergbau, Abfallwirtschaft, Öl und Gas, Fertigung, Logistik, Verwaltung ... und werde dann das Bindeglied zwischen dieser Branche und der Fähigkeit der KI, Mehrwert zu schaffen.
(Betonung auf relativ unterversorgt – all diese haben an manchen Orten Hightech-Versionen, aber die Zukunft ist nicht gleichmäßig verteilt.)