Motivation

💡

Dauer: 20 Minuten

  • Warum programmieren (weiter)lernen?
  • Lernziele

Ziel: Motivation zu dieser Vorlesung

Einerseits gibt es in der fortschreitenden Digitalisierung einen Mangel an Fachkräften und andererseits verändert sich durch immer besser werdende KI-Tools die Art, wie programmiert wird.

„Software is eating the world“

Überall wird Software eingesetzt (nicht nur im Internet):

  • Musik ⟶ Spotify, Apple/Amazon/Google Music, …
  • Shopping ⟶ Amazon, eBay, Shopify, …
  • Verkehr ⟶ Tesla, Uber, selbstfahrende Autos/LKWs/…?
  • Kinos ⟶ Netflix, YouTube, …
  • Bilderstellung durch Text ⟶ Midjourney, Stable Diffusion, DALL•E

Für die allgegenwärtige Digitalisierung werden überall Leute gesucht und benötigt, die programmieren können:

  • Umstellung der Datenverarbeitung (z.B. von Papier/Excel auf eine Webandwendung mit Datenbank)
  • Automatisierung von Routineaufgaben und Prozessen
  • Entwicklung digitaler Produkte (mobile Apps, Webanwendungen, …)
  • Verlagerung der Datenverarbeitung in die Cloud
  • Datenauswertung und Data Science
  • IT-Sicherheit und Netzwerkbetrieb
  • Machine Learning und Künstliche Intelligenz

Marc Andreesen (Entwickler des Netscape-Browsers in den 90er Jahren) sagte diesen Trend bereits 2011 mit der Überschrift „Why Software Is Eating the World“ voraus.

Programmieren: Fähigkeit der Zukunft

Der IT-Branchenverband bitkom berichtet immer wieder über die Fachkräftelücke, z.B. Anfang 2022 über 96000 offene IT-Jobs. Daraus ein Zitat:

Software-Spezialistinnen und -Spezialisten sind mit Abstand am gefragtesten. Vier von zehn Unternehmen (41 Prozent) mit vakanten IT-Jobs suchen Software-Entwicklerinnen beziehungsweise Software-Architekten.

Anfang 2023 heißt es von Seiten der bitkom trotz kriselnder Weltwirtschaft:

30 Prozent der Unternehmen planen Neueinstellungen – nur 8 Prozent erwarten einen Rückgang bei der Beschäftigung

Und Ende 2024 titelt die bitkom:

KI ersetzt Jobs in der IT – und schafft zugleich neue

Entwicklung von Software — nicht nur programmieren

Programmieren ist ein konkretes Beispiel für die allgemeine Fähigkeit, komplexe Probleme durch analytisches und kreatives Denken zu lösen. Diese und weitere für das Programmieren relevante Fähigkeiten sind in den „Core skills“ zu finden, die Unternehmen heutzutage von ihren Mitarbeitenden erwarten — siehe auch den Bericht „The Future of Jobs Report 2023“ des World Economic Forums.

Insbesondere bewirken die Trends der Digitalisierung, dass es sinnvoll sein kann

  • Fähigkeiten zu erwerben, die sich nicht (leicht) automatisieren lassen.
  • Diese Fähigkeiten richtig gut zu beherrschen,
  • ⟶ woraus sich das lebenslange Lernen ergibt (neue Programmiersprachen, Frameworks und APIs, Methoden, Werkzeuge, Umgang mit KI-Tools, sich wandelnde Anwendungsdomänen, usw.).

Lernziele dieser Vorlesung

Wir haben folgende Lernziele, die selbstverständlich nach Ablauf der Veranstaltung nicht vollständig abgeschlossen sind und uns vielleicht sogar ein Leben lang begleiten:

Programmieren

  • Grundlagen der imperativen und prozeduralen Programmierung
  • Elementare Konzepte der objektorientierten Programmierung
  • Programme lesen, verstehen und anpassen können (inklusive debugging)
  • Erlerntes in andere Programmiersprachen übertragen können

„Informatisches Denken“ (computational thinking)

  • Vorgänge klar und systematisch ausdrücken, so dass sie von Computern ausgeführt werden können
  • Probleme durch Programmentwürfe lösen (sprachunabhängig)

Nicht-technische Fähigkeiten (soft skills)

  • Zusammenarbeit und Teamwork
  • Geduld, Durchhaltevermögen, Beharrlichkeit, Frustrationstoleranz, … 😎

Umgang mit KI-Tools und anderen Werkzeugen

  • Prompting und kritischer Umgang mit KI-Tools
  • Entwicklungsumgebung (IDE, z.B. VS Code)
  • Versionsverwaltung (Git)
💡

Trotz der immer mächtiger werdenden KI-Tools wird Programmieren auch in Zukunft eine wichtige Fähigkeit sein:

  • Code verstehen und anpassen können
  • Fehler finden und beheben können
  • Eigene Ideen einbringen und direkt umsetzen
  • Integration verschiedener Komponenten in einem System
  • Neueste Technologien einsetzen, die KI-Tools nicht abdecken
  • Kontrolle über den Code und die eigenen Daten behalten

Folgende Annahmen sind daher zur Zeit (noch?) zutreffend:

  • → KI-Tools verstärken die Fähigkeiten zu programmieren ‐ und umgekehrt verstärken Programmierkenntnisse die Fähigkeiten, KI-Tools einzusetzen
  • → KI-Tools sind Werkzeuge, die von Menschen eingesetzt werden, und kein Ersatz oder Konkurrenz

Erst in ein paar Jahren wird sich zeigen, wie weit es möglich sein wird, komplette Apps oder andere Software in hoher Qualität zu erstellen, ohne Code schreiben zu müssen.

Manche Systeme wie z.B. die KI-Tools von Replit sind dazu schon heute fast vollständig in der Lage.