Wordpress

Wird KI Entwickler ersetzen? Untersuchung der Zukunft des Codierens

Könnte die KI der Zukunft tatsächlich vollständige Apps schreiben und Programmiererjobs übernehmen? Lassen Sie uns realistisch verstehen, was KI ab 2024 leisten kann und was nicht.

Sie haben wahrscheinlich schon gehört, wie Leute über ChatGPT und andere neue KI-Chatbots gesprochen haben. Sie unterhalten sich erschreckend gut über verschiedene Themen. Und ja, sie können auch viele Codierungsprobleme lösen.

Aber ist KI eine existenzielle Bedrohung für die Karriere von Entwicklern? Oder wird es nur ein weiteres Tool zur Erweiterung der Fähigkeiten von Programmierern sein?

In diesem Leitfaden untersuchen wir die Realität der aktuellen Fähigkeiten von KI in der Softwareentwicklung, wo die Technologie immer noch unzureichend ist, und wie Sie Ihre Fähigkeiten in dieser sich schnell verändernden Landschaft zukunftssicher machen können.

Inhaltsverzeichnis
  • ChatGPT und LLMs: KI-Technologie verstehen
  • Entwicklungsaufgaben, die KI bewältigen kann
  • Die Grenzen von KI-Tools in der Entwicklung
  • Die zukünftige Rolle der KI in der Programmierung
  • So machen Sie Ihre Karriere im Programmieren zukunftssicher
  • FAQ

ChatGPT und LLMs: KI-Technologie verstehen

LLM mit Trainingsdaten auf der linken Seite, die Informationen zeigen, die in einen Trichter gelangen, und von Daten zum Chat auf der rechten Seite, die Benutzereingaben über die Musteranalyse bis hin zur generierten Antwort zeigen

Chatbots wie ChatGPT sind nicht „Denken”Programme. Sie verstehen weder Sprache noch Codierung. Sie sagen intelligent klingende Antworten voraus, indem sie Muster in riesigen Stapeln von Online-Textdaten finden.

Programmierer nennen sie „große Sprachmodelle“ (LLMs), ein schickes Wort für einen Textprädiktor auf Steroiden.

Um das „Große“ ins rechte Licht zu rücken, wurde ChatGPT anhand eines 570 GB bis 45 TB großen Datensatzes mit Textausschnitten aus Internetforen, Büchern und Online-Schreiben trainiert, und viele Informationen wurden direkt von Reddit abgerufen.

Dieser riesige Textdatenbestand ermöglicht es ChatGPT, Passagen zu generieren, Fragen zu beantworten und sogar Code auf der Grundlage von Textaufforderungen zu schreiben. Ihr Wissen stammt ausschließlich aus diesen bereits existierenden Texten, nicht aus einem wahren Verständnis der Welt.

Auch wenn ChatGPT sich offenbar gut mit Gesprächen auskennt, weist seine Intelligenz Grenzen auf.

  • Es kann den Kontext nur für bis zu ein paar tausend Wörter aufrechterhalten.
  • Es gibt keine reale Erfahrung.
  • Es kann nicht argumentieren oder intuitive Sprünge machen.
  • Es ist schwierig, komplexen Code zu verstehen.

Dennoch schreitet diese Technologie rasant voran. Wie schneiden ChatGPT und andere LLMs heute bei Codierungsaufgaben ab?

Kann ChatGPT Funktionscode schreiben?

ChatGPT kann bei entsprechender Aufforderung laufenden Code in JavaScript, Python, SQL, Bash und anderen Sprachen erstellen. Es ist ein Programmieranfänger, aber Sie können ihn immer wieder auffordern, Fehler zu korrigieren, um funktionierenden Code zu erhalten.

Bei einfachen Codierungsproblemen bietet ChatGPT eine beeindruckende Vielseitigkeit und ermöglicht es Ihnen, Zeit bei der Erstellung von Basiscode zu sparen, die Sie sonst manuell erstellen müssten. In diesen Fällen sparen LLMs den Programmierern definitiv Zeit.

Allerdings ist der Code oft ineffizient oder übersieht Grenzfälle, weil er nicht den vollständigen Kontext des Problems hat. Tatsächlich weist ChatGPT manchmal sogar darauf hin, dass der Beispielcode vor der Anwendung gründlich überprüft werden muss.

Wir wissen also mit Sicherheit, dass LLMs noch nicht so weit sind. Aber wir können uns nur vorstellen, wie gut sie sein werden, da fortgeschrittene LLMs erst ein Jahr alt sind (ChatGPT wurde am 30. November 2022 gestartet).

„Wenn die KI in diesem Tempo weiter voranschreitet, wird in den nächsten 30 Jahren die Mehrheit der Menschheit in Schwierigkeiten geraten, wenn es um Jobs geht, nicht nur Programmierer“, sagte ein Reddit-Benutzer im Subreddit /r/learnprogramming/.

Entwicklungsaufgaben, die KI bewältigen kann

Während ChatGPT nicht in die Fußstapfen eines erfahrenen Entwicklers treten kann, bietet es einen unkomplizierten Nutzen, um Programmierer effizienter zu machen. Schauen wir uns an, wie ChatGPT Sie als Programmierer unterstützen und die regelmäßigen, mühsameren Prozesse beseitigen kann.

Wiederkehrende Aufgaben automatisieren

Für erfahrene Entwickler zählt das Schreiben von CRUD-Apps, einfachen Skripten und Backend-Boilerplate-Code zu den mühsamsten Aspekten der Arbeit.

Mit KI können Sie diese Plackerei durch automatisierte Codegenerierung eliminieren. Anstatt grundlegende Benutzerregistrierungssysteme wiederholt manuell zu programmieren, könnte ein KI-Modell sofort funktionierende Prototypen erstellen, die auf das Datenbankschema jedes Projekts zugeschnitten sind.

Der Nutzen von KI für repetitive Codierung wird nur zunehmen, da Abstraktionen auf höherer Ebene durch Frameworks wie React und Django immer häufiger verwendet werden.

Erhalten Sie Inhalte direkt in Ihren Posteingang

Abonnieren Sie unseren Blog und erhalten Sie tolle Inhalte wie diesen direkt in Ihren Posteingang.

Verarbeitung natürlicher Sprache

Produktmanager formulieren Spezifikationen oft in alltäglicher Prosa wie „Benutzer sollten in der Lage sein, ihre gespeicherten Zahlungsinformationen zu aktualisieren.“ Die Programmierung solch lose definierter Verhaltensweisen lässt viel Spielraum für eine Fehlanpassung an die Erwartungen der Stakeholder.

Mit leistungsstarken LLMs wie ChatGPT 4 kann KI dabei helfen, frei formulierte Kundenanfragen zu interpretieren, um umfassende technische Anforderungen zu formulieren.

Mithilfe von Kundendokumenten und Gesprächen können LLMs dabei helfen, Anfragen in ausführbare Semantik für Programmierer zu übersetzen. LLMs können dazu beitragen, Unklarheiten aufzudecken und so bereits im Vorfeld und nicht erst in der Mitte des Projekts zu beheben, indem Sie Ihre Eingabeaufforderungen optimieren.

Fehler erkennen

KI-Modelle, die auf Mengen von Open-Source-Code trainiert wurden, können sich auch hervorragend bei der Überprüfung von Software auf Mängel eignen. Forscher bei Microsoft haben spezielle neuronale Netze zum Erkennen von Fehlern aufgebaut und dabei in einigen Tests eine höhere Genauigkeit als menschliche Programmierer erreicht.

Screenshot-Beispiel eines Systemlaufzeit-Serialisierungsausnahmefehlers für den Fall, dass ein KI-Tool angeschlossen ist. Auf der rechten Seite befindet sich ein Textfeld, das beschreibt, warum der Fehler auftritt

Quelle

Als Programmierer könnten Sie diesen KI-Mitarbeiter damit beauftragen, Commits schnell auf fehlerhafte Logik, veraltete Abhängigkeiten und sogar Sicherheitslücken zu analysieren. Anstatt manuell Tausende von Zeilen zu durchforsten, erhalten Sie kommentierte Vorschläge dazu, was behoben werden muss.

Probleme vorhersagen

Über die reaktive Fehlersuche hinaus kann ausreichend fortgeschrittene KI anhand des von Ihnen geschriebenen Codes Probleme vorhersagen, bevor sie auftreten. Dies kann erreicht werden, indem der Code kontinuierlich überprüft und festgestellt wird, ob er an irgendeinem Punkt der Ausführung fehlschlagen könnte.

Oder bei Bibliotheken und Frameworks mit vielen Downstream-Abhängigkeiten können KI-Begleiter bevorstehende bahnbrechende Änderungen vor Veröffentlichungen erkennen. Dies hilft Ihnen, Übergänge reibungsloser zu gestalten und Unterbrechungen proaktiv ohne zusätzlichen Ressourcenverbrauch zu minimieren.

Bessere Projekt- und Zeitplanung

Apropos Ressourcenverbrauch: Menschen unterschätzen chronisch, wie lange Softwareprojekte dauern werden. Entweder neigen wir dazu, zu optimistisch zu sein oder Risiken zu vergessen. Dies führt dazu, dass Projekte letztendlich das Budget und den Zeitplan überschreiten.

KI-Tools beginnen zu helfen, indem sie sich Daten aus früheren Projekten ansehen, um zu sehen, wie lange ähnliche Projekte gedauert haben. CloudBees übernimmt beispielsweise den Kontext aus allen Ihren Toolchains und macht ihn für Sie sinnvoll. Mithilfe der Informationen können dann die Zeitpläne für die Softwarebereitstellung geschätzt werden.

Natürlich kann KI nicht alles vorhersagen, was schief gehen kann, aber angesichts der Menge an Daten, die sie analysiert, bevor sie Zeitpläne abschätzt, kann sie ein guter Ausgangspunkt sein. Mit der Zeit, wenn die Tools mehr Daten erhalten, sollten sich die Schätzungen verbessern.

Optimieren Sie Ihren Code

Es ist großartig, ein zweites Paar Augen für Ihren Code zu haben. Es kann Ihnen helfen, Probleme mit der Codelogik zu identifizieren, bessere und einfachere Wege zu finden, um die gleiche Ausgabe zu erhalten, und sogar die Geschwindigkeit zu optimieren.

Während Programmierer ständig Anstrengungen unternehmen, um Systeme im Hinblick auf Geschwindigkeit und Effizienz zu verfeinern, wird es mühsam, Code durch Versuch und Irrtum zu optimieren.

LLMs können Optimierungsvorschläge bereitstellen, die Ihnen dabei helfen, Code schnell zu optimieren und umzugestalten.

Screenshot der ChatGPT-Anfrage

Anstelle blinder Vermutungen können Sie mithilfe der KI schnell niedrig hängende Früchte ausfindig machen, um maximale Gewinne zu erzielen. Möglicherweise empfiehlt es sich, Monolithen in Microservices aufzuteilen, Indizes für kostspielige Abfragen hinzuzufügen oder Frameworks für moderne Best Practices zu aktualisieren.

Die Grenzen von KI-Tools in der Entwicklung

Sollten sich Entwickler durch den Nutzen von KI bei der Automatisierung von Routineprogrammierungen und ergänzenden Entwicklungsaufgaben bedroht fühlen?

Die aktuelle Technologie hat sich selbst für mäßig komplexe Programmieraufgaben als unzureichend erwiesen. Daher scheinen Kernaspekte des Entwickler-Workflows auf absehbare Zeit weiterhin vom Menschen gesteuert zu bleiben.

Code von schlechter Qualität

Code, der vollständig von ChatGPT oder ähnlichen Modellen erstellt wird, weist tendenziell subtile Mängel auf. Obwohl der Code verwendbar ist, berücksichtigt er nicht die Vielfalt der Randfälle, die Ihnen möglicherweise bekannt sind, und ohne logische Begründung verlässt er sich ausschließlich auf das, was Sie von ihm verlangen.

Hier ist ein Experiment, das von einem GitHub-Benutzer durchgeführt wurde. Sie können sehen, dass ChatGPT hervorragende Arbeit beim Erklären und Aufschlüsseln eines Problems leistet:

Screenshot-Clip der ChatGPT-Antwort, der jede Codezeile aufschlüsselt (für n-1 ist kein Schnitt erforderlich, daher lautet die Antwort) usw

Aber dann geht es nur noch darum zu geben Teilweise korrekter Code Dabei wird die Logik zum Setzen der Antwort auf 0 übersprungen, wenn n 1 ist.

Um sicherzustellen, dass alle Randfälle berücksichtigt werden, Für den Code mussten wir diese if-Bedingung hinzufügen: wie Sie im Screenshot unten sehen können.

Teilweise korrekter Code vs. korrekter Code mit Codeausschnittfeldern, die hervorheben, wie ChatGTP die erste Codezeile durch die Ausgabe einer korrekten Anweisung korrigiert hat

Daher führt der mit ChatGPT erstellte Code im Allgemeinen zu instabilen Apps, die aufgrund nicht behandelter Ausnahmen die Produktion unterbrechen.

Solange die KI nicht radikal voranschreitet, wird der generierte Code für die meisten realen Anwendungen ohne umfassende Aufsicht und Bearbeitung zu dürftig bleiben.

Mögliche Sicherheitsrisiken

Neben Stabilitätsproblemen birgt der von Sprachmodellen geschriebene Code alarmierende Sicherheitsrisiken. Da KI Randfälle nicht immer berücksichtigen kann, kann Ihr Code anfällig für ausnutzbare Fehler und Sicherheitsrisiken sein.

Wenn Sie beispielsweise eine Webanwendung entwickeln und Benutzereingaben nicht ausreichend bereinigen, können Hacker diese ausnutzen, um über SQL-Injections und XSS-Angriffe Zugriff auf Ihre Datenbank zu erhalten.

Neuartige Probleme können nicht gelöst werden

Um menschliche Programmierer zu verdrängen, anstatt sie zu unterstützen, muss die KI neue Probleme angehen. Heutige Modelle verknüpfen Eingabeaufforderungen lediglich mit Lösungen, die während des Trainings gefunden werden. In einer unabhängigen Studie stellten die Forscher fest, dass ChatGPT bei 52 % der Codierungsfragen scheiterte, weil der Code teilweise oder falsch bereitgestellt wurde.

Allerdings entschieden sich die Benutzer aufgrund der Gesamtumfassendheit immer noch in 39,34 % der Fälle für die Antwort von ChatGPT.

Nur wenn Modelle sinnvolle Lösungen ableiten und wie Menschen über die Grundschritte hinaus denken können, können sie die Entwicklung alleine vorantreiben. Bis dahin beschränkt sich ihr Wert eher auf die Beschleunigung bekannter Aufgaben als auf bahnbrechende Fortschritte.

KI hat kein Verständnis

Bestehende KI verfügt nicht über ein angemessenes Verständnis von Code oder die Fähigkeit zum abstrakten Denken – sie erkennt lediglich Muster in den Eingabeaufforderungen und liefert relevante „klingende“ Ausgaben. Ohne Kontextverständnis ignorieren die Lösungen häufig kritische Einschränkungen oder treffen irrationale Entscheidungen, die kein Ingenieur treffen würde.

Betrachten Sie die Analogie eines medizinischen Bots, der darauf trainiert ist, Patienten zu diagnostizieren, indem er Symptome mit aufgezeichneten Krankheiten abgleicht. Es würde bei der Empfehlung gängiger Behandlungen eine anständige Leistung erbringen, könnte aber katastrophalerweise eine Chemotherapie für ein Muttermal am Bein verschreiben, nur weil oberflächlich betrachtet eine ähnliche Sprache auftauchte, die die beiden verbindet.

Im Ingenieurwesen hingegen sind menschliche Rationalität und Urteilsvermögen gefragt, um kohärente Entwürfe zu erstellen. Bis eine bessere KI erreicht ist, können Entwickler also von KI profitieren, um ihre bestehenden Codierungsworkflows zu erweitern.

Die zukünftige Rolle der KI in der Programmierung

Obwohl KI derzeit große Einschränkungen aufweist, ist das Wachstumstempo in diesem Bereich phänomenal. Innerhalb von nur einem Jahr hat sich die KI von unverständlicher Schrift zu makelloser englischer Prosa entwickelt, die nicht mehr von von Menschen geschriebenen Texten zu unterscheiden ist.

In naher Zukunft könnte KI einen Programmieranfänger ersetzen, indem sie grundlegende Programmieraufgaben automatisch erledigt. Tatsächlich übertrifft GPT-4 laut den internen Bewertungen von OpenAI seine Vorgängerversionen in allen Bewertungen, einschließlich codierungsbezogener Aufgaben, deutlich.

ein Balkendiagramm, das die Entwicklung von Chat GPT 1–3 (40–48 %) im Vergleich zu GPT-4 (ca. 55 %) zeigt

„Es wird ein Tool im Kit des Entwicklers sein, das ihre Arbeit schneller und einfacher macht und gleichzeitig eine einführt Grad an Komplexität und Undurchsichtigkeit, der zweifellos neue Probleme verursachen wird“, sagt Lawjarp2, ein Reddit-Benutzer.

Die Art der Programmierung entwickelt sich bereits weiter, wie wir bei GitHub Copilot, Amazons CodeWhisperer und vielen anderen sehen.

Die Codierung wird sich vom manuellen Tippen zum synergetischen Arbeiten mit generativen KI-Systemen wandeln – mit Menschen, die Kontext, Vision, Aufsicht und Fehlerbehebung liefern.

Dieses Hybridmodell ermöglicht es der KI, mühsame Codierungsarbeit zu erledigen, während sich Entwickler auf die Systemarchitektur auf hoher Ebene, komplexe Problemlösungen, Kreativität und die Vermeidung von Problemen konzentrieren.

Während sich Aufgaben verschieben, werden Softwareentwickler nicht vollständig ersetzt. Allerdings wird der Beruf in einigen Jahren völlig anders aussehen.

So machen Sie Ihre Karriere im Programmieren zukunftssicher

Anstatt wegen der KI-Übernahme in Panik zu geraten, sollten angehende und aktuelle Entwickler Sprachmodelle als das erkennen, was sie sind: Assistenten statt Ersatz. Hier sind Tipps, um Ihre Fähigkeiten relevant zu halten:

Lernen Sie Prompt Engineering

Die Maximierung des Nutzens von ChatGPT und GitHub Copilot hängt von einer effektiven Eingabeaufforderungskomposition ab. Leider ist Prompt Engineering derzeit eher eine Kunst als eine Wissenschaft.

Aber von Ingenieuren zu erwarten, dass sie alles von Hand programmieren, wie es frühere Generationen taten, macht keinen Sinn mehr. Es ist besser, neuen Entwicklern die Nutzung neuer Tools zu überlassen.

Erfahrene Programmierer sollten Zeit damit verbringen, mit Sprachmodellen unter Verwendung verschiedener Eingaben zu experimentieren und ein Gespür dafür zu entwickeln, was funktioniert. Denken Sie daran, dass jedes LLM einen einzigartigen Stil hat und es gut ist, diese zu verstehen, wenn man bedenkt, dass sie Teil der täglichen Arbeitsabläufe werden.

Verbessern Sie Ihre Fähigkeiten zur Problemlösung

Menschliche Kreativität und Intuition bleiben unverzichtbar, da Softwareentwicklung offene Probleme angeht. Nicht nur die mechanische Übersetzung technischer Spezifikationen in Code.

Keine noch so hohe Codierungsgeschwindigkeit kann die Entwicklung aufschlussreicher Lösungen oder die Erstellung einfacher Architekturen in komplexen Umgebungen ersetzen. Konzentrieren Sie sich also auf das Know-how, die Kreativität und das tiefgreifende Verständnis Ihrer Branche und überlassen Sie Routinearbeit den KI-Kollegen.

Lernen Sie, sich in Benutzer hineinzuversetzen

Denken Sie daran, dass Code so geschrieben wird, dass er den Wünschen und Bedürfnissen der Menschen entspricht. Da die KI zunehmend in der Lage ist, Programmieraufgaben auf niedrigerer Ebene zu übernehmen, sollten Entwickler die Stärken, die Maschinen fehlen, nämlich Empathie, verstärkt nutzen.

Priorisieren Sie Rollen wie Produktmanager oder UX-Designer, bei denen es darauf ankommt, das Publikum zu verstehen und für Menschen zu entwickeln. Bringen Sie das benutzerorientierte Denken in den Vordergrund, auch wenn Sie mit KI-Programmierern an Implementierungsdetails zusammenarbeiten.

Studieren Sie maschinelles Lernen

Für diejenigen, die Grenzen überschreiten möchten, bietet die Erforschung des maschinellen Lernens Einblicke in die neuesten KI-Fortschritte mit weitreichenden Anwendungen. Neuronale Netze unterstützen heute Lösungen von der Bildverarbeitung bis zur prädiktiven Analyse.

Wenn Sie verstehen, wie Modelle funktionieren, trainieren und mit Softwaresystemen interagieren, können Sie sich auch neue Möglichkeiten in Ihrer Karriere eröffnen. Erwägen Sie, die Grundlagen der Informatik durch Kurse in Datenwissenschaft und ML zu ergänzen.

FAQ

Wird KI in 5 Jahren Programmierer ersetzen?

Nein. In fünf Jahren wird KI wahrscheinlich mehr repetitive Codierungsaufgaben bewältigen, aber das menschliche Urteilsvermögen und die Aufsicht bei der Erstellung komplexer Softwaresysteme nicht vollständig ersetzen. Entwickler sehen möglicherweise, dass sich ihre Rollen mit KI-Assistenten verändern, werden aber weiterhin Lösungen und Einschränkungen entwerfen.

Wird KI jemals Entwickler ersetzen?

Angesichts der sich ständig weiterentwickelnden Anforderungen an Software und der Kreativität, die der Lösung neuartiger Probleme innewohnt, scheint ein vollständiger Ersatz selbst mit fortschrittlicher zukünftiger KI unwahrscheinlich. Einfache Codierung wird irgendwann zur Ware, hochwertiges strategisches Denken jedoch nicht. Entwickler, die lernen, KI zu nutzen, anstatt effektiv mit ihr zu konkurrieren, bleiben beschäftigt.

Letzten Endes haben Sie keine Angst vor der Maschinenübernahme. Begrüßen Sie die KI-Teamkollegen, die die Produktivität steigern werden, als es jeder Ingenieur oder Algorithmus allein erreichen kann. Die Softwareentwicklung schreitet zu schnell voran, als dass eine einzelne Änderung für immer dominieren könnte. Und gerade im technischen Kontext ist Anpassungsfähigkeit die wichtigste Fähigkeit.

Anstatt sich also Gedanken darüber zu machen, ob Code auf lange Sicht von biologischen oder Siliziumhänden geschrieben wird, kultivieren Sie die Vielseitigkeit, egal welche Tools auf den Markt kommen.

Was halten Sie von KI-Codierungsassistenten?

Der Wind des Wandels beschleunigt sich zweifellos in der Softwareentwicklung. Da sich die KI rasant weiterentwickelt, kann das, was wir einst als Domäne menschlicher Kognition betrachteten, nun an Maschinen ausgelagert werden.

Werden wir zulassen, dass die Angst vor der Zukunft den Fortschritt lähmt? Oder werden wir unsere Rollen aktiv neu denken und gleichzeitig von der exponentiellen Kraft dieser Technologie profitieren?

Die größten Konkurrenten sind in der Regel diejenigen, die die neueste Technologie schnell übernehmen, anstatt sich gegen Veränderungen zu wehren. Der Schlüssel liegt jedoch weiterhin darin, den menschlichen Einfallsreichtum und die maschinelle Intelligenz als komplementäre Kräfte und nicht als gegensätzliche Kräfte in Einklang zu bringen.

Und da Software weiterhin die Welt verschlingt, täten Programmierer gut daran, die Angst beiseite zu legen und stattdessen selbstbewusster an komplexeren und anspruchsvolleren Projekten zu arbeiten.

Erhalten Sie Inhalte direkt in Ihren Posteingang

Abonnieren Sie unseren Blog und erhalten Sie tolle Inhalte wie diesen direkt in Ihren Posteingang.

Leave a Reply