The hardest part of FCC is putting in the work. The hardest part is being willing to struggle. Most students are able to go through some portion of FCC fairly smoothly. They’ll hit challenges that confuse or frustrate them, but overall it’s a pretty straightforward short cycles of “read, try a few things, possibly get some straightforward help, pass tests, gold star”. Eventually it stops working that way. It’s a different point for different people. Projects are a common stall-out point. So are ES6 and algorithms. At some point, solving challenges becomes a real struggle. It isn’t fun anymore. You feel like a damn moron. You swear you’ve tried every single reasonable thing and nothing works. You haven’t gotten a hit of that sweet “Good Job!” drug in days. It’s a weird combination of hard and tedious. (Spoiler: this is what a lot of being a programmer is… forever.)
Maybe your natural reaction to this is to “take a break” or sort of drift away from FCC, or “go try another course and come back”. Maybe it’s to tell yourself the challenge is the problem and skip it (and then maybe the next one… and then maybe the whole section is the problem). Maybe you decide to look at the solution “just this once” and tell yourself that you’re learning just as much by reading an answer than coming up with one (and then you look a the solution for the next one because you didn’t really get this one, and then…).
I’m not trying to say that taking a day off, or skipping a specific challenge, etc aren’t ever a good idea. My point is that the hardest part of FCC - and of learning to program, and of being a professional programmer - is working through the process of struggling. Syntax and algorithm design are important skills that you are building here, but so are the skills of moving forward when you’re frustrated, overwhelmed, and confused.