Motivation
Dauer: 20 Minuten
- Warum programmieren (weiter)lernen?
- Lernziele
Ziel: Motivation zu dieser Vorlesung
„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
Entwicklung von Software — nicht nur programmieren
Programmieren ist ein konkretes Beispiel für die allgemeine Fähigkeit, komplexe Probleme lösen zu können (Complex Problem Solving). Diese findet sich in den „TOP 10 Fähigkeiten“, die Unternehmen heutzutage von ihren Mitarbeitenden erwarten — siehe auch diesen Bericht 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, 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, … 😎