paint-brush
Die No-Cheat-Code-Challenge – Wie ich das Odin-Projekt überlebt habevon@codebyblazej
248 Lesungen

Die No-Cheat-Code-Challenge – Wie ich das Odin-Projekt überlebt habe

von CodeByBlazej5m2024/06/08
Read on Terminal Reader

Zu lang; Lesen

In meinem ersten Beitrag befasse ich mich mit den Höhen und Tiefen des Programmierenlernens, einschließlich der kniffligen Fibonacci-Folge und der Bedeutung von Beharrlichkeit. Ich möchte andere Programmierer, insbesondere Anfänger, inspirieren und unterhalten, indem ich meine Erfahrungen und Tipps mit ihnen teile und gelegentlich über meine eigenen Probleme lache. Begleiten Sie mich auf meiner Reise durch die aufregende Welt des Programmierens und dokumentieren Sie jeden Schritt auf diesem Weg.
featured image - Die No-Cheat-Code-Challenge – Wie ich das Odin-Projekt überlebt habe
CodeByBlazej HackerNoon profile picture

Hallo, hier ist Blazej. Zu Beginn meiner Reise zum Programmierenlernen habe ich mir geschworen, nicht zu schummeln.

Was meine ich mit Betrügen?

Beim Lösen jeder Aufgabe habe ich mir vorgenommen, erst dann nach der Lösung zu suchen, wenn mein eigener Code funktioniert.

Auswahl des Odin-Projekts

Ich habe mich für The Odin Project entschieden, weil ich genug von den Kursen und YouTube-Videos von Udemy hatte, die zwar keineswegs schlecht waren, mir aber das Gefühl gaben, dass sie mich nicht weiterbrachten.


Schon nach drei Minuten des Anschauens jedes Videos fiel es mir schwer, mich zu konzentrieren, und meine Gedanken begannen abzuschweifen. Aber das ist das Thema eines anderen Blogbeitrags.

Eintauchen in das Odin-Projekt

Der Lehrplan des Odin-Projekts basiert auf dem Lesen von Dokumentationen und dem Lösen von Übungen, dem Erstellen von Projekten, dem Lesen weiterer Dokumentationen, dem Lösen noch weiterer Übungen und dem Erstellen noch weiterer Projekte, die, wie Sie vermutet haben, mit zunehmendem Fortschritt schwieriger werden.


Alles war gut, bis ich an diesen Punkt kam:


TOP-Aufgaben



Die Herausforderung von Palindromen und Fibonacci

Ich erinnere mich, dass es ein langes Wochenende war und ich alle 4 Tage damit verbrachte, alles zu lösen. Die ersten paar Übungen verliefen reibungslos, aber bei Palindromen (die ich schließlich löste) und Fibonacci blieb ich hängen.


Oh ja… Das war der Hammer. Aber Sie fragen sich vielleicht, ob im obigen Bild keine solchen Übungen aufgeführt sind, oder? Ja, aber wenn Sie zum erwähnten Repository gehen, finden Sie sie an der 8. und 9. Stelle.


Das Lösen der vorherigen Übungen dauerte so lange, dass ich nicht mehr wusste, wo ich aufhören sollte, und einfach weitermachte.


Mörder



Der Kampf mit Fibonacci

Ich dachte angestrengt nach und trank einen Tee nach dem anderen. Mit der Zeit änderte sich meine Meinung drastisch von „es ist alles ganz einfach, ich werde es tun“ zu „wahrscheinlich stimmt etwas nicht, mein Denkprozess scheint richtig zu sein, es muss ein Fehler in der Übung selbst sein. Vielleicht sollte ich die Lösung nachschlagen?“


Mehrere meiner Versuche


Beim Lernen verwende ich die Pomodoro-Technik : 25 Minuten Konzentration, gefolgt von einer 5-minütigen Pause.


Pomodoros vergingen und ich schaffte es, an den Punkt zu gelangen, an dem ich eine Art Fibonacci-Folge hinbekam … aber es schien immer noch nicht richtig.


Gebrochene Fibonacci



Der Moment der Versuchung

In diesem Moment dachte ich: „OK, ich bin an diesem Punkt angekommen, wahrscheinlich werde ich später noch etwas lernen, also kann ich mir die Lösung ansehen und einfach weitermachen.“


Ich habe getan, was ich dachte … Natürlich dachte ich: „Oh ja, es ist so einfach und logisch durchdacht. Ok, dann machen wir weiter!“

Den Fehler erkennen

Nach Fibonacci gab es eine Objektübung zu lösen, und ich war verwirrt, weil wir zu diesem Zeitpunkt in TOP noch nicht bei Objekten angekommen waren.

Und ich hatte recht, ich war aus Versehen ein paar Stunden vorgerückt …


Es hat mich nur darin bestärkt, dass Schummeln das Richtige war und ich bald etwas Neues lernen würde, wodurch ich das Rätsel später oder einfacher lösen konnte. Haha!

Zurück zu Palindromen und Fibonacci

Ein paar Lektionen vergingen, für deren Bearbeitung ich etwa eine Woche brauchte, und ich war wieder bei Palindromen und Fibonacci. Dieses Mal allerdings ein bisschen gestresst …


Palindrome liefen reibungslos und ich setzte mich hin, um Fibonacci zu berechnen. Ich muss hier erwähnen, dass die Datei mit der Übung natürlich gelöst war, als ich sie öffnete, also versuchte ich, nicht zu viel auf den Code zu schauen.


Ich habe einfach alles markiert und gelöscht. Allerdings fiel mir ein, dass die erste Zeile lautete:


 let fib = [];

Der letzte Kampf

Ich begann, das Problem zu lösen. Nichts funktionierte. Ich beschloss, Abendessen zu machen und spazieren zu gehen. Jedes Mal, wenn ich vom Computer weg war, raste mein Gehirn zurück zu Fibonacci.


Ich hatte das Gefühl, als würde VSCode in meinem Kopf laufen. Ich schwöre, statt Pommes frites in meiner Heißluftfritteuse zu sehen, konnte ich nur Zeilen mit Fibonacci-Code sehen (insbesondere diese verdammte Schleife und die „if“-Anweisung).


Das komische Gefühl war natürlich, mir irgendeine Lösung vorzustellen und 5 Sekunden später festzustellen, dass ich das entweder schon versucht hatte oder einfach festgestellt habe, dass JavaScript so überhaupt nicht funktioniert!!!

Durchbruch-Momente

Ich habe gegessen und bin spazieren gegangen. 1 Stunde spazieren gehen = 1 Stunde tief nachdenken. Ich hatte 3 neue Lösungen in meinen Notizen aufgeschrieben und war 100 % sicher, dass sie funktionieren würden.


Notizen auf meinem Telefon



Raten Sie mal, was davon funktioniert hat. Ja, Sie haben Recht, KEINES! Ich habe immer noch die gleichen Ergebnisse erhalten. In diesem Moment dachte ich darüber nach, dem Array etwas hinzuzufügen.


Ich wusste, dass ich da etwas brauchte. Aber tief in meinem Gehirn bekam ich die Antwort: „Als du die gelöste Übung vorher gelöscht hast, war dieses Array aber leer.“ Ich habe mich einfach selbst belogen.

Ich bleibe meinen Grundsätzen treu

Ich las mir noch einmal die Dokumentation und einige Artikel durch, wusste aber, dass ich diesmal nicht schummeln konnte. Ich hatte bereits gelernt, dass Schummeln auf lange Sicht nichts bringt und dass ich später vor demselben Problem stehen würde, wenn ich jetzt schummeln würde.


Drei Stunden vergingen. Ich war nicht mehr frustriert. Ich wollte, dass das Problem gelöst wurde, und ich wollte verstehen, was ich falsch gemacht hatte. Ich hatte auch das Gefühl, zu wissen, wie diese Schleife funktionierte, und es kam mir so vor, als hätte ich bereits jede einzelne Konfiguration mit bedingten Anweisungen ausprobiert.

Nach Hilfe fragen

Die einzige Lösung, die mir einfiel, war, im Discord-Kanal um Hilfe zu bitten.


Um Hilfe betteln


Bitte…



Mein Gehirn hat aufgegeben



Yay!



Danke schön!!!



Die Lösung und die gewonnenen Erkenntnisse

Ich habe es gelöst!!!! Schauen Sie, ich musste Werte in dieses Array einfügen und die Bedingung vor der Schleife ausführen. Das hat mir mein Gehirn eigentlich schon 10 oder mehr Stunden zuvor gesagt.


Aber weil ich einen kleinen Teil der Lösung gesehen hatte, redete ich mir immer wieder ein, es nicht zu tun, weil ich glaubte, es wäre anders. Ähh.


Lösung!



Abschluss

Die zweite Lektion, die ich an diesem Tag gelernt habe, war natürlich, um Hilfe zu bitten. Aber ich empfehle jedem dringend, die Dokumentation zu lesen und zu versuchen, alles selbst zu lösen, insbesondere wenn man noch in der Lernphase ist.


Ich habe während dieses Prozesses eine Menge gelernt und bin überzeugt, dass ich diesen Fehler nicht noch einmal machen werde.


Jetzt bin ich viel besser darauf vorbereitet, mit einer anderen Übung gegen eine andere Wand zu rennen. Ich bin jetzt mit dem Prozess vertraut!