What's the hardest part of FCC?

I’ve been chugging along for a while. I’m at the Intermediate Algorithms and I’m gettin my butt kicked! Is this the hardest part or is there an Advanced Algorithms that’ll make me rage-quit?

1 Like

In the javascript section i think the projects may have a couple of things that are equally hard… if you’re planning on continuing through past JS, I think there are other types of hard challenges in store.
(But nothing as hard as what you’ll find working a real job… all the challenges here have well known and documented answers which is like doing a high jump with a sturdy net below, but those real-life challenges don’t come with any known answers)


First of all I will admit that the Algorithm challenges took up so much time to figure out I quit near the end. (I don’t have time atm to focus on finishing them, even months later haha)

I will now half cheat on answering your question, and first say yes the algorithms challenges are hard they are “hard problems” so they aren’t supposed to be easy. @hbar1st stated have known solutions and are well known, so they are hard to think about, but there are a ton of resources out there to help you out.

I will now cheat and say the real hard part of Free Code Camp is expanding your knowledge base to what it doesn’t teach since there is only so much available to learn from FCC, you can easily be lead down the path of thinking that’s all there is to learn, since FCC is pretty deep right, and teaches me all I need to know?

wrong, dead wrong

FCC is a great resource, but there’s an infinite amount of things it doesn’t teach you that could appear in your day to day work as a real developer. (I didn’t say web developer, so I’m still cheating :wink: ) So the hardest part is definitely going out on your own and expanding your horizons to know what is out there and what your “missing out on”, since you will definitely need to even with finishing everything FCC has to offer. Knowing these things gives you context of where you are in terms of knowledge, which is very valuable to any developer.

Finally, going out to learn things outside of FCC might help you do parts of FCC that are hard.


The hardest part is persistence.

Getting your ass kicked is just part of it…

Coming back to regularly and willing get your ass kicked is what success looks like.


The hardest part for me is finding motivation to do the actual projects

I’ve only done the js ones because they’re quick and relatively straightforward

Hardest conceptually is probably react with redux because you really have to understand both to use them together, and they have a bit of a difficulty spike

1 Like

I’ve abandoned the ES6 portion of JavaScript to jump to the regular expressions as it didn’t just confuse me, I found all but var/let/const nigh impossible.


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.


Good to know I’m not the only “moron” that comes through here, lol.

1 Like

For me personally the answer is that it depends… If we are speaking in absolute units, then the earlier replies has answered that question. But if we are speaking in relative units, then the hardest part is when you are at the very beginning of learning how to code. It takes a while just to fully understand the concepts of variables, loops, objects, arguments, scope etc. From that point on, you can build on that knowledge and with every new day you add some small percentage of new knowledge to your ‘knowledge database’. Basically you are making small leaps from one stair to the next one. And having this concept in mind, the amount of the effort (maybe even pain for some of us) you have to put in, remains about the same level, because even though you are learning way more complicated things than those simple concepts like objects and loops, this time you already have some knowledge to build upon…


I think the hardest part everyone, including me, should learn, develop, learn, develop is the logical way of thinking in solving a problem. No matter how many algorithms you know, no matter how good you are in html/css, if you don’t see the big picture you’ll always have doubts when to use that fantastic algorithm you know, that amazing css animation to make it fit into the picture.

This kind of logic its not taught by FCC, its something each of us have to develop on our own.