Fundamentals Part 4 Exercises

I’ve been (slowly) going through Web Dev 101 and I’ve really understood everything so far. I’ve read each article at least twice and practiced all of the concepts. Everything was going well and I was feeling confident with what I was learning …until the Exercises from Fundamentals Part 4.

The first few exercises were fine. Challenging, yet doable. removeFromArray is where things got confusing and difficult for me.

I spent hours on this exercise trying to get all of the tests to pass but I got so frustrated. I re-read all of articles in the Fundamentals sections, I read the articles from the javascript-exercises/removeFromArray ReadMe. But I still didn’t understand what I was missing. I finally gave up and looked at the solution and was blown away.

I thought to myself, how could I have come to that conclusion? I hadn’t read anything about forEach up until this point and I didn’t know exactly how to implement spread/rest.

My question is: is my frustration normal?
I feel like this exercise in particular skipped a few levels of difficulty/knowledge, and I’ve been super discouraged especially because I haven’t even tried the rest of the exercises yet.

Please help me out!


This happens to everybody and is super normal. You don’t know what you don’t know and you won’t know you don’t know until the time comes. (Try saying that 10 times fast lol)

In all seriousness though, you’re fine. Not knowing how to do something or even where to begin in formulating logic is normal and a natural progression when learning to code or anything else for that matter. The only thing you have to do is keep learning, you’re only defeated if you give up.

When trying to solve a problem, write out the EXACT steps in plain English (ie. pseudo-code) because the computer is dumb and will execute each step exactly as instructed.

Once you have your steps written down, then proceed to tackle each step, and when you get to a step that you don’t know how to implement, break out your Google-Fu, find the solution to that one problem, understand why it’s working, then add it to your code.

After doing this a dozen times, you will find yourself doing it less and less because you’ve either upgraded your logic capabilities or you’ve done a particular thing so many times before that it zooms to the front of your mind when you come across the same situation again.

If you haven’t read this article, I would suggest taking 10 mins to do so: Why Learning to Code is So Damn Hard

Take a deep breath (or several)… you’re good.

PS. You can also do beginner algorithm problems on sites like Leetcode, HackerRank, CodeWars, Edabit, and others to get more practice solving problems.


I had a similar experience as you. Some times the exercises jump ahead of our understanding. What helps keep me at least a little bit sane, is trying to solve the problem on my own and looking at the solution when I can really go no further. I usually find that I was on the right path but there were just a few knowledge gaps that prevented me from fully completing the exercise.

Yes, your frustration is very normal.

It’s important to know that you can do everything in the projects with the things that were shown to you before that point. if you can use forEach you can use a for loop just as effectively. As for the rest operator, it’s mentioned very explicitly at some point so you can research it yourself. We believe that spread is something that is enough of a challenge to learn how to research and understand. A search for “unlimited arguments in js” brings up a great stack overflow post on it. The solution with forEach is a potential “optimal” solution and is designed to spark some interest to do some more research after you’ve solved it yourself. There are MANY ways to solve any singular problem.


Looking at a solution is not going to help you develop your engineering mindset. It is always better to ask for help first.

Long story short: If you don’t solve it yourself first, you’re not going to learn everything you need to, reliance on existing solutions is going to just limit yourself. Asking for help is always better than just looking at the solution, don’t cheat on stuff. The solutions are not always going to look the same, they’re one of many solutions possible. They’re designed to expose you to more concepts. You’re not expected to have an identical solution.

I haven’t found that to be true, Buckwheat. There have definitely been some exercises or challenges that are too difficult to solve with just the knowledge we’ve acquired from the lessons in TOP. The jump between the reading and the solution is too far.

I consider myself capable enough of doing basic searches for concepts I am not familiar with instead of just googling the answer, yet even that doesn’t always work. I’ll try to jump on the discord next time and hope someone can respond quickly.

What is your method of solving problems you’ve never encountered before?

1 Like


Yes, your frustration is very normal.

Thanks, that’s really what I was hoping to find out from this post. I recognize that looking at the solution isn’t the best way to go initially. I looked at the solution after hours (and even days) of trying to wrap my head around a solution for all the exercises. It was just discouraging especially because I had understood everything up to the removeFromArray.

I’m taking this pretty seriously and jumping to the solution right away is not what I’m doing. It’s encouraging to know that TOP community is so helpful and in the future I’ll reach out for help using the Forum or Discord versus staying stuck.

Thanks for taking the time to reply to my post.

Thank you so much. I think I was slowly slipping into giving up but your reply really helped get my mind back on track.

If you haven’t read this article, I would suggest taking 10 mins to do so: Why Learning to Code is So Damn Hard

That article has been amazing to read and helps me normalize my struggles. Thanks for your reply, I’m gonna crush these exercises now :muscle:.

1 Like

When someone has an issue with solving problems, they’re usually taking it in too big of steps. It takes a lot of working on your own mindset to solve problems.

You are meant to do your own research on topics, TOP does give you every piece of the puzzle along the way though, it’s been carefully crafted to expose you to every topic you need. There may be better ways to do things, but with what you’ve learned, you can do it.

it’s all about breaking down problems into small enough chunks you can handle it. If you’re not used to solving difficult problems, it’s a matter of isolation of sub-problems. This skill is very hard to learn. It just takes time, but looking at a solved solution isn’t going to help you develop that. You don’t get to see and feel the process of figuring things out.