Logo

Suche in HISTOFOX

AbschnittVorgehen: Programmierung

Vorgehen: Programmierung

Das konkrete Vorgehen zum Erlernen des Programmierens und anschließenden Anwendens dieses Wissens auf eigene Projekte lässt sich nicht auf eine schrittweise Anleitung herunterbrechen. Die folgende Aufzählung soll lediglich als eine Anregung verstanden werden, welche Schritte und Herangehensweisen als Teil des Einstiegs in die Programmierung erfolgen können.

  1. Ergründen der eigenen Motivation
    Wie im Abschnitt Motivation angedeutet, sollte zunächst der Frage nachgegangen werden, warum man das Programmieren erlernen möchte. Ist bereits eine konkrete Forschungsfrage vorhanden oder soll ein bestehendes Projekt für eigene Bedürfnisse modifiziert werden? In diesem Fall lohnt es sich, den Einstieg darüber zu wählen und sich auf die dafür notwendigen Tools und eine ggf. bereits vorgegebene Programmiersprache zu fokussieren. Bei einer allgemeineren Motivation lohnt es sich hingegen, zunächst mehrere Tutorials in Erwägung zu ziehen und sich für eine Motivation inspirieren zu lassen. Viele, die den Weg gegangen sind, berichten, dass sie das Programmieren nicht durch Abarbeiten von Kursen erlernt haben, sondern durch die Anwendung auf ein konkret zu lösendes Problem in ihrem (Arbeits)alltag. Daraus zogen sie auch die Energie, die besonders anfangs zeitaufwändigen Lerneinheiten zu absolvieren.
  2. Aufsetzen einer Arbeitsumgebung
    Um selbst geschriebene Programme starten zu können, sind die passenden Tools notwendig, um diese in für den Computer ausführbare Befehle zu übersetzen. Für z. B. in Python geschriebene Anwendungen muss Python installiert sein. Außerdem lohnt es sich, eine Entwicklungsumgebung (englisch Integrated Development EnvironmentEine Integrated Development Environment (IDE) - zu deutsch Integrierte Entwicklungsumgebung - ist eine Software, die verschiedene zur Entwicklung von Programmen notwendige Tools in einem Paket vereint. IDEs bieten Unterstützung beim Schreiben von Programmen, beim Übersetzen in Maschinensprache sowie beim anschließenden Ausführen und Fehlersuchen. Sie unterstützen zudem oft die Verwendung von Versionskontrollsystemen direkt aus der IDE heraus. Der konkrete Funktionsumfang ist von IDE zu IDE verschieden, so unterstützen manche nur eine Programmiersprache, während andere ein möglichst breites Spektrum unterschiedlicher Sprachen abdecken. Weiterlesen – IDE) zu installieren. Diese unterstützt während des Programmierens, u. a. durch Vorschläge, Fehler zu vermeiden, indem z. B. VariablennamenEine Variable bezeichnet im Kontext der Informatik einen mit einem Namen belegten Platzhalter, vergleichbar der Nutzung in der Mathematik. Eine Variable ist mit einem Bereich im Arbeitsspeicher des Computers verknüpft, in der dann der Wert dieser Variablen steht. Der Wert kann während der Ausführung des Programms verändert werden.  Weiterlesen vorgeschlagen oder programmiersprachenspezifische Notationen eingefügt werden. Außerdem werden offensichtliche Fehler erkannt und Entwicklungsumgebungen bieten weitere Unterstützung wie das direkte Ausführen des Programms. Zudem ist es lohnenswert, ein VersionskontrollsystemEin Versionskontrollsystem ist ein Programm, das zur Versionierung von Dateien genutzt wird. Jeder Änderungsstand eines Dokuments stellt dabei eine Version dar. Ein Versionskontrollsystem wird oft zur Verwaltung von Programmcodes eingesetzt, ist aber nicht darauf beschränkt. Jede Art von Dateien kann versioniert werden, dies funktioniert allerdings besonders gut bei Textdateien, da sich dort die Veränderungen zwischen zwei Versionen auch ohne Kenntnisse über das Dateiformat erkennen lassen. Durch Versionierung lassen sich vorhergehende Stände wiederherstellen. Es können zusätzlich abweichende Änderungen zusammengeführt werden, die durch kollaboratives Arbeiten entstanden sind. Zurzeit ist die Software git das dominierende Versionskontrollsystem. Sie ist integraler Bestand von Softwareentwicklungsplattformen wie GitHub und GitLab. Ein mittels git versioniertes Projekt kann also leicht über diese Plattformen zugänglich gemacht werden. Weiterlesen wie git einzurichten, mit dessen Hilfe Zwischenstände (Versionen) gespeichert werden können, auf die danach bei Bedarf erneut zugegriffen werden kann, um ggf. Fehler leichter nachvollziehen und in Versionen zurückgehen zu können.
  3. Wahl von Tools
    Hierunter fallen sowohl die Wahl einer geeigneten Programmiersprache als auch passender zusätzlicher BibliothekenProgrammbibliothek, kurz Bibliothek, wird in der Informatik eine Sammlung von Funktionen genannt, die in anderen Programmen eingebunden und von diesen verwendet werden kann. Eine Funktion ist in diesem Kontext ein in sich abgeschlossener Programmcode, der von anderen Stellen eines Programms aus aufgerufen und ausgeführt werden kann. Für Programmiersprachen wie Python gibt es eine ausgesprochen umfangreiche Sammlung von Bibliotheken, die komplexe Funktionalitäten z. B. für das Machine Learning bieten. Weiterlesen. Für einen Einstieg ist es hier wichtiger, sich von Vorschlägen inspirieren zu lassen und erst einmal generelle Erfahrungen zu sammeln. Unter dem Abschnitt Tools bietet auch dieser Artikel Vorschläge für Programmiersprachen. 
  4. Bearbeiten von Tutorials oder Besuch von Workshops
    Für die meisten Einsatzszenarien – von der Entwicklung von Anwendungen des maschinellen Lernens bis zum Programmieren von grafischen Benutzeroberflächen – sind mannigfaltige Tutorials in unterschiedlichster medialer Form von Text bis Video verfügbar. Auch gibt es ein breites Angebot an Online- oder Präsenz-Workshops, die die gleichen Lerninhalte anbieten.
    Diese Angebote bieten meist einen leichten Einstieg. Positiv ist zudem, dass so oft schnell eigene Ergebnisse erzielt werden und sich ein entsprechendes Erfolgserlebnis einstellt. Herausfordernd bleibt jedoch, dass naturgemäß die Qualität der unterschiedlichen Angebote schwankt und diese zudem oft nur ein enges Einsatzspektrum abdecken, aber nicht zwingend befähigen, das Gelernte auf eigene Projekte anzuwenden. Unter dem Abschnitt Tools sind einige Tutorials verlinkt, die den Einstieg in das Programmieren anhand historischer Fragestellungen besprechen. Wichtig ist dabei in jedem Fall, mit allgemeinen Tutorials und Workshops, z. B. zu einer Programmiersprache, zu beginnen und danach als Vertiefung sich mit spezialisierten Teilaspekten auseinanderzusetzen. Gerade bei allgemeinen Angeboten ist es empfehlenswert, sich zunächst auf die dort vermittelten Konzepte zu konzentrieren und eine eventuell vorhandene eigene Fragestellung vorerst zurückzustellen. Um belastbare Fähigkeiten zu erlangen, ist es wichtig, sämtliche Grundkonzepte einer Programmiersprache zu kennen, auch wenn diese über das für das eigene Projekt notwendige hinausgehen. 
  5. Eigene Projekte
    Ausgestattet mit Grundkenntnissen aus passenden Tutorials oder Workshops, ist es wichtig, diese auf eigene Projekte anzuwenden – Übung macht den Meister. Wenn keine eigene, bereits konkrete Fragestellung vorhanden ist, sind Programme zur Verwaltung der eigenen Schallplatten-, CD- oder Büchersammlung beliebte Klassiker. Wichtig ist hierbei, zunächst Schritt für Schritt vorzugehen und das Gesamtproblem in kleinere Teile zu zerlegen, die oft deutlich beherrschbarer sind. Wichtig ist auch, sich nicht von Sonderfällen (Ausnahmen von der Regel) verunsichern zu lassen. Die sollte man zunächst erst einmal registrieren und bewusst ignorieren. Für eine spätere produktive Anwendung des Codes ist deren Berücksichtigung selbstverständlich unabdingbar, um Programmabstürze und undefiniertes Verhalten zu verhindern. Für ein Übungsprojekt hingegen sollten sie jedoch schon aus Gründen der Vereinfachung nur kursorisch betrachtet werden.  
  6. Vertiefung der Kenntnisse
    Nach ersten Gehversuchen können und sollten die Programmierkenntnisse in unterschiedliche Richtungen vertieft werden. Hier gibt es ebenfalls mannigfaltige Möglichkeiten von maschinellem Lernen über das Entwickeln grafischer Benutzeroberflächen bis hin zu Webanwendungen.
    Für größere Softwareprojekte sind noch weitere Kompetenzen wichtig, die über das reine Schreiben von Code hinausgehen. Zum einen spielt die sog. Komplexität von Algorithmen eine Rolle; dabei geht es darum, wie viel Zeit und Speicher ein Programm benötigt, um eine Aufgabe zu lösen – das lässt sich oft mathematisch abschätzen. Zum anderen ist es wichtig, die Arbeit im Team zu organisieren, Aufgaben zu verteilen und den Überblick über den Fortschritt zu behalten. Diese Aspekte des Projektmanagements sorgen dafür, dass auch aufwendigere Projekte erfolgreich umgesetzt werden können. Auch wenn diese Fähigkeiten nicht direkt mit dem Programmieren selbst zu tun haben, sind sie ein zentraler Bestandteil der Softwareentwicklung. Sich auch damit zu beschäftigen, ist daher lohnenswert.