Swift-Tagebuch, Teil 1

Wie ich mit Swift Playgrounds programmieren lernte

| Autor / Redakteur: Christian Rentrop / Stephan Augsten

Wem Byte nicht gefällt, der kann auch auf einen anderen Charakter umsteigen.
Wem Byte nicht gefällt, der kann auch auf einen anderen Charakter umsteigen. (Bild: Rentrop / Apple)

Apple verspricht mit der Programmiersprache Swift einen einfachen Einstieg in die komplexe Programmierung. Unser Autor hat sich an der Sprache versucht, obwohl er sich bislang kaum mit praktischem Coding befasst hat. Ein Erfahrungsbericht in drei Teilen.

Als Apple Ende 2014 die Programmiersprache Swift vorstellte, war ich sofort davon angetan: Eine einfache Sprache sollte das sein, einsteigerfreundlich, die das Beste aus allen Welten vereint. Und, wie so oft bei Apple, wurde auch gleich mit viel Pathos der Bildungsauftrag verkündet.

Eine App namens Swift Playgrounds soll schon Kindern dabei helfen, sich die Grundlagen der Programmierung anzueignen. Ich beschloss, mich mit Swift zu befassen, doch wie das so ist im Leben: Arbeit und Alltag verhindern den Einstieg – und mangels konkreter Projekte fehlt dann auch die Motivation, sich in eine Programmiersprache hineinzufuchsen.

Hinzu kommt: Zwar kenne ich die theoretischen Grundlagen der Programmierung; doch praktische Erfahrung fehlt mir, von einigen Versuchen in Simpel-Sprachen wie Basic, Turbo Pascal und Java abgesehen. Insofern bin ich der ideale Kandidat, um mir mit Swift das Programmieren beizubringen – oder es zumindest zu versuchen.

Tag 1: Aller Anfang ist schwer

Es gibt eine Reihe von Möglichkeiten, sich eine neue Sprache – und demzufolge auch eine Programmiersprache – anzueignen: Man kann dicke Bücher kaufen und erst einmal Grammatik und Vokabeln pauken. Oder man geht praktisch an die Sache heran, stürzt sich ins Getümmel, hört zu und redet mit.

Da ich den praktischen Ansatz bevorzuge, habe ich mir als erstes Swift Playgrounds für das iPad heruntergeladen. Hier wird der unbeleckte User in Form einfacher Lektionen an das Programmieren mit Swift herangeführt – ideal für jemanden wie mich, auch wenn die App sich eher an Schulkinder richtet.

Swift Playgrounds hat mich stark an das Programm „Niki, der Roboter“ erinnert, mit dem wir, pubertierend und andere Dinge im Kopf, Anfang der 90er Jahre auf ollen Schulrechnern programmieren lernen sollten.

Tag 2: Die ersten Playgrounds-Lektionen

Swift Playground ist wie gesagt in einfache Lektionen aufgeteilt – und das sehr spielerisch: Es geht darum, den an typische Pixar-Monster erinnernden Charakter „Byte“ in einer kleinen 3D-Welt zu bewegen, damit er einen Edelstein einsammeln kann. Ich füge Lektion um Lektion Code-Befehle hintereinander:

moveForward()
moveForward()
turnLeft()
collectGem()
moveForward()
toggleSwitch()

... und so weiter. Playgrounds ist also tatsächlich die moderne Variante von Niki. Verkehrt ist das nicht: Ein Coding-Noob wie ich hat durch die stete Wiederholung schnell Erfolgserlebnisse. Bei Kindern dürfte das nicht anders sein. Das liegt auch daran, dass der Charakter Byte so schön tanzt, wenn man ihn korrekt geführt hat. Und falls doch ein „moveForward()“ zuviel ist, stürzt er nicht etwa ab, sondern taumelt einfach nur, um dann mit den nächsten Schritten weiterzumachen.

Das erhöht bei Kindern sicherlich die Frustrationstoleranz, bei mir als Erwachsenem kocht aber der Gedanke an Helikopter-Eltern und Nichterlernen der Konsequenzen des eigenen Handelns hoch. Sagen wir es so: Eine Absturz-Animation (sic!) könnte den Lerneffekt möglicherweise noch erhöhen. Aber das gehört nicht hier hin.

Tag 3: Der Playground wird komplex

Nachdem ich mich durch die ersten Lektionen gearbeitet habe – das Kolloquium ist streng, schon in der fünften Übung ist „Bugfixing“ angesagt – führt Playgrounds Funktionen ein. Schon die Verwendung der geschweiften Klammer auf dem iPad-Smart-Keyboard ist knifflig, denn sie muss über die Alt-Taste bzw. den zweiten Layer der Bildschirmtastatur ausgelöst werden. Dass sie fehlt, liegt aber am Mac-artigen QWERTZ-Layout.

Trotzdem zeigt Playgrounds an dieser Stelle, dass kluge Lehrkräfte am Werk waren: So fehlt der Befehl „rechts drehen“, der nun per Funktion („dreimal links drehen“) definiert werden soll. Das vermittelt spielerisch den Sinn von Funktionen – Klasse!

In den folgenden Lektionen werden verschachtelte Funktionen erklärt, gefolgt von bedingten Anweisungen, bevor es an die ersten Algorithmen geht. Immer wieder rennt mir Byte in die Begrenzung, weil ich schlicht den ein oder anderen Schritt übersehe – und lerne so spielerisch, dass Problemanalyse der erste Schritt für die effiziente Programmierung ist.

Tage 4, 5 und 6: Es geht an die zweite Lektion

Nachdem ich Byte brav durch alle Level der ersten Lektion geführt und dabei viel gelernt habe, setze ich mich mit Lektion 2 auseinander: Diesmal gilt es, eine neue Figur mithilfe von Variablen, Parametern und Arrays zu führen. Allerdings will ich zunächst einmal meinen Byte zurück – nur gut, dass der Charakter jederzeit durch einfaches Antippen geändert werden kann.

Auch in Lektion 2 stolpert Byte regelmäßig, doch mit jeder Lektion werde ich ein Stückchen besser – und verstehe zunehmend die Funktionsweise von Code, Algorithmen, Variablen und vielen anderen Grundlagen der Programmierung, von denen ich bisher nur theoretisch Ahnung hatte. So lerne ich mittels Variablen auch, Counter hoch- und herunterzuzählen, was für versierte Programmierer sicher kinderleicht ist, für Einsteiger wie mich jedoch durchaus eine Herausforderung.

Mit jeder Lektion wird das Problem größer; die Lösung verlangt immer öfter, dass ich bereits gelernte Lektionen nutze, um das jeweils neue Problem zu lösen. Dabei verfestigt sich die Vorgehensweise nach und nach in meinen Synapsen – ja, ich beginne zu begreifen, auch wenn Swift Playgrounds „nur“ eine vereinfachte Variante von Swift ist.

Die zweite Woche

Nach einer aufregenden Woche mit den Lektionen 1 und 2 für das Erlernen des Basiswissens zur Programmierung, widme ich mich in der zweiten Woche der dritten Lektion. Die geht direkt ans Eingemachte. Fortan müssen nicht nur die vorab erlernten Fähigkeiten umgesetzt werden, nein: Hier wird schon richtig programmiert.

Der in Playgrounds gezeigte Code ist nun komplex und recht lang. So muss ich Bilder platzieren und Effekte durchführen und reale Bewegungen auf dem Touchscreen mit dem „Spiel“ interagieren lassen. Hier merke ich leider, dass ich noch nicht reif bin: Irgendwo auf dem Weg zu Lektion 3 kam ich in Playgrounds ins Straucheln – und sollte vielleicht Lektion 2 noch einmal wiederholen? Aber auch das ist kein Problem, denn Übung macht bekanntlich den Meister.

Insgesamt erleichtert Swift Playgrounds den Einstieg in die Programmierung im Allgemeinen und die Entwicklung mit Swift im Besonderen deutlich. Die steile Lernkurve des nicht immer ganz kindgerechten Lernprogramms hilft dabei, Swift zu verstehen und den typischen Duktus zu erlernen – ganz egal, ob man noch in die Schule geht oder sich einfach so mit der Swift-Programmierung befassen möchte.

Im zweiten Teil des Tagebuchs wage ich deshalb auch den Sprung in die Umprogrammierung vorhandener Swift-Projekte.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 45467167 / Frameworks & Sprachen)