I’m referring to the lesson: ES6: Write Higher Order Arrow Functions.
Up to this lesson, the ES6 lessons have progressed in uniform complexity, with each lesson building upon the last and using concepts previously covered in the FCC curriculum.
For example, the lesson immediately previous: ES6: Use Arrow Functions to Write Concise Anonymous Functions, builds upon the concept of const and introduces a new way to write anonymous functions. Anonymous functions are something previously seen in the curriculum, and although not explicitly defined before (AFAIK), this lesson explains quite clearly that they are common when passing functions as arguments to other functions.
However, in the next lesson, the one I originally referred to, we are introduced to higher order functions without an explanation of what these are. While some students will be able to infer what they are from the examples, like map(), filter(), etc, there should be a more explicit explanation.
Furthermore, one of these higher order functions, filter(), is used in example code, but it is not explained what this function’s purpose is.
The lesson’s exercise asks the student to write an arrow function to calculate the square of positive integers within an array, and store the output in a new array. The previous lessons are insufficient to prepare the student to complete this exercise.
It turns out, from looking at the solution page, that both filter() and map() are required to complete this exercise, but again, these functions are never explained. It’s clear that the student must do his/her own research into these functions, but this breaks the mold that most of the non-project exercises have taken, where everything required to complete the exercise has been found in previous lessons.
My suggestion is that this lesson be broken down into several smaller lessons to introduce key concepts required to finish the exercise, such as what the higher order functions do, the syntax for multiple lines of code within an arrow function, how to chain arrow functions, and anything else deemed necessary (I have yet to complete this exercise).