Intermediate programmers who start freeCodeCamp are faced with some or a lot of material that they already know. They can skip levels manually by skimming over the titles of the challenges. That could mean that they are skipping over content which they should have repeated instead, as a refresher.
Everyone who signs up or gets started with FreeCodeCamp could get the question if they are beginners or intermediate. Beginners are then forwarded to the start of the course, whereas everyone else can do a few tests that will determine their skills set. Those tests should be able to check off challenges where the user showed fluency. Testing will allow the user to skip tasks that are not challenging, and repeat those where the user showed a lack of fluency.
Duolingo determines the fluency of the student in their language of choice. The student can then skip levels automatically and work on challenging material.
@kkufieta Thanks for the issue. I think freeCodeCamp's approach is to allow campers to self-select their skill. It's difficult to write a quiz/exam that does skill placement appropriately 100% of the time and therefore, the easier approach may be to leave the path as it is. I'll tag this as discussing, and let others chime in.
I agree with @dhcodes, although I have a pretty good CS & front-end background, I haven't felt undermined with freeCodeCamp as I just quickly complete the challenges on my map that I know how to do. Plus, I don't mind the refresher. But that's just me, I totally get what you mean with the Duolingo thing! I started using Duolingo to brush up on my French and I couldn't bear doing the beginner vocab flashcards haha.
Closing as resolved. Will reopen if more campers request this.
@dhcodes, "resolved"? It's also a little too early for this to be decayed. We should at least hear what @QuincyLarson has to say 馃槣
You're right @atjonathan. Sorry :(
@kkufieta Thanks for sharing this feature idea. We have considered doing something like this in the past, and instead decided to just make everything but the projects optional, so experienced developers could jump straight to those if they felt like it.
This said, we haven't actually tried any sort of proficiency test, so we don't know for sure whether it would be helpful. When in doubt, test.
So here's what I propose we do. You - or someone who reads this and is interested in doing so - try to come up with a series of JavaScript-related challenges that test someone's ability. Maybe it could be adaptive, like the GMAT, where you get slightly easier questions if when you fail one, and slightly harder questions when you pass one. Over the course of 10 challenges or so, you could converge on someone's approximate ability, then suggest a point of entry in the curriculum for them (and link them directly to the right starting challenge).
This could be an open source project that is completely separate from FCC's codebase - perhaps running on something like github.io. If it becomes popular and a lot of people are using it, we could consider folding it into Free Code Camp's platform as a feature.
What do you think of this idea? You could use @bonham000's stand-alone challenge framework as a basis for building these: https://github.com/bonham000/fcc-react-tests-module
@dhcodes, it's fine 馃槂
@QuincyLarson I like the the idea! Thanks for the feedback. I will get to it early next year. If someone else does before me, let me know so I can jump in there.
@kkufieta Great. There is a good chance this will still be here early next year. Happy holidays!
@kkufieta It has been more than a month, so I am going to close this. If you'd like to create a stand-alone app that helps give campers insight into where they can start, we could help publicize it.
Most helpful comment
@kkufieta Thanks for the issue. I think freeCodeCamp's approach is to allow campers to self-select their skill. It's difficult to write a quiz/exam that does skill placement appropriately 100% of the time and therefore, the easier approach may be to leave the path as it is. I'll tag this as discussing, and let others chime in.