Has anyone else done these sections in the FreeCodeCamp Beta? I find them to be extremely confusing with the way the content is presented.
Challenge examples do not line up with what you are asked to do, skills covered in later challenges are required to pass prior challenges, etc.
Did anyone else find these sections extremely lacking in teaching methodology? Are there other sections in the Beta you found were as bad as these?
I’m debating on switching back to the regular FCC because these sections are so bad, worried I will run into more content that is overcomplicated in the Beta. Any advice?
I haven’t done the Regular Expressions section, but the ES6 section is how I learned ES6. I thought it was good, but I already knew JavaScript well when I did it, so I may not be the best measuring stick.
RegEx: Regular Expressions: Restrict Possible Usernames - You have to use a quantity specifier, but that is not covered until a later section.
Regular Expressions: Specify Upper and Lower Number of Matches - Confusing instructions on this one if you are new to RegEx. The example is a one word example, challenge is two words, so including the “no” portion is not obvious. Found other people bringing this up via Google searches.
ES6: All of the destructing exercises. The examples are so far off what is asked to do. Most likely a beginner is not going to want to wrestle with length being a property of String when the example is a generic object.
I found myself having to google many of the topics(probably 1/2) because the explanation was so confusing. Some of the concepts are rather basic, which makes it particularly annoying that I’m spinning my wheels trying to battle through how the material is presented and tested vs learning. I would usually find the answer from github where other users have brought it up, or from secondary learning sources.
I’m going to do RegEx through regexone or regular-expresions.info. I did ES6 through other avenues prior and understood it without issues, doing examples, etc.
Another example, ES6: Create Strings using Template Literals. The challenge involves using it within a function, and for the solution I used, using the map function of an array. The examples are basic, and the concept is very basic, but the challenge make it unnecessarily complicated for learning the concept.
I am going through ES6 in BETA and I am glad its not just me. It’s mapped before just after Basic JavaScript and so far through the BETA JavaScript map, not really touched reduce, filter or map but I am expected to know to use this functions for the challenge which examples are given are so basic. I have been stuck on
ES6: Create Strings using Template Literals for a considerable time, I eventually moved to basic JavaScript scripting which is a full 3-4 sections after and breezed through it.
Another thing I found was that the basic algorithm scripting section includes principles that are not covered until the Functional Programming section. This includes things like split, sorting, etc. This didn’t trip me up like the ES6 and RegEx content as I used https://developer.mozilla.org and google searches, but I could see this making things confusing for someone.
In general my feedback here for folks at FCC that are working on the beta, is look at how things are organized in terms of the order of content presentation, in addition to reviewing examples and questions in the ES6 and RegEx section. There is no coherence to the teaching style in the ES6 and RegEx section relative to the other sections I have worked through on FCC (both Beta and Regular site).
I teach for a living, and I agree with you, mikeATL. These two sections are particularly problematic. I started with the production site, and repeated them on the Beta on the advice of one of the meetup organizers in Philly. I would definitely like to help, and perhaps need to learn to fork and submit a pull request on Github (I’ve never done it before, but I feel like I ought to give something back, and read advice in that vein on the github for the Beta) because the number of problems makes raising them one-by-one in the issues forum inefficient. My thoughts are that there are 3 major classes of errors:
[Rare]: Testing suite does not correctly evaluate the test cases.
I simply cannot help with these, as this is what I came here to learn.
[Common]: The concepts could be explained more clearly to one completely unfamiliar with them. Expanding on this:
I do not mean to the level of documentation, but enough that students can learn the basics of what’s going on “under the hood” when they apply that knowledge in waypoints that are more free-form or don’t have the clearest instructions.
The hints need to be fleshed out. Every time I have sought one out on the Beta, I get a 404 error. I assume this is where basic concepts like variables and arrays can be didactically taught.
Occasionally, the “don’t color outside these lines” comments are placed in the wrong place in the model code. It happens fairly often, and should be part of the checklist for anyone reviewing a section. To a complete noob, it would be very intimidating to not pass tests while following stated directions.
[Frequent/Systemic] Some sections are presented in the wrong order pedagogically.
To second the OP: the ES6 section may need to come after the Javascript one, if training developers to be able to work on legacy ES5 code is still a saleable skill (I can only presume it is, given the COBOL nightmares I hear on reddit).
If I hadn’t basically completed the Javascript section on the production site, I would be at a complete loss regarding many of the ES6 challenges involving functional programming. It was hard enough even then, requiring a huge research hunt off-site.
I haven’t confirmed this myself in the Beta yet, but the vanilla JS section should definitely teach some function syntax [definition, invocation, etc.]
I say this with no bile, and a sincere offer to help. I can’t fix the code, but I can fix the lesson plan, especially once I go through the lessons. I learned how to code properly in AppleBASIC, Lisp, C, C++, Java and Perl even though it isn’t what I do, so I rip through the lessons and slow down on the projects, but I know that it isn’t that way for most students. Once I have completed all the lessons in Javascript, I think I will have the perspective necessary to re-organize and fine-tune the current state. I believe in this project, and now I finally understand what drives open source contributors.
@vipatron, thanks for being interested in helping. I don’t think a lot of people who work on the beta see every post on the forum, so I’ll tag @raisedadead to make sure he sees this. If you want to help, I suggest hopping on the contributors Gitter chatroom, as those are the people who really need to hear what you have to say and can help.