Instant applicability helps in effective learning

I first discovered fCC back in 2016. Here is one observations on how to improve its effectiveness.

The basic problem is that effective learning requires repetition and application.
So when progressing with the Cat App I’m also creating my own pages to learn the HTML syntax effectively. I’m just sitting with a blank page and creating a page without using reference unless I actually forgot how some element works.

Here a problem is revealed - the buttons in the cat app are pointless because they are useless. There’s no reason to create page after page with non-functional forms and buttons.

This ties to learning JavaScript. One learns theory without application. Most reasonably, one could learn basics of JavaScript with buttons and forms to allow practicing JavaScript using basic operations. For example here is a project I did when I was learning JavaScript back in 2018 and updated later:

One can create different calculation and similar tools, preferably practicing from scratch, to effectively memorize the syntax and what does what. This is a great help in learning JavaScript so student should be led to that stage as quickly as possible with specifics of syntax being taught when one can apply them practically and use practical projects for active use of skills.

While gamification helps with motivation, there’s also a problem of empty progress where one progresses to further stages without actually gaining applicable skills.

There is only one button in the cat photo app (I’m assuming this is what you are referring to) and it does do something. If you click it, it either gives you an error message or it tells you that your data would normally be submitted if this was a real working app.

But if I did not understand your point correctly then please elaborate to make it clearer.

I’m sorry, but I’m afraid I’m not able to see the main point you are making here. You seem to be saying that it is important to have repetition and progress but yet at the same time you seem to be criticizing that method. Do you think you could come up with one or two sentences that clearly defines what you are trying to say?

Also, as far as I know, the JS section of fCC is going to eventually use the same project-based format that the responsive web design part currently uses. If that’s what you are asking for, it is coming, but these things take time.

Hey bbsmooth.

I think FCC is great, but I would agree that applicability early on would help improve the fcc curriculum.

Fantastic news to hear that they are looking to go over the JS course!

From my experience, fCC is good at introducing concepts one after another. The problem is keeping that knowledge.
I solved it in following way:
I make an offline version of the project as I progress.
Then I use things I learned from it to make my own pages. So since I started the cat app, I did three pages using all things I learned (except forms) which helps me to retain what I learned instead of simply forgetting it.

Let’s say someone will do a series of quick projects and keep them on HDD or even upload to some web hosting service. Why would they bother with a form that only returns an error message?

For a website it would make sense to do it like this:
Part up until just before doing the forms.

-At this point on can practice doing basic pages on ones own (good moment to introduce how to make page on one’s computer?)

Introduction to CSS to format the page.
-At this point one can do basic formatting of ones pages.

Some basic java script using the form to do something with let’s say a number entered. For example convert cat weight in kilograms to pounds and size in centimeters to feet and inches or something like that. At this point user could be invited to consider starting the basics part of javascript course.

-Then when one starts learning basic operations in javascript course one can enter different formulas in ones projects. It could be adapted for a variety of converters and calculators so when one learns working on variables and numbers, one can apply it practically.

I think that’s just a problem for most people in general, not specific to fCC. Learning new things is hard and most people don’t remember everything on the first try. I agree, repeatedly doing things over and over again will help you retain that knowledge. If you do that on your own that’s great, but fCC also does this by having a lot of small projects to complete that try to reinforce what the user has already done and also introduce new information.

1 Like

It’s hard to build a fully functional web application from scratch as your first project as a beginner. Gotta walk before running and all.

1 Like

Yep, giving people too much complexity too early has a tendency to discourage them instead of exciting them.

1 Like

Being able to submit the form data is completely irrelevant. You would need to have access to the backend for it to have any meaning at all. We are not going to teach people about servers when they barely even know HTML.

Teaching people about JS before they have even learned the basics of HTML and CSS is just going to make it that much harder to learn anything. Knowing how to use the data from a form is not going to help you learn how to write a basic HTML form.

You are suggesting we teach people how to “sort of run” when we are still at the stage of teaching them how to walk.


Thing is that in the Cat App one spends 25 tutorial steps doing things that have no application until one starts either working with JS or with backends.

I think it’s still better to do repetition gradually on ones own. Like for example by the time I started doing the second tutorial I was able to do all the HTML from the first tutorial except the forms from memory.
Being able to turn on the coding environment and just code from memory and also think in code is important.

Like I started out 12 days ago and I have a 12 day coding spree and I have done 15 mini-projects. Now I’m on step 70 of the second responsive web design tutorial.
By the end of the first tutorial I had 4 quick projects done.

When I was doing the Responsibe Web Design certification thing back in 2018, I did much less projects of my own so I had no pracitice in making my own stuff for the “portfolio” projects and basically did minimum for fulfilling the specs.

Not really, you need extremely basic HTML and CSS to start working with extremely basic Java Script. Like take into account that you already do a form in the first tutorial, except that it’s useless to learn without tying it to something like starting to learn JS. Vast majority of CSS learning is making page look exactly like one wants on variety of devices, not basic functionality needed to start with Java script.

Found an entry from my study journal from 2018.

Screenshot 2023-08-30 at 08-05-11 Script Demonstration

I started searching on W3School for info on how to connect an input field and a submit button with a JavaScript so I finally found an input validator script and learned from it.

I even found out how to put the result on the webpage instead of using browser alert which was great.

So, I made a script that converts metres into feet Initially the conversion didn’t work and after de-bugging using console it turned out I made an error when putting in variables and have put the input field name instead of x into the function that calculates the number of feet. After I corrected it, I added input validation.

Next, I’ve put it on a separate page and added feet to metres converter.

Then I made the metres to feet converter return number of feet and inches for which I had to check some mathematical stuff out.

Finally I made the feet to metres converter take feet and inches.

I’ll need to find some way to round up the results, because they are somewhat silly now XD .


I was mostly working on improving my tools page. Have set precision of the results so that I wouldn’t get 2.044922211211 inches and stuff like that.

It seems that it also limits the length of the integer part, though, which isn’t how I want it to work.

I’ve spent, like an hour writing instructions on freeCodeCamp forums about how to make a page like this. It’s a shame all these courses don’t teach it as soon as possible.

Then I had a sort of energy slump and went to bed for a moment after I rested a bit, I added a converter of fluid ounces to millilitres to my tools page - I wanted it to be based on radio buttons. Then without any instructions how such a function should work, I made one - initially I tried to test checked for “checked” as it’s written in the tag and it didn’t work so I had the function return value of it and it turned out its a boolean.

In the end I succeeded.

Haven’t learned any theory or done any progress on freeCodeCamp programme today, though.

Wait, what?

I’ve spent, like an hour writing instructions on freeCodeCamp forums about how to make a page like this. It’s a shame all these courses don’t teach it as soon as possible.

I’ve spent, like an hour writing instructions on freeCodeCamp forums about how to make a page like this.

writing instructions on freeCodeCamp forums

I did what? I don’t remember doing that.

Let’s see, apparently it’s this topic.

It showcases how simple it is and how it immediately instills curiosity for learning new things about the subject.

Thanks for your ideas, but you are suggesting a fundamental redesign that isn’t going to happen. We’re currently doing a project based redesign in line with the experiences freeCodeCamp has had with our users.

Seems like everything that needs to be said has, so I’m closing this thread.