Warum Programmieren?
Inhalt
Warum Programmieren?¶
You cannot get educated by this self-propagating system in which people study to pass exams, and teach others to pass exams, but nobody knows anything.
You learn something by doing it yourself, by asking questions, by thinking, and by experimenting.
—Prof. Richard P. Feynman
Warum sollten - wie in diesem Kurs angedacht - Studierende der Betriebswirtschaftslehre (BWL) programmieren lernen? Die Frage wird nicht unkontrovers (und im Übrigen auch nicht zum ersten Mal in der Geschichte der BWL) disktutiert. Auf der einen Seite sind die Befürworter, die argumentieren, dass die Fähigkeit zu Programmieren in Zukunft wichtig wird, da die Welt digitaler wird und ein technisches Verständnis unerlässlich ist. Auf der anderen Seite diejenigen, die dagegenhalten und argumentieren, dass die BWL sich mit den strategischen Implikationen der digitalen Transformation auseinandersetzen und die konkrete technische Umsetzung anderen Fachbereichen überlassen sollte.
Aus meiner Sicht schließen sich beide Argumentationsstränge nicht einander aus, sondern bedingen sich im Grunde. Wie können wir die strategischen Implikationen für Unternehmen beurteilen, wenn wir keine technische Expertise haben? Die Frage, die sich jedoch stellt: was bedeutet “technische Expertise” in diesem Kontext?
Technische Expertise umfasst in diesem Zusammenhang aus meiner Sicht zwei Aspekte:
Große technologische Entwicklungen verstehen: die großen technologischen Entwicklungen insoweit verstehen, als dass wir beurteilen können, was dies für Unternehmen, für Fachabteilungen impliziert. So sollten wir z.B. Künstliche Intelligenz nicht als eine Art Zauberalgorithmus interpretieren, der irgendwie alles kann und weiß. Vielmehr sollten wir zumindest oberflächlich verstehen, was Künstliche Intelligenz ganz konkret kann und was eben nicht. Für diesen Aspekt reicht eine qualitative Auseinandersetzung aus meiner Sicht aus.
Neue Werkzeuge einsetzen: die eigenen Fachaufgaben unter Nutzung von aktuellen technologischen Mitteln bearbeiten und lösen können. Hier reicht ein qualitatives Verständnis nicht aus. Vielmehr muss die Kompetenz entwickelt werden, neue Werkzeuge und Tools zu nutzen und sinnvoll einzusetzen.
Eine Allzweckwaffe ist die Fähigkeit zu Programmieren. Dies ist zwar kein “neues Werkzeuge”, jedoch haben sich die Einstiegsbarrieren durch neue Programmierumgebungen und neue Bibliotheken signifikant verringert.
Lassen Sie uns im Folgenden deshalb ein wenig tiefer mit der Frage auseinandersetzen, weshalb auch die BWL sich mit dem Thema Programmieren
auseinandersetzen sollte.
Warum Programmieren hilfreich ist¶
Zunächst ist die Behauptung, dass die Fähigkeiten mit Daten umzugehen und zu programmieren wichtige Zukunftskompetenzen sind nicht neu. So erklärte beispielsweise die ehemalige Bundeskanzlerin, Frau Dr. Angela Merkel, im Jahr 2016, dass „das Programmieren eine Kernkompetenz ähnlich wie das Lesen, Schreiben und Rechnen werden wird“1. Ich möchte diese Vorhersage nicht wiederholen und ich vermag nicht beurteilen, ob die Vorhersage zutreffend ist - ich habe meine Zweifel. Dennoch glaube ich, dass es sehr gute Argumente für das Programmieren gibt.
Studierende der BWL sollten programmieren lernen, um:
Daten effizient für Entscheidungsunterstützung aufbereiten und analysieren zu können
repetitive Aufgaben zu automatisieren
Problemlösungsfähigkeiten zu verbessern
1. Daten effizient aufbereiten und analysieren¶
Programmierkenntnisse sind bisher kein Muss für BWLer. Jedoch verändert sich der Arbeitsalltag rasant. Die Analyse von Daten und Informationen zur Entscheidungsunterstützung ist immer eine Kernaufgabe in kaufmännischen Bereichen gewesen. Diese Aufgabe verändert sich aufgrund der verfügbaren Datenmengen, die für potentielle Analysen zur Verfügung stehen. Die Fähigkeit Daten effizient aufzubereiten und zu analysieren wird deshalb wichtiger. Programmierkenntnisse helfen hier, diesen Datenaufbereitungs- und analyseprozess zu beschleunigen und teilweise überhaupt erst zu ermöglichen.
Warum nicht Excel?
Nun mag an dieser Stelle der Einwand kommen, dass es bereits ein Werkzeug dafür gibt, welches täglich von vielen genutzt wird: Excel (oder ein anderes Tabellenkalkulationsprogramm). In vielen Bereichen wir Excel seit Jahrzehnten für die Datenaufbereitung und Analyse mehr oder weniger sinnvoll eingesetzt. Warum also kein Kurs “Business Analytics mit Excel”? Der Hauptgrund ist, dass Excel nicht für die Analyse und insbesondere Aufbereitung von sehr großen Datenmengen entwickelt wurde. Große Datenmengen lassen sich wesentlich besser mit geeignetem “Skripten” bearbeiten. Zum einen, weil diese wesentlich schneller und stabiler in der Ausführung sind. Zum anderen weil durch die Programmierung eine klare Trennung zwischen Daten und Analyse gemacht wird. Diese Trennung gibt es in Excel nicht, da jede Tabelle typischerweise Daten und Analyselogik kombiniert. Dieses Vorgehen hat einen großen Vorteil - es unterstützt die explorative Analyse - jedoch erschwert es Dritten den Aufbereitungs- und Analyseprozess nachzuvollziehen. Da wir jedoch davon ausgehen, dass die meisten Leser*innen dieses Skriptes Excel beherrschen, arbeiten wir oft mit Excel-Analogien und Einführungsbeispielen.
Warum nicht Business Intelligence Software?
Für die Analyse und Aufbereitung von großen Datenmengen gibt es seit einigen Jahren gängige BI-Software (z.B. Microsoft Power BI oder Tableau). Auch diese Tools sind gut nutzbar und potentiell hilfreich für die Datenanlyse. Dennoch glauben wir, dass es wesentliche Argumente dafür gibt, diesen Kurs zu flankieren mit einer Einführung in die Programmierung.
Zum einen ist es so dass Business Intelligence Tools (BI-Tools) sich zwar wunderbar dazu eignen Visualisierungen vorzunehmen und Dashboard zu erstellen. In der Praxis ist es jedoch typischerweise so, dass wir die Daten, die visualisiert werden sollen zunächst aufbereiten müssen. Eine große Herausforderung ist es also typischerweise Daten aufzubereiten. Damit sind nicht nur die Eliminierung von Fehlern und das Angleichen von Formaten gemeint, sondern es geht insbesondere oft auch darum, eine Datenstruktur zu finden,die für eine Visualisierung geeignet ist. Natürlich sind BI-Tools in der Lage, diese Bereinigungen und Formatveränderungen vorzunehmen. In der Praxis stellt sich jedoch oft heraus, dass diese “no Code”-Lösungen teilweise nichts praktikabel bzw nicht komfortabel sind. Es ist deshalb nicht verwunderlich, dass gängige BI-Tools eine Schnittstelle zu Programmiersprachen bereitstellen, die insbesondere für Datenanalyse und Datenaufbereitung geeignet sind (also z.B Python oder R).
Insofern sehen wir den Einsatz der Programmierung nicht als Alternative zu Nutzung von BI-Tools oder Excel, sondern vielmehr als sehr sinnvolle Ergänzung. Wir möchten Sie damit befähigen ein weiteres und aus unserer Sicht besser geeignetes Werkzeug zu nutzen, um Daten aufzubereiten und zu analysieren. Sie können selber entscheiden, ob Sie diese Werkzeug als sinnvolle Ergänzung zu Excel und BI-Tools nutzen.
2. Automatisierung von repetitiven Aufgaben¶
Die Diskrepanz zwischen technischen Möglichkeiten und unternehmerischer Realität ist oft groß. Schaut man sich Arbeitsabläufe in Unternehmen an, so stellt man fest, dass diese - trotz anderer technischer Möglichkeiten - oft durch manuelle Schnittstellenwechsel unterbrochen werden. Dateien werden manuell heruntergeladen und geöffnet und dann mit anderen Dateien zusammengeführt, bevor das Ergebnis dann per Email weitergeschickt wird, um dann wieder manuell geöffnet und mit anderen Daten verknüpft zu werden. Für diese Brüche gibt es natürlich “große” Lösungen. Diese bedingen jedoch oft den Erwerb einer neuen Standardsoftware sowie die Veränderung von unternehmensinternen Abläufen. Auch wenn diese “große” Lösung in der Theorie oft die wirtschaftlichste ist, dauert es - wenn überhaupt - Jahre bis zur Einführung, weil Investition gescheut und ein “weiter so” scheinbar einfacher ist. Die Alternative zur großen Lösung muss jedoch nicht das “weiter so” sein. Bereits geringe Programmierkenntnisse ermöglichen die (zumindest teilweise) Automatisierung der oben beschriebenen Brüche. Programmierkenntnisse helfen dabei, Potentiale für “kleine Lösungen” zu identifizieren und sogar selber zu implementieren. Letzteres ist aber gar nicht unbedingt von Nöten, da bereits das Erkennen von Automatisierungspotentialen eine Diskussion mit IT-Experten anstoßen kann, die sonst nicht geführt worden wäre. Die Identifikation von Verbesserungspotentialen in Arbeitsabläufen benötigt Experten, die diese Abläufe kennen und wird typischerweise nicht von außen angestoßen.
3. Problemlösungsfähigkeit verbessern¶
Schließlich hilft die Fähigkeit zu programmieren, komplexe Probleme besser zu verstehen und zu lösen. Programmieren ist ein Prozess zum Erstellen von Algorithmen, bei denen es sich um eine Reihe von Anweisungen handelt, die ein Computer befolgen muss. In der Wirtschaft sind Studierende oft an komplexen Entscheidungen beteiligt, was die Fähigkeit erfordert, komplexe Probleme zu verstehen und zu lösen. Programmieren kann dabei helfen, indem es den Studierenden beibringt, wie man ein Problem in kleinere Stücke zerlegt und dann einen Schritt-für-Schritt-Plan erstellt, um es zu lösen.
Programmieren: Software-Entwicklung vs. Coding¶
Es besteht kein Zweifel daran, dass die Fähigkeit zu Programmieren wertvoll ist. Jedoch wollen wir an dieser Stelle kurz darauf eingehen, was mit “Programmieren
” eigentlich konkret gemeint ist.
Keine der drei genannten Argumente bedingen, dass Studierende der BWL zu Softwareentwicklern werden. Softwareentwicklung
ist ein hochspezialisiertes Gebiet, das jahrelange Ausbildung (ggf. auch ein Informatikstudium) und Erfahrung erfordert. Programmieren hingegen ist eine relativ einfache Fähigkeit, die innerhalb weniger Wochen erlernt werden kann.2
Hier ist ein weit verbreitetes Missverständnis, bei dem viele die Fähigkeit zu programmieren mit der spezialisierten Funktion oder Aufgabe verwechseln, die normalerweise von sehr spezialisierten Personen mit Informatikhintergrund übernommen werden.
Eine Analogie: jeder von uns lernt in der Schule zu schreiben. Dennoch können (oder wollen) nur wenige von uns Romanauthoren werden. Um Romanauthor zu werden, müssen wir schreiben können. Jedoch erwerben wir die Fähigkeit zu schreiben nicht, weil wir Bücher schreiben sollen. Vielmehr handelt es sich beim Schreiben um eine Grundkompetenz, die wir für viele Arten der Kommunikation erwerben sollten.
Wir argumentieren also, dass Wirtschaftsstudenten eine Teilmenge einer breiten Palette von Programmierkenntnissen beigebracht werden sollte. Dabei meinen wir die Grundkompetenz - in unserem Falle - für den Anwendungszweck der Datenanalyse. Um diese Verwechslungsgefahr zu vermeiden, sprechen wir von nun an von Coding
, wenn wir von der Untergruppe von Programmierkenntnissen sprechen, die Wirtschaftsstudenten erlernen sollten.
Jeder kann programmieren lernen¶
Um Coden zu lernen, braucht es nicht viel. Jeder von uns kann dies lernen. Sehr viele Studierende nutzen täglich ein Tabellenkalkulationsprogramm (meist Excel). Selten hört man hier das Argument, dass Excel zu schwer sei. Jedoch verwenden wir auch in Excel viele Konzepte, die wir in einer Programmiersprachen benötigen (Funktionen, Iterationen, Variablen). Wir glauben, dass jeder, der Excel lernen kann auch in der Lage ist sinnvolle Programme zu schreiben. Darüber hinaus nehmen wir in diesem Skript an, dass viele von Ihnen Excel bereits in einem gewissen Maße beherrschen. Wir nutzen deshalb viele Analogien aus Excel, um Programmierkonzepte zu veranschaulichen. Sollten Sie Excel nicht beherrschen, können Sie jedoch einfach darüber hinweglesen. Das Skript können Sie dennoch nutzen.