Hi, itâs Blazej. At the beginning of my coding learning journey, I promised myself I would not cheat.
What Do I Mean by Cheating?
When solving any exercise, I promised myself I wouldnât look up the solution until my own code was working.
Choosing The Odin Project
I decided to go with The Odin Project because I was tired of Udemy courses and YouTube videos, which were not bad by any means, but I felt like they werenât getting me anywhere.
I found it hard to focus after just three minutes of watching each video, and my thoughts would start to drift away. But this is the subject of another blog post.
Diving Into The Odin Project
The Odin Project curriculum is based on reading documentation and solving exercises, making projects, reading more documentation, solving even more exercises, and building even more projects that, as you guessed, become more difficult as you progress.
Everything was fine until I reached this point:
The Challenge of Palindromes and Fibonacci
I remember it was a long weekend, and I spent all 4 days trying to solve everything. The first few exercises went smoothly, but I got stuck on Palindromes (which I eventually solved) and Fibonacci.
Oh yes⌠That was a killer. But you might ask, there are no such exercises listed in the above picture, right? Yes, but as you go to the mentioned repository, you will find them in the 8th and 9th positions.
It took me so long to solve the previous exercises that I lost track of where I was supposed to stop and just kept going.
The Struggle With Fibonacci
I was thinking hard, having tea after tea. As time passed by, my thoughts started drastically changing from âitâs all simple, I will do itâ to âsomething is probably wrong, my thought process seems to be right, there must be some mistake in the exercise itself. Maybe I should look up the solution?â
When I study, I use the Pomodoro technique: 25 minutes of focus followed by a 5-minute break.
Pomodoros were passing by, and I managed to get to the point where I was able to get some sort of Fibonacci sequence⌠but it still seemed not right.
The Moment of Temptation
At this moment, I thought, âOK, I got to this point, there is probably something I will learn later on, so I can have a look at the solution and just move on.â
I did as I thought⌠Of course, I was like, âOh yeah, itâs that easy and logically thought out. Ok, letâs move on then!â
Realizing the Mistake
After Fibonacci, there was an object exercise to be solved, and I was confused because we hadnât gotten to objects at that point in TOP yet.
And I was right, I went a few lessons ahead by mistakeâŚ
It only assured me that cheating was the right thing, and I would soon learn something new that would make me solve it later or with more ease. Haha!
Returning to Palindromes and Fibonacci
A couple of lessons passed, which took me around a week to go through, and I was back at Palindromes and Fibonacci. This time, a little bit stressed thoughâŚ
Palindromes went smoothly, and I sat down to do Fibonacci. I have to mention here that when I opened the file with the exercise, it was, of course, solved, so I tried not to look at the code much.
I just marked everything and deleted it. However, I remembered that the first line was:
let fib = [];
The Final Struggle
I began solving it. Nothing was working. I decided to make dinner and go for a walk. Every single time I was away from the computer, my brain was racing back to Fibonacci.
I felt like I had VSCode running in my head. I swear, instead of seeing chips cooking in my air fryer, I could only see lines of Fibonacci code (especially that bloody loop and âifâ statement).
The funny feeling was, of course, imagining some solution just to realize 5 seconds later that either I had already tried this or simply realized that JavaScript doesnât work like that at all!!!
Breakthrough Moments
I ate and went for a walk. 1 hour of walking = 1 hour of deep thinking. I had 3 new solutions written in my notes and was 100% sure they would work.
Guess which of those worked out. Yes, you are right, NONE! I was still getting the same results. At that moment, I thought about adding something to the array.
I knew I needed something there. But deep in my brain, I was getting the response, âWhen you deleted the solved exercise before, that array was empty though.â I just lied to myself.
Sticking to My Principles
I went back to reading documentation and some articles, but I knew I couldnât cheat this time. I had already learned that cheating doesnât help in the long run, and I would just face the same issue later if I cheated now.
Three hours passed. I wasnât frustrated anymore. I wanted this to be solved, and I wanted to understand what I was doing wrong. I also felt as if I knew how this loop was working, and it seemed to me that I had already tried every single configuration with conditional statements.
Asking for Help
The only solution I had in my head was to reach out for help on the Discord channel.
The Solution and Lessons Learned
I solved it!!!! Look, I had to put values into that array and pull the conditional before the loop. Thatâs what my brain was actually telling me 10 or more hours before.
But because I had seen a little bit of the solution, I kept lying to myself not to do it, believing it was different. Ehh.
Conclusion
The second lesson I learned on this day was to, of course, ask for help. But I strongly encourage everyone to go through the process of reading documentation and trying to solve everything on their own, especially when they are still learning.
I learned a ton during this process and believe that I will not make this mistake again.
Now, I am much more ready to hit another wall with some other exercise. I am familiar with the process now!