magicmarcy.de | KI und Coding Assistant für alle?

KI und Coding Assistant für alle?

11. Februar 2024 - Lesezeit: 5 Minuten

Das Thema KI ist derzeit in aller Munde und rückt auch im Bereich des Coding immer mehr in den Fokus.

Neben ChatGPT gibt es mittlerweile eine Reihe von Tools, die uns nicht nur bei kniffligen Problemen Fragen beantworten, sondern sogar ganze Methoden oder gar Klassen zur Lösung komplexer Probleme erstellen können. Es ist auch möglich, JavaDoc für seine bestehenden Methoden generieren zu lassen, was in vielen Fällen wirklich gut funktioniert.

Der Einsatz dieser Tools im Unternehmensumfeld ist jedoch vielerorts stark umstritten. Schließlich geht es oft auch um Betriebsgeheimnisse, die in so einem Code stecken, denn um den Code von einer KI analysieren zu lassen, muss er in den meisten Fällen an irgendwelche Server geschickt werden, wo die eigentliche Analyse stattfindet. Gerade in der EU mit der Datenschutzgrundverordnung ist das immer so eine Sache - vor allem, wenn dieser Server außerhalb der EU steht.

Und man stelle sich vor, dass dieser Code dann zu Schulungszwecken verwendet wird. Nichts wäre schädlicher für eine Firma, wenn der eigene Code als Lösung einer KI bei einer anderen Firma angeboten würde. Wenn ich eine eigene Implementierung für ein Datum (das MarcyDate) habe, dann stelle man sich die Folgen vor, wenn es bei FirmaXY einen Mitarbeiter gibt, der auf seine Frage nach der Berechnung einer Datumsdifferenz eine Antwort erhält, in der das MarcyDate verwendet wird.

Über dieses Thema kann man sicherlich eine ganze Bachelor- oder Masterarbeit schreiben, aber das soll hier nicht der Fall sein. Da sich die Java-Themen in meinem Blog eher an Anfänger richten, möchte ich genau diesen Aspekt näher beleuchten. Sollte ich für meine Anfängeraufgaben KI-Tools verwenden? Was bringt mir das am Ende und lerne ich etwas dabei?

Ich habe schon viele Anfänger gesehen, die ChatGPT benutzt haben, um ihre Aufgaben zu lösen. Dort haben sie das Problem beschrieben und eine Antwort erhalten, die sie übernommen haben. Kurz das Ergebnis überprüft und fertig und das ist im Prinzip keine schlechte Idee, aber es fehlt etwas Entscheidendes: Das Wissen, WARUM die Lösung so ist, wie sie ist, und warum man sich für diese Lösung entschieden hat.

Ich sage immer, dass das Schöne am Programmieren auch das Schlechte am Programmieren ist: Es gibt immer mehr als eine Lösung. Das gibt uns Entwicklern die Freiheit, ein Problem auf viele verschiedene Arten zu lösen. Es gibt fast nie "die eine" Lösung.

Durch die Generierung von Code durch eine KI fehlt oft einfach das Wissen und die Information, was eigentlich hinter der Lösung steckt und warum es funktioniert. Hier liegt die Verantwortung aber beim Fragesteller, der sich nach der Präsentation der Lösung damit auseinandersetzen muss. Denn gerade wenn es um die Grundlagen in der Programmierung geht, ist es essentiell zu verstehen, was die einzelnen Dinge machen und warum sie so sind.

Wenn ich die KI frage, wie ich ein Problem löse, liefert sie mir z.B. eine Lösung, bei der eine Zählschleife verwendet wird. Das ist zwar grundsätzlich erst einmal richtig und auch logisch - aber ich erfahre dadurch nicht, welche Alternativen es gibt, welche Arten von Schleifen ich noch verwenden könnte und welche es überhaupt gibt. Ich muss mich aktiv mit der Antwort auseinandersetzen und ggf. weitere Fragen stellen, um meinen Wissensstand zu erweitern.

Und genau das fehlt in vielen Fällen, was man daran erkennen kann, dass gerade bei Rückfragen zur Entscheidung und einer Erklärung, wie das angewandte funktioniert, die Antworten oder die Möglichkeit, über Alternativen nachzudenken, ausbleiben.

Aber wenn wir in einem Unternehmen arbeiten, geht es weniger um den Code oder das Coden selbst. Vielmehr sind es hier die fachlichen Dinge, um die man sich kümmern muss und wo es Probleme gibt, für die Lösungen benötigt werden. Wenn hier dann auch noch viele eigene Libs und Funktionen verwendet werden, fällt die Frage nach der KI fast ganz weg. Habe ich zum Beispiel eine eigene Implementierung eines Datums, dann kann ich die KI eben nicht fragen, wie ich eine Datumsdifferenz von zwei Objekten des Typs MarcyDate berechnen kann. Dazu muss die KI erst einmal die Implementierung kennen, verstehen und interpretieren können - was in Zukunft sicher nicht ausgeschlossen ist, aber im Hinblick auf die eingangs erwähnte Problematik eben noch zu hinterfragen ist.

Wir können also durchaus verschiedene KI-Werkzeuge nutzen, um Probleme zu lösen, aber es liegt in unserer Verantwortung, die Lösung auch zu hinterfragen und zu schauen, welche Alternativen es gibt und auch Erklärungen zu verlangen, warum die Lösung so vorgeschlagen wurde. Am besten ist es natürlich auch, zuerst selbst eine Lösung zu erarbeiten und das Problem in viele kleine Probleme zu zerlegen, um dann mit Hilfe der KI zu schauen, wie man es besser (oder anders) hätte machen können und das Ergebnis zu überprüfen.

Aber gerade als Anfänger, der noch Schwierigkeiten mit den Grundlagen hat, sehe ich das Thema durchaus kritisch. Man kommt zwar relativ leicht durch die Grundlagen, aber ohne Erklärungen hilft es einfach nicht weiter, da man dann weder die Zusammenhänge noch die Gründe dahinter versteht und das wird zwangsläufig dazu führen, dass im weiteren Verlauf Wissenlücken entstehen, die nur schwer wieder zu füllen sind.

Für den Einsatz von KI-Tools gilt daher, dass sie das Denken nicht ersetzen können und dass die gegebenen Antworten immer wieder überprüft und hinterfragt werden müssen und ggf. fehlende Kenntnisse durch Nachfragen ergänzt werden müssen. Denn eines ist sicher: So "intelligent" diese KIs auch sein mögen, denken können sie nicht.

Es wurden noch keine Kommentare verfasst, sei der erste!

Support

Wenn du mich und meine Arbeit unterstützen möchtest, freue ich mich sehr über eine kleine Aufmerksamkeit in Form eines Kaffees ;-)



Weitere Informationen, wie du mich und meine Arbeit unterstützen kannst, findest du hier.