Suchen

Einstieg in KI und Machine Learning, Teil 1 Welche Skills muss ein KI-Entwickler mitbringen?

Autor / Redakteur: Christian Rentrop / Stephan Augsten

Machine Learning und KI werden immer wichtiger. Der Weg in die KI-Programmierung ist jedoch nicht ohne Hürden. Software-Entwickler sollten sich deshalb einige Fähigkeiten aneignen, um für die Zukunft gerüstet zu sein.

Firmen zum Thema

Was muss ein Entwickler mitbringen, wenn er KI- und ML-Projekte erfolgreich zum Abschluss bringen möchte?
Was muss ein Entwickler mitbringen, wenn er KI- und ML-Projekte erfolgreich zum Abschluss bringen möchte?
(Bild: anaterate / Pixabay )

Von banalen Machine-Learning-, kurz ML-Algorithmen bei Webanwendungen bis hin zu komplexen autonomen Systemen in der Industrie oder im Automobilbau: Leistungsfähige Systeme mit gewisser Intelligenz sind in zukünftigen und zukunftsweisenden Anwendungen nicht wegzudenken.

Überall schreit der Markt nach Software-Lösungen, die über eine gewisse Selbstständigkeit verfügen und die zunehmende Komplexität der Datenverarbeitung automatisiert erledigen. Software-Entwickler tun deshalb gut daran, sich mit der KI- und Machine-Learning-Technologie vertraut zu machen.

Die Industrie stellt an Entwickler dieser Software-Gattung deshalb gewisse Anforderungen, die es zu erfüllen gilt, um künftig an spannenden Projekten mitarbeiten zu können. Im Folgenden stellen wir die wichtigsten Skills vor, die ein KI- und ML-Developer mitbringen oder sich aneignen sollte.

1. Beherrschen bestimmter Programmiersprachen

Die KI-Entwicklung ist zwar grundsätzlich mit die meisten modernen Programmiersprachen möglich, manche eignen sich dafür aber besser als andere. Neben Standards wie C samt seinen Derivaten sollten Programmierer, die ihre Zukunft in der Entwicklung intelligenter Systeme sehen, deshalb auch Python beherrschen. Python besitzt eine sehr aktive Community, besitzt eine Vielzahl von frei verfügbaren Bibliotheken für viele Anwendungszwecke und ist für die Machine-Learning-Anwendung optimiert.

2. Unix-Expertise

Es ist kein Geheimnis, dass viele KI-Systeme auf Unix und Linux basieren. Für die Programmierung intelligenter Systeme ist es deshalb wichtig, die Unix-Umgebung zu beherrschen. Das erleichtert nicht nur die Programmierung an sich, sondern auch die Anbindung von Datenbanken zur statistischen Auswertung, Web-Interfaces oder Sensoren, Motoren und Steuerungssystemen. Virtuosität bei den Standard-Unix-Anwendungen in der Kommandozeile ist daher Pflicht und ein wenig Erfahrung bei der Programmierung von Linux und Co. ist in der KI-Entwickler-Praxis jederzeit hilfreich.

3. Erfahrungen mit verteiltem Rechnen

Komplexe KI-Anwendungen benötigen enorme Rechenleistung. Um diese bereitzustellen, müssen Server und smarte Systeme eine möglichst solide Einheit bilden. Wer die Verteilung der Rechenleistung von verschiedenen Teilsysteme beherrscht und Kenntnisse über die reibungslose Vernetzung von Clustern bei Distributed Computing besitzt, hat deshalb ideale Voraussetzungen für die Arbeit mit Machine-Learning- und KI-Systemen. Rechencluster sind zudem im Betrieb vergleichsweise teuer, weshalb die Fähigkeit, vorhandene Kapazitäten effizient zu nutzen, ebenfalls ausgesprochen hilfreich ist.

4. Expertise in der Datensammlung und -aufbereitung

Die Erkenntnis, dass Daten nicht gleich Daten sind, ist in der Entwicklung von intelligenten oder gar autonomen Systemen grundlegend. Entwickler, die Daten nicht nur zielführend sammeln, filtern und sinnvoll aufbereiten, sondern auch gewichten und notfalls verwerfen können, sind deshalb für die Arbeit an intelligenten Systemen prädestiniert. Schließlich geht es auch bei der Arbeit mit Daten nicht zuletzt um die effektive Ausnutzung vorhandener Rechen- und Speicherkapazitäten und damit um einen nicht unerheblichen Kostenfaktor.

5. Mathematische und statistische Kenntnisse

Programmierung ist Logik und damit natürlich auch Mathematik, trotzdem ist nicht jeder Programmierer ein guter Mathematiker. Doch bei der Entwicklung intelligenter Systeme ist ein grundsolides Verständnis von Mathematik und insbesondere des Teilbereichs der Statistik Pflicht.

Die Programmierung statistischer Auswertung von zuvor gezielt gesammelten Daten erlaubt Rückschlüsse auf Tendenzen und Trends. Das wiederum ermöglicht erst die Entwicklung von KI-, Machine-Learning- und Deep-Learning-Systemen. Das tiefe Verständnis statistischer Zusammenhänge befähigt KI-Programmierer, gezielt Probleme bei der Software-Entwicklung zu lösen.

6. Kenntnisse der (Sensorik-)Hardware

Gerade in der Elektronikindustrie, der Robotik oder beim Automobilbau geht es natürlich bei der KI-Entwicklung auch immer darum, Sensordaten zu verarbeiten. Hier ist es deshalb sinnvoll, sich neben den Software-Schnittstellen auch ein wenig mit der Sensorik-Hardware auszukennen. Für die die Auswahl entsprechender Hardware sind natürlich andere Abteilungen zuständig, trotzdem helfen Kenntnisse der für das Projekt wichtigen Sensorik dabei, nicht nur vorhandene Hardware effektiver zu nutzen, sondern auch einen fruchtbaren Austausch mit Ingenieuren führen zu können.

7. Abstraktes Denken und Kreativität

In der KI-Entwicklung zählt das abstrakte Denken natürlich genauso zu den Kernkompetenzen wie eine gewisse Kreativität bei der Lösung von Problemen. Wie überall in der Softwareentwicklung gibt es auch bei der KI-Entwicklung keinen „vorgeschriebenen“ Lösungsweg, trotzdem müssen Entwickler vorhandene Lösungen regelmäßig hinterfragen und gegebenenfalls neu umgesetzt können, um einen Fortschritt zu erzielen.

8. Schnelle Auffassungsgabe und Flexibilität

Dass sich bei der KI-Entwicklung gerade in größeren Projekten immer wieder Voraussetzungen ändern, ist bekannt. Genau deshalb sollten KI-Entwickler auch in der Lage sein, einen bereits beschrittenen Pfad der Entwicklung wieder zu verlassen und gegebenenfalls einen neuen Ansatz zu wählen. Hierfür braucht es nicht nur Flexibilität, sondern auch die Fähigkeit, neue Sachverhalte schnell aufzunehmen,

9. Geduld und Beharrlichkeit

Natürlich sind KI- und Machine-Learning-Projekte auch nichts anderes als Entwicklungsaufgaben. Und wie sooft bei der Programmierung kommt es immer wieder vor, dass etwas nicht so funktionieren will, wie es sollte. In solchen Fällen sind Geduld und Beharrlichkeit gefragt, um letztlich doch ans Ziel zu gelangen – eine Eigenschaft, die jeder Software-Entwickler haben sollte.

10. Gute Allgemeinbildung und Empathie

Zu guter Letzt sollen intelligente Algorithmen am Ende des Weges natürlich auch mit Menschen interagieren und sie unterstützen. Auch, wenn ein Entwickler nicht direkt mit der Mensch-Maschine-Kommunikation befasst ist, kann es hilfreich sein, diese immer im Hinterkopf zu behalten. Eine breite Allgemeinbildung kann dabei helfen, diese Schnittstelle für den User möglichst attraktiv zu gestalten; besonders, wenn sich der Entwickler in den Nutzer eindenken kann, um ihm ein optimales Nutzungserlebnis zu ermöglichen.

Sicherlich sind hier vor allem Frontend- und Interface-Designer gefragt, trotzdem kann eine intelligente Software immer auch als Bedrohung wahrgenommen werden. Kommuniziert sie auf Augenhöhe mit dem Nutzer und wirkt dabei empathisch, ist das das Werk ihres Programmierteams – und die Chancen stehen gut, dass die Software positiv aufgenommen wird.

Fähigkeiten, die jeder Entwickler haben sollte

Insgesamt sind bei KI-Entwicklern ähnliche Fähigkeiten gefragt wie bei der regulären Softwareentwicklung. Der Unterschied ist, dass mehr davon gleichzeitig benötigt werden, um intelligente Software möglichst effizient und nutzerfreundlich zu gestalten. Wer möglichst viele der genannten Eigenschaften auf sich vereinigt, wird künftig auch bei der KI-Entwicklung erfolgreich sein.

(ID:46965490)

Über den Autor

 Christian Rentrop

Christian Rentrop

IT-Fachautor