Lösungstipp #1 - Fokus auf kleine Schritte

Um die komplette Aufgabe lösen zu können, musst du unterschiedliche Teilaufgaben erledigen. Daher macht es Sinn, dass du diese Teilaufgaben identifizierst und dann jede einzelnd (und fokussiert) erledigst. Hier hinter steht das allgemeine Prinzip “Teile und Herrsche”. D.h. es geht einfacher, wenn du eine komplexe Aufgabe solange in einzelne Teilaufgaben unterteilst, bis jede Teilaufgabe “einfach” umzusetzen ist.

Ich habe beispielsweise gesehen, dass ich die Übung in zwei Bereiche unterteilen kann:

  1. Interaktion mit dem Benutzer - hierbei geht es darum, dass ich den Text vom Benutzer erfrage, ihm den verschlüsselten Text anzeige und dann warte bis er die Anwendung beendet.
  2. Text verschlüsseln - dieses ist die eigentliche Aufgabe, welche wiederum aus weiteren Teilaufgaben besteht: Text in Großbuchstaben konvertieren, Umlaute “entfernen”, Zahlen und Sonderzeichen ignorieren und schließlich alle Buchstaben um 13 Stellen verschieben.

Nun kann ich die einzelnen Bereiche und Teilaufgaben komplett los gelöst von einander umsetzen. Das ist wichtig, damit ich mich immer nur auf einen kleinen Teil konzentrieren kann und mich nicht von anderen Teilaufgaben ablenken lasse.

Damit ich das große Ganze im Auge behalte schreibe ich mir die einzelnen Schritte als Kommentare direkt in den Quelltext. Nun kann ich für jede Teilaufgabe unterhalb des entsprechenden Kommentars den passenden Quelltext schreiben. Damit habe ich nicht nur die Lösung und eine Dokumentation, sondern wenn ich später den Quelltext umstruktiere, kann ich anhand dieser Kommentare sehen wo potentielle Methoden sind.

Vorgehen zur Lösung von Teilaufgaben

Nun sind zwar einzelne Bereiche identifiziert und Teilaufgaben vorhanden, doch wie geht es weiter?

Damit du dich nicht verzettelst ist es hilfreich, wenn du dir eine gewisse Routine angewöhnst. Bei mir geht das wie folgt:

  1. Lösung überlegen
  2. Quellcode schreiben
  3. Ausführen (Kompilieren und Starten) um Änderungen zu testen
  4. Änderungen in die Versionsverwaltung packen

Wie du sehen kannst habe ich hier nicht nur die Erstellung der Lösung drin, sondern auch die Überprüfung. Dieses ist mir sehr wichtig, weil ich immer versuche eine lauffähige Version in der Versionsverwaltung zu haben. So stelle ich sicher, dass ich mich schnell wieder einfinden kann, auch wenn ich unterbrochen werde. Das kontinuierliche abgeben der Änderungen in die Versionsveraltung hat einen weiteren Vorteil. Ich sehe später in der Historie genau wie ich eine Übung abgearbeitet habe und kann dann nochmals überlegen ob ich beim nächsten Mal etwas verbessern kann.

Dieses Vorgehen gibt mir Sicherheit, weil ich immer genau weiß was der nächste Schritt ist. Außerdem erlaubt es mir (vorausgesetzt die Aufgabe ist wirklich klein) immer in kleinen Zeiteinheiten zu arbeiten. So fällt es mir leichter Unterbrechungen zu verkraften, weil ich immer weiß wo ich gerade war.

Weiter zu Tipp #2