<p dir="auto">Challenge <a href="http://www.freecodecamp.com/challenges/waypoint-practice-functional-programming" rel="nofollow">http://www.freecodecamp.com/challenges/waypoint-practice-functional-programming</a> has an issue. Please describe how to reproduce it, and include links to screen shots if possible:</p>
<p dir="auto">I appreciate what you're trying to do by referring people to this tutorial, but it's not the greatest. In addition to not really providing detailed explanations of the functions they're trying to teach, there seem to be bugs in the answers provided at the site. For example, on exercise 20, when I click "show answer" and then run the code they provide, it does not let me move forward. I'm now stuck and can't complete this waypoint unless I do some digging through the source, and I'm certain that's not what you're trying to teach.<br>
<a href="http://imgur.com/igv8e1h" rel="nofollow">http://imgur.com/igv8e1h</a></p>
<p dir="auto">I desperately hope that the external tutorial for functional programming (<a href="http://jhusain.github.io/learnrx/" rel="nofollow">http://jhusain.github.io/learnrx/</a>) will be replaced by a module designed and created in-house. The Husain tutorial is completely overwhelming for programming novices, and is much less friendly and accessible than the modules that precede it. My frustration with it drove me away from FCC for two full weeks, and came close to making me quit the program entirely, despite having been happy and successful with the program up to that point. Here are my thoughts on how this situation could be improved.</p>
<ol dir="auto">
<li>Break it up into several waypoints on the map.<br>
The tutorial is broken up into several sections of 5-10 exercises each ("Working with Arrays", "Filtering Arrays", "Querying Trees", "Reducing Arrays", etc.). Each of these sections should be listed as a separate waypoint on the FCC map, so that learners will have some sense of progress and accomplishment on the way to completing all 42 exercises. I've worked two full, frustrating days (16 hours or more in total) on this tutorial, and haven't been able to click a single waypoint on the FCC map. This is very discouraging, especially considering that in previous modules, I was knocking off several waypoints a day.</li>
<li>Try to get Husain to fix known bugs with the exercises and tests.<br>
There is at least one other open issue about the problems with Husain's custom .concatAll(), which apparently doesn't pass his own tests in some browsers or on some systems. I won't dwell on this issue, except to say that when you're already struggling, it's very discouraging to discover that even the solutions provided by the author of the tutorial don't pass the tutorial's verification tests.</li>
<li>Replace this module with an in-house module with lots more explanation and (especially) examples.<br>
I'm sure that this tutorial makes sense to someone who already understands functional programming, and presents the material in an order that seems logical to such a person. But as a learner for whom this is the most advanced and challenging topic I've encountered so far in learning to program, I find this tutorial almost impossible to follow. The sequence of the topics may make sense, but the explanations are brief, and in most cases, no examples are provided at all, aside from the correct solution. In most cases, I had no choice but to make my best (but incomplete or incorrect) guess at a solution, then look at the correct answer and attempt to reverse-engineer it to understand it. Then the tutorial would move on to the next concept, without providing any additional examples or illustrations.</li>
</ol>
<p dir="auto">There is a much better (clearer, more practical, and more accessible) tutorial on functional programming, from tuts+ and available on YouTube (<a href="https://www.youtube.com/watch?v=ubueiy6kVUg" rel="nofollow">https://www.youtube.com/watch?v=ubueiy6kVUg</a>). I am not qualified to judge whether this tutorial teaches everything you want your functional programming module to teach, nor can I say whether there is a good way to include and verify the completion of a series of YouTube videos in your curriculum, but I can say, as a novice programmer, that the tuts+ videos by Jason Rhodes taught me more in a couple of hours than I learned in two days of banging my head against the Husain tutorial. You might consider using the tuts+ videos as an introduction to the topic, and then follow it up with some bonfires to provide practice with functional programming.</p>
<p dir="auto">Where I am now:<br>
I've gotten to the early portions of the Observables section of the Husain tutorial, and found that on exercise 32, there was no button to show the correct solution. In frustration and desperation, I eventually clicked the Show All Answers button at the top of the page -- which obliterated all my work in the previous exercises, as well as clearing the template code in several of the later exercises. I suppose I could reset my progress on the entire tutorial and begin again, but the process has been so painful and felt so unproductive that I can't see repeating it.</p>
<p dir="auto">If passing this particular functional programming tutorial is really essential to moving on in the program, then it borders on a complete roadblock for myself and other participants like myself, with only limited prior experience. I'll try to find other resources to learn these concepts, and then come back to FCC's map, but I fear that other learners might be stopped by this tutorial and never return. I don't know what follows this tutorial in the program, but in comparison to what preceded it -- both outside resources and FCC-created modules -- it is not nearly as effective.</p>