Advent of Code 2019 — Tag 7

Categories Allgemein

Puh. Hätte ich gewusst, dass das so knifflig und zeitaufwendig wird und mir so schwer fallen würde, dann wäre ich den Advent of Code wohl anders angegangen. Vielleicht mit ein bisschen mehr Vorbereitung. Die Aufgaben, an denen ich mir die Zähne ausbeisse, häufen sich. Aber gleichzeitig auch die, die ich doch knacke. Und das sorgt dafür, dass die Motivation zumindest teilweise noch da ist. So auch an Tag 7!

An Tag 7 ging es wieder um den mittlerweile bekannten Intcode-Interpreter, der an Tag 2 das Licht der Welt erblickte und an Tag 5 wuchs und gedieh gedeihte. Jetzt sollte man den Interpreter jetzt nutzen, um den größtmöglichen Schub zu berechnen. Ich war ein bisschen überrascht, weil mir der erste Teil doch sehr leicht gefallen ist. Vielleicht hat es auch geholfen, dass ich ein paar Unit Tests geschrieben habe? Auch wenn ich am Anfang geschrieben habe, dass ich mich erstmal nicht um Tests kümmere, so sehe ich die mittlerweile als sehr hilfreich an. Ich hatte auch mal geschrieben, dass ich den Advent of Code in vim lösen möchte und bin dann auf einen grafischen Texteditor gewechselt. Doch zurück zum siebten Tag.

Im Prinzip musste ich für die erste Teilaufgabe nur den Code anpassen, der Eingaben entgegennimmt und auf einmal funktionierte es. Die Tests nicht failen und die Sache auf Anhieb funktionieren zu sehen, war tatsächlich irgendwie ein schönes Gefühl. Eigentlich wollte ich ja Ruby lernen, jetzt drifte ich immer mehr in Richtung TDD ab — nicht, dass ich mich darüber beschweren möchte, ganz im Gegenteil!

Was mich allerdings frustriert ist die Tatsache, dass ich für einige Aufgaben der letzten Tage nur eine der beiden Aufgaben lösen konnte, so auch an Tag 7. Manchmal habe ich den Eindruck, dass ich die Aufgaben nicht ganz verstehe, dass ich auf der Leitung stehe, dass es manchmal einfach nicht klick macht. Und dann wiederum fehlt mir einfach die Lösungsidee und die Zeit rennt davon, so auch an Tag 7. Das harmoniert jetzt nicht so gut mit dem Plan, jeden Tag einen Blogpost zu verfassen.

Deshalb werde ich ab heute für den jeweiligen Tag nur noch das berücksichtigen, was ich geschafft hat. Ich möchte keinen fremden Quellcode lesen, kopieren und mit meinem Input laufen lassen. Ich möchte vielmehr verstehen, wo meine Denkfehler liegen und das Problem selbst verstehen — und dann halt auch lösen. In der nächsten Zeit werde ich viel im Zug sitzen, vielleicht schaffe ich es da ja mal wieder, mit an die vergangenen Tage zu setzen? Dann erweitere ich wahrscheinlich die jeweiligen Blogposts. Im Gegensatz zu Tweets kann man die ja korrieren. Vielleicht schaue ich mir da doch mal die Videos von scy an?

Es würde mich tatsächlich freuen, wenn ich das rückwirkend noch hinbekomme. Wenn du eine Idee, einen Hinweis oder aber Feedback und Verbesserungsvorschläge hast, dann immer her damit, sei es als Kommentar hier im Blog oder auf Github, als Email oder als Tweet. Ich freue mich über alles!