Soon the freeCodeCamp curriculum will be 100% project-driven
learning. Instead of a series of coding challenges, you'll
learn through building projects - step by step. Before we
get into the details, let me emphasize: we are not changing
the certifications. All 6 certifications will still have the
same 5 required projects. We are only changing the optional
coding challenges.
After years - years - of pondering these two problems and
how to solve them, I slipped, hit my head on the sink, and
when I came to I had a revelation! A vision! A picture in my
head! A picture of this! This is what makes time travel
possible: the flux capacitor!
It wasn't as dramatic as Doc's revelation in Back to the
Future. It just occurred to me while I was going for a run.
The revelation: the entire curriculum should be a series of
projects. Instead of individual coding challenges, we'll
just have projects, each with their own seamless series of
tests. Each test gives you just enough information to figure
out how to get it to pass. (And you can view hints if that
isn't enough.)
The entire curriculum should be a series of projects
No more walls of explanatory text. No more walls of tests.
Just one test at a time, as you build up a working project.
Over the course of passing thousands of tests, you build up
projects and your own understanding of coding fundamentals.
There is no transition between lessons and projects, because
the lessons themselves are baked into projects. And there's
plenty of repetition to help you retain everything because -
hey - building projects in real life has plenty of
repetition.
The main design challenge is taking what is currently
paragraphs of explanation and instructions and packing them
into a single test description text. Each project will
involve dozens of tests like this. People will be coding the
entire time, rather than switching back and forth from
"reading mode" to "coding mode".
Instead of a series of coding challenges, people will be in
their code editor passing one test after another, quickly
building up a project. People will get into a real flow
state, similar to what they experience when they build the
required projects at the end of each certification. They'll
get that sense of forward progress right from the beginning.
And freeCodeCamp will be a much smoother experience.