Könnte zukünftige KI wirklich vollständige Apps schreiben und Programmiererjobs übernehmen? Lassen Sie uns realistisch verstehen, was KI bis 2024 kann und was nicht.
Sie haben wahrscheinlich schon Leute über ChatGPT und andere neue KI-Chatbots sprechen hören. Sie unterhalten sich erstaunlich gut über verschiedene Themen. Und ja, sie können auch viele Programmierprobleme lösen.
Ist KI eine existenzielle Bedrohung für die Karrieren von Entwicklern? Oder wird sie lediglich ein weiteres Werkzeug sein, um die Fähigkeiten von Programmierern zu erweitern?
In diesem Leitfaden werden wir die Realitäten der aktuellen Fähigkeiten von KI in der Softwareentwicklung untersuchen, wo die Technologie noch Defizite aufweist und wie Sie Ihre Fähigkeiten in dieser sich schnell verändernden Landschaft zukunftssicher machen können.
ChatGPT und LLMs: Verständnis der KI-Technologie
Chatbots wie ChatGPT sind keine „denkenden“ Programme. Sie verstehen Sprache oder Codierung nicht. Sie sagen intelligente Antworten voraus, indem sie Muster in riesigen Haufen von Online-Textdaten finden.
Programmierer nennen sie „große Sprachmodelle“ (LLMs), ein ausgefallener Ausdruck für einen Textvorhersager auf Steroiden.
Um das „große“ in Perspektive zu setzen, wurde ChatGPT auf einem 570GB bis 45TB Datensatz von Textausschnitten trainiert, die Internetforen, Bücher und Online-Schriften umspannen, und viele Informationen wurden direkt von Reddit bezogen.
Dieser riesige Textdatenkorpus ermöglicht es ChatGPT, Passagen zu generieren, Fragen zu beantworten und sogar Code basierend auf Textaufforderungen zu schreiben. Sein Wissen stammt ausschließlich aus diesen bereits vorhandenen Texten, nicht durch echtes Verständnis der Welt.
Also, obwohl ChatGPT im Gespräch geschickt erscheint, hat seine Intelligenz Grenzen.
- Es kann nur Kontext für bis zu ein paar tausend Wörter aufrechterhalten.
- Es hat keine echte Welt Erfahrung.
- Es kann nicht logisch denken oder intuitive Sprünge machen.
- Es fällt ihm schwer, komplexen Code zu verstehen.
Dennoch schreitet diese Technologie schnell voran. Wie also schneiden ChatGPT und andere LLMs heute bei Programmieraufgaben ab?
Kann ChatGPT funktionalen Code schreiben?
ChatGPT kann lauffähigen Code in JavaScript, Python, SQL, Bash und anderen Sprachen erstellen, wenn es entsprechend aufgefordert wird. Es ist ein Anfängercoder, aber Sie können es weiterhin auffordern, Fehler zu korrigieren, um funktionierenden Code zu erhalten.
Für einfache Programmierprobleme bietet ChatGPT beeindruckende Vielseitigkeit und ermöglicht es Ihnen, Zeit zu sparen, indem Sie grundlegenden Code erstellen, den Sie sonst manuell erstellen würden. In diesen Fällen sparen LLMs definitiv Zeit für Programmierer.
Allerdings ist sein Code oft ineffizient oder übersieht Randfälle, weil er nicht den vollständigen Kontext des Problems kennt. Tatsächlich warnt ChatGPT manchmal sogar davor, dass sein Beispielcode vor der Anwendung gründlich überprüft werden muss.
Also, wir wissen sicher, dass LLMs noch nicht da sind. Aber wir können uns nur vorstellen, wie gut sie sein werden, denn fortgeschrittene LLMs sind erst ein Jahr alt (ChatGPT wurde am 30. November 2022 gestartet).
“Wenn die KI in diesem Tempo weiter fortschreitet, befindet sich in den nächsten 30 Jahren die Mehrheit der Menschheit in Schwierigkeiten, wenn es um Jobs geht, nicht nur Programmierer,” sagte ein Reddit-Nutzer im /r/learnprogramming/ Subreddit.
Entwicklungsaufgaben, die KI bewältigen kann
Obwohl ChatGPT keine leitenden Entwicklerschuhe füllen kann, bietet es eine unkomplizierte Nützlichkeit, um Programmierer effizienter zu machen. Lassen Sie uns anschauen, wie ChatGPT Sie als Programmierer ergänzen und die regelmäßig mühsameren Prozesse entfernen kann.
Automatisierung wiederholender Aufgaben
Für erfahrene Entwickler gehört das Schreiben von CRUD-Apps, einfachen Skripten und Backend-Grundgerüsten zu den mühsamsten Aspekten des Jobs.
Mit KI können Sie diese Plackerei durch automatisierte Codegenerierung eliminieren. Anstatt immer wieder manuell grundlegende Benutzerregistrierungssysteme zu programmieren, könnte ein KI-Modell sofort funktionierende Prototypen erstellen, die auf das Datenbankschema jedes Projekts zugeschnitten sind.
Die Nützlichkeit von KI für wiederholendes Programmieren wird nur zunehmen, da höhere Abstraktionen durch Frameworks wie React und Django weiterhin allgemein verwendet werden.
Natürliche Sprachverarbeitung
Produktmanager verfassen oft Spezifikationen in alltäglicher Prosa wie “Benutzer sollten in der Lage sein, ihre gespeicherten Zahlungsinformationen zu aktualisieren.” Die Programmierung solch locker definierter Verhaltensweisen lässt viel Raum für Fehlausrichtungen mit den Erwartungen der Stakeholder.
Mit leistungsfähigen LLMs wie ChatGPT 4 kann KI helfen, freie Kundenanfragen zu interpretieren, um gründliche technische Anforderungen zu formulieren.
Mit Hilfe von Kundendokumenten und Gesprächen können LLMs Anfragen in ausführbare Semantik für Programmierer übersetzen. LLMs können dazu beitragen, Mehrdeutigkeiten zu erkennen, die man besser zu Beginn statt mitten im Projekt angeht, während Sie Ihre Aufforderungen optimieren.
Fehlererkennung
KI-Modelle, die mit großen Mengen von Open-Source-Code trainiert wurden, können auch hervorragend darin sein, Software auf Fehler zu überprüfen. Forscher bei Microsoft haben spezialisierte neuronale Netze entwickelt, um Fehler zu erkennen, die in einigen Tests eine höhere Genauigkeit als menschliche Programmierer erreichten.
Als Programmierer könnten Sie diesen KI-Mitarbeiter einsetzen, um schnell Commits auf fehlerhafte Logik, Deprekationsfehler von veralteten Abhängigkeiten und sogar Sicherheitsmängel zu analysieren. Anstatt manuell Tausende von Zeilen zu durchforsten, erhalten Sie kommentierte Vorschläge, was zu korrigieren ist.
Probleme vorhersagen
Jenseits der reaktiven Fehlersuche kann ausreichend fortschrittliche KI Probleme vorhersagen, bevor sie auftreten, basierend auf dem Code, den Sie schreiben. Sie kann dies tun, indem sie den Code kontinuierlich überprüft und feststellt, ob er zu irgendeinem Zeitpunkt während der Ausführung fehlschlagen könnte.
Oder, bei Bibliotheken und Frameworks mit vielen nachgelagerten Abhängigkeiten, können KI-Begleiter bevorstehende inkompatible Änderungen vor Veröffentlichungen erkennen. Dies hilft Ihnen, Übergänge zu erleichtern und Störungen proaktiv zu minimieren, ohne zusätzliche Ressourcen zu verwenden.
Bessere Projekt- und Zeitplanabschätzung
Wenn wir schon von Ressourcennutzung sprechen, unterschätzen Menschen chronisch wie lange Softwareprojekte dauern werden. Wir neigen entweder dazu, zu optimistisch zu sein oder vergessen die Risiken. Dies führt dazu, dass Projekte häufig das Budget und den Zeitplan überschreiten.
KI-Tools beginnen zu helfen, indem sie Daten aus vergangenen Projekten betrachten, um zu sehen, wie lange ähnliche Projekte gedauert haben. Zum Beispiel nimmt CloudBees Kontext aus Ihren gesamten Werkzeugketten und macht ihn für Sie verständlich. Anschließend kann es die Informationen verwenden, um die Lieferzeiten für Software zu schätzen.
Natürlich kann KI nicht alles vorhersagen, was schiefgehen könnte, aber angesichts der Menge an Daten, die sie analysiert, bevor sie Zeitpläne schätzt, kann sie ein großartiger Ausgangspunkt sein. Mit der Zeit, wenn die Werkzeuge mehr Daten erhalten, sollten die Schätzungen besser werden.
Optimierung Ihres Codes
Es ist gut, ein zweites Paar Augen für Ihren Code zu haben. Es kann Ihnen helfen, Probleme mit der Code-Logik zu erkennen, bessere und einfachere Wege zu finden, um das gleiche Ergebnis zu erzielen, und sogar die Geschwindigkeit zu optimieren.
Während Programmierer kontinuierlich Anstrengungen in das Verfeinern von Systemen für Geschwindigkeit und Effizienz stecken, wird das Anpassen von Code durch Versuch und Irrtum mühsam.
LLMs können Optimierungsvorschläge bereitstellen, um Ihnen zu helfen, schnell Code zu optimieren und zu refaktorisieren.
Anstatt blind zu raten, wird Ihnen die KI leicht zugängliche Möglichkeiten aufzeigen, um maximale Gewinne zu erzielen. Sie könnte die Aufteilung von Monolithen in Mikroservices empfehlen, das Hinzufügen von Indizes für kostspielige Abfragen oder das Upgrade von Frameworks für moderne Best Practices.
Die Grenzen von KI-Werkzeugen in der Entwicklung
Sollten sich Entwickler durch die Nützlichkeit von KI bedroht fühlen, die routinemäßige Codierung und ergänzende Entwicklungsaufgaben automatisiert?
Die aktuelle Technologie hat sich selbst für mäßig komplexe Programmieraufgaben als unzureichend erwiesen. Daher scheinen Kernaspekte des Entwickler-Workflows auf absehbare Zeit menschlich gesteuert zu bleiben.
Schlechter Qualitätscode
Code, der vollständig von ChatGPT oder ähnlichen Modellen erzeugt wird, neigt dazu, subtile Mängel aufzuweisen. Obwohl nutzbar, berücksichtigt der Code nicht die Vielzahl von Randfällen, die Ihnen bekannt sein könnten, und ohne logisches Denken stützt er sich ausschließlich darauf, was Sie ihn fragen zu tun.
Hier ist ein Experiment, das von einem GitHub-Nutzer durchgeführt wurde. Sie können sehen, dass ChatGPT großartige Arbeit leistet, indem er ein Problem erklärt und aufschlüsselt:
Aber dann geht es darum, nur teilweise korrekten Code zu geben, bei dem die Logik übersprungen wird, die Antwort auf 0 zu setzen, wenn n gleich 1 ist.
Um sicherzustellen, dass alle Randfälle berücksichtigt werden, mussten wir diese if-Bedingung hinzufügen, wie Sie im folgenden Screenshot sehen können.
Also führt der mit ChatGPT erstellte Code im Allgemeinen zu instabilen Apps, die in der Produktion aufgrund von nicht behandelten Ausnahmen zusammenbrechen.
Bis die KI radikal fortschreitet, wird generierter Code für die meisten realen Anwendungen ohne umfangreiche Überwachung und Bearbeitung zu mangelhaft bleiben.
Potenzielle Sicherheitsrisiken
Neben Stabilitätsproblemen führt Code, der von Sprachmodellen geschrieben wurde, zu alarmierenden Sicherheitsrisiken. Da KI nicht immer Randfälle berücksichtigen kann, kann Ihr Code für ausnutzbare Fehler und Sicherheitsrisiken offen sein.
Zum Beispiel, wenn Sie eine Web-App entwickeln und die Benutzereingaben nicht ausreichend bereinigen, können Hacker diese ausnutzen, um über SQL-Injektionen und XSS-Angriffe Zugang zu Ihrer Datenbank zu erlangen.
Kann keine neuen Probleme lösen
Um menschliche Programmierer zu verdrängen anstatt ihnen zu helfen, muss KI neue Probleme angehen. Die heutigen Modelle verknüpfen lediglich Aufforderungen mit Lösungen, die während des Trainings aufgetreten sind. In einer unabhängigen Studie fanden die Forscher heraus, dass ChatGPT bei 52% der Programmieraufgaben scheiterte, indem es unvollständigen oder falschen Code lieferte.
Dennoch wählten die Nutzer 39,34% der Zeit die Antwort von ChatGPT aufgrund ihrer umfassenden Natur.
Nur wenn Modelle vernünftige Lösungen ableiten und über die grundlegenden Schritte hinausdenken können, wie Menschen, können sie die Entwicklung eigenständig vorantreiben. Bis dahin bleibt ihr Wert darauf beschränkt, bekannte Aufgaben zu beschleunigen, anstatt Neuland zu betreten.
KI hat kein Verständnis
Vorhandene KI versteht Code oder abstraktes Denken nicht richtig – sie erkennen lediglich Muster in den Eingabeaufforderungen und liefern relevante „klingende“ Ausgaben. Ohne kontextuelles Verständnis ignorieren ihre Lösungen oft kritische Einschränkungen oder treffen irrationale Entscheidungen, die kein Ingenieur treffen würde.
Betrachten Sie die Analogie eines medizinischen Bots, der darauf trainiert wurde, Patienten zu diagnostizieren, indem er Symptome mit aufgezeichneten Krankheiten abgleicht. Er würde anständig funktionieren, um gängige Behandlungen zu empfehlen, könnte jedoch katastrophal Chemotherapie für einen Muttermal am Bein verschreiben, nur weil oberflächlich ähnliche Sprache die beiden verknüpft.
Ingenieurwesen hingegen basiert auf menschlicher Rationalität und Urteilsfähigkeit, um kohärente Entwürfe zu erstellen. Daher können Entwickler, bis eine bessere KI erreicht ist, von KI profitieren, um ihre bestehenden Codierungsabläufe zu verbessern.
Die zukünftige Rolle der KI in der Programmierung
Obwohl KI derzeit erhebliche Einschränkungen hat, ist das Wachstumstempo in diesem Bereich phänomenal. Innerhalb nur eines Jahres entwickelte sich KI von unverständlichem Schreiben zu fehlerlosem englischen Prosatext, der von menschlich geschriebenem Text nicht zu unterscheiden ist.
In naher Zukunft könnte KI einen Anfängercoder ersetzen, indem sie grundlegende Codierungsaufgaben automatisch handhabt. Tatsächlich schneidet GPT-4 laut internen Bewertungen von OpenAI deutlich besser ab als seine Vorgängerversionen bei allen Bewertungen, einschließlich codierungsbezogener Aufgaben.
“Es wird ein Werkzeug im Kit des Entwicklers sein, das ihren Job sowohl schneller als auch einfacher macht, während es gleichzeitig eine Ebene der Komplexität und Undurchsichtigkeit einführt, die zweifellos neue Probleme verursachen wird”, sagt Lawjarp2, ein Reddit-Benutzer.
Die Natur der Programmierung entwickelt sich bereits weiter, wie wir es bei GitHub Copilot, Amazon’s CodeWhisperer und vielen anderen sehen.
Coding wird sich von manuellem Tippen zu einer synergistischen Zusammenarbeit mit generativen KI-Systemen entwickeln — wobei Menschen Kontext, Vision, Überwachung und Fehlerbehebung bereitstellen.
Dieses Hybridmodell ermöglicht es der KI, sich um die mühsame Codierungsarbeit zu kümmern, während sich Entwickler auf hochrangige Systemarchitektur, komplexe Problemlösung, Kreativität und die Verhinderung von Problemen konzentrieren.
Also, während sich Aufgaben verschieben, werden Softwareentwickler nicht vollständig ersetzt. Der Beruf wird jedoch in einigen Jahren grundlegend anders aussehen.
Wie Sie Ihre Karriere in der Programmierung zukunftssicher machen
Anstatt über die KI-Übernahme in Panik zu geraten, sollten angehende und aktuelle Entwickler Sprachmodelle für das erkennen, was sie sind: Assistenten anstatt Ersatz. Hier sind Tipps, um Ihre Fähigkeiten relevant zu halten:
Prompt Engineering lernen
Die Maximierung der Nützlichkeit von ChatGPT und GitHub Copilot hängt von der effektiven Erstellung von Aufforderungen ab. Leider ist das Prompt-Engineering derzeit eher eine Kunst als eine Wissenschaft.
Aber es macht keinen Sinn mehr, von Ingenieuren zu erwarten, dass sie alles per Hand codieren, wie es frühere Generationen getan haben. Es ist besser, neuen Entwicklern zu erlauben, neue Werkzeuge zu nutzen.
Erfahrene Programmierer sollten Zeit damit verbringen, mit Sprachmodellen unter Verwendung verschiedener Eingaben zu experimentieren und ein Gefühl dafür zu entwickeln, was funktioniert. Denken Sie daran, jedes LLM hat einen einzigartigen Stil, und es ist gut, sie zu verstehen, da sie Teil der täglichen Arbeitsabläufe werden.
Verbessern Sie Ihre Problemlösungsfähigkeiten
Menschliche Kreativität und Intuition bleiben unverzichtbar, da die Softwareentwicklung offene Probleme angeht. Nicht nur mechanisches Übersetzen von technischen Spezifikationen in Code.
Keine Menge an roher Codierungsgeschwindigkeit kann das Ausarbeiten von einfallsreichen Lösungen oder das Erstellen einfacher Architekturen in komplexen Umgebungen ersetzen. Konzentrieren Sie sich also auf das Know-how, die Kreativität und das tiefgreifende Verständnis Ihrer Branche, während Sie routinemäßige Arbeiten an KI-Gegenstücke auslagern.
Lernen Sie, sich in die Benutzer einzufühlen
Denken Sie daran, dass Code geschrieben wird, um die Wünsche und Bedürfnisse der Menschen zu erfüllen. Da KI zunehmend fähig wird, niedrigere Programmieraufgaben zu übernehmen, sollten Entwickler sich auf die Stärken konzentrieren, die Maschinen fehlen, nämlich Empathie.
Priorisieren Sie Rollen wie Produktmanager oder UX-Designer, die das Verständnis für Zielgruppen und das Entwickeln für Menschen betonen. Bringen Sie das Denken aus Nutzersicht in den Vordergrund, auch während der Zusammenarbeit mit KI-Programmierern bei der Umsetzung von Details.
Maschinelles Lernen studieren
Für diejenigen, die gespannt sind, Grenzen zu erweitern, bietet das Erforschen des maschinellen Lernens Einblicke in die neuesten KI-Fortschritte mit weitreichenden Anwendungen. Neuronale Netzwerke bilden nun die Grundlage für Lösungen von der Bildverarbeitung bis zur prädiktiven Analytik.
Das Verständnis dafür, wie Modelle funktionieren, trainiert werden und mit Softwaresystemen interagieren, kann Ihnen auch helfen, neue Möglichkeiten in Ihrer Karriere zu erschließen. Erwägen Sie, Grundlagen der Informatik mit Datenwissenschaft und ML-Kursen zu ergänzen.
Häufig gestellte Fragen
Wird KI Programmierer in 5 Jahren ersetzen?
Nein. In fünf Jahren wird KI wahrscheinlich mehr repetitive Programmieraufgaben übernehmen, aber nicht das menschliche Urteilsvermögen und die Aufsicht für die Erstellung komplexer Softwaresysteme vollständig ersetzen. Entwickler könnten eine Verschiebung ihrer Rollen mit KI-Assistenten sehen, werden aber weiterhin Lösungen und Beschränkungen entwerfen.
Wird KI jemals Entwickler ersetzen?
Eine vollständige Ersetzung scheint selbst mit fortschrittlicher künftiger KI unwahrscheinlich, angesichts der ständig weiterentwickelnden Anforderungen der Software und der Kreativität, die für die Lösung neuartiger Probleme notwendig ist. Einfache Programmierung wird letztendlich kommerzialisiert, aber nicht hochwertiges strategisches Denken. Entwickler, die lernen, KI zu nutzen, statt gegen sie zu konkurrieren, werden weiterhin beschäftigt bleiben.
Am Ende des Tages sollten Sie die Übernahme durch Maschinen nicht fürchten. Begrüßen Sie die KI-Teamkollegen, die die Produktivität über das hinaus steigern werden, was ein Ingenieur oder Algorithmus allein erreichen kann. Die Softwareentwicklung bewegt sich zu schnell, als dass eine einzelne Änderung für immer dominieren könnte. Und besonders im Kontext der Technik ist Anpassungsfähigkeit die wichtigste Fähigkeit.
Also, anstatt sich Sorgen zu machen, ob Code langfristig von biologischen oder silikonbasierten Händen geschrieben wird, pflegen Sie Vielseitigkeit, egal welche Werkzeuge auftauchen.
Wie ist Ihre Meinung zu KI-Codierungsassistenten?
Die Winde des Wandels beschleunigen sich zweifellos in der Softwaretechnik. Während KI sich schnell weiterentwickelt, kann das, was wir einst als Domäne menschlicher Erkenntnis betrachteten, nun an Maschinen ausgelagert werden.
Werden wir zulassen, dass die Angst vor der Zukunft den Fortschritt lähmt? Oder werden wir aktiv unsere Rollen neu definieren, während wir von der exponentiellen Kraft dieser Technologie profitieren?
Die formidabelsten Wettbewerber sind in der Regel diejenigen, die die neueste Technologie schnell annehmen, anstatt sich gegen Veränderungen zu wehren. Doch der Schlüssel liegt darin, menschliche Einfallsreichtum und maschinelle Intelligenz als ergänzende Kräfte auszubalancieren, anstatt sie als gegnerische Lager zu betrachten.
Und so, während die Software weiterhin die Welt erobert, sollten Programmierer das Gefühl der Angst beiseitelegen und sich selbstbewusst an komplexere und herausforderndere Projekte wagen.