What TH is expected of us?

So guys, I would like to understand something. I am on the second stage FCC (JS). Although there were situations where I had to manually learn and check somethings before, this was never at the stage of actually being THOUGHT something.

https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/use-the-rest-operator-with-function-parameters/

For example here, I get what is thought on the left. I get it, but this is in no way enough for me to pass the requested exercise. So I have to go and search and find it from somewhere else.

Same here: https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/write-higher-order-arrow-functions - in no place before this exercise filter/map/reduce functions are explained, and I am somehow magically expected to know them. How come?

So I would like to know if this is just sloppy teaching or by design?

If it is by design I would like to express my feedback that this should be explained in the beginning of the exercise, or somewhere IN the explanation section of the exercise, and we should be given additional reading material, maybe links to locations where we can actually learn what you request us to do.

After some reading of google articles, I passed the challenge, but still, is this the way I am supposed to go about it?

https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/use-the-spread-operator-to-evaluate-arrays-in-place here, once again, we have some knowledge thrown around about: apply() / Math.max.apply - as if we are supposed to know what they do, but this has never been thought before. The exercise we need to complete is also not doable by what is thought on the left and yet again I have to head to google to pass it

I feel what you’re saying, really. I had exactly the same reaction on exactly the same challenge. My poor mangled, tired and stressed brain led me to have your same reaction. Weeks later i realised something, which is: it’s intended to be this way. It’s intended to be throwing curve balls at you.

It’s not pleasant, and it shouldn’t be. When you’re coding (and JS is really the first programming language we learn on the FCC curriculum) you WILL find this kind of challenge, you WILL have someone ask you to do something that you’ve never even heard of before.

Think for a moment that the requests on the left are not just lessons, but customers. Would your reaction be to get mad because you haven’t been told how to do something ? No, you soldier on, practice the ancient art of Google-fu, along with a good dose of MDN-jitsu, and try and find a solution.

It’s a shock, it still is to me, but it serves the purpose of giving you the right mentality and attitude towards this kind of problem.

I’m sorry if I sound like I’m patronizing you, that is really not my intention. I just wanted to let you know that you’re not alone in this, and that every other student went through exactly the same kind of thing. When you see something like that take a deep breath, re-read the instructions (multiple times, if needed) as calmly as possible, dissect the problem and begin looking from what you think is the simplest part.

No coder knows everything right off the bat. No coder remembers everything after months or years. We all have to go look for stuff :smiley: !

Good luck and as the Brits would say, Keep Calm and Code On.

EDIT: as an added note, I do agree that the “go look for” part should be made more obvious. Up until ES6 lessons everything is pretty much spoon fed to us. A warning would probably be helpful (if there is one, I didn’t see it, and if it’s not easily seen then it’s probably in a less than optimal place. UX guys !)

Thanks for the reply, I also don’t have a problem with not being spoon fed, but I was a student of theodinproject and there they don’t teach you much, they just tell you where to get the info. In this case at the very least they can say we might have to outside of FCC to solve the issue or find the unclear stuff.

But this way it looks like this course is not structured correctly and pieces are missing.

About the client part - in a way it makes sense, but in the context of teaching/learning, I believe it makes more sense to make the process as smooth as possible.

We have the projects part for real world practice, and they can be as hard as they get.

If anyone from the people who are designing the project is reading this I hope you take this suggestion.

By the way - one last update. I have been searching for answers for the specific FCC challanges that I wasn’t able to pass the tests for, even though my code seemed right. My conclusion is that the ES6 section specifically is not done really well, many people have unclear things and also in some cases the tests aren’t comprehensive enough. For example, this challange - https://learn.freecodecamp.org/javascript-algorithms-and-data-structures/es6/create-strings-using-template-literals seems unpassable at the moment, even though there are a number of valid solutions. (you can check the discussion about the challange here: https://github.com/freeCodeCamp/freeCodeCamp/issues/16358) So yes, do not get crazy over these things.

I was trying to solve everything myself up to this point, without asking for specific info, and this was my problem.

The ES6 section is pretty terrible. If I’m spending more time reading MDN or watching someone’s youtube tutorials I start to wonder if I should just skip FCC and stick with the tutorials that I’m actually learning from. It’s even more frustrating when I find questions / examples other places that show I do understand what I’m learning, but can’t figure out how t answer FCC’s questions because they are written so poorly.

I understand that searching and learning is a large part of professional work. Ideally, educational resources (like online and classroom courses) would provide a knowledge base where you can find explanations and examples. Instead FCC’s CS6 course merely brings about the need to find educational resources.

I don’t think defining a term on it’s first use or showing an example that includes both the new tool and the code that it fixes is hand holding. The way the CS6 section is structured is like learning how to work on cars by being shown how to change the oil, then shown how to change spark plugs, then being told to replace the engine while the instructor takes a smoke break, then being shown how to fill the wiper fluid.

Doesn’t matter if it’s sloppy teaching or design, it’s not as good as it can be and should be changed.

Exactly @thedjt.

My theory is that the knowledge is simply present in the wrong order, I think we should go through the whole JS section and then come to ES6 last, and then it will probably make more sense.

I will test this ‘theory’ once I finish the whole JS course and see.

Don’t get me wrong, I absolutely agree :slight_smile: The ES6 section IS indeed terrible, as demonstrated by the fact that as soon as you get past it the exercises become much more understandable and doable…

1 Like