Documentation reading in the freecodecamp curriculum

Hey, i was thinking that it might be a good idea to include documentation-reading as a necessary step in the freecodecamp curriculum. Often times people learn only through freecodecamp, and while the challenges are excellent, it’s very difficult to actually understand the technologies using only FCC. Why not include external links and focus on the idea that reading documentation is an essential part of being a programmer? For example, the react challenges are very difficult to understand, i actually read only the code and skipped the challenge description because it was just so confusing, but the react documentation is quite excellent, the same applies for redux, CSS selectors and a lot of content that for people who already understand how to work with these technologies, it looks like FCC is a great way to get started, and while i agree that it’s a great way to get started, it’s very difficult when you move on to do projects on your own, FCC provides a limited amount of understanding of what’s going on, the documentation on the other hand serves exactly that purpose.

I understand not everybody wants to read documentation, specially for CSS/HTML challenges, however it’s an important and inevitable step in becoming a programmer and it could have more focus on FCC curriculae. Both reading documentations and researching on google, teaching people how to be a little more self sufficient in their approach towards self-learning, because no matter how good the documentation is, you will have to read the same concept from different people until you understand what’s going on, giving the people this ability is a valuable step in teaching how to become a programmer. Finishing a project and being unable to replicate it, for example, isn’t really learning, and back when i started with FCC i remember feeling like that quite often, “whew i finished this project, god forbid if i have to do that again”.


The algorithm challenges all have links to important documentation, and students are encouraged to check the docs with the RSA mantra (‘Read-Search-Ask’). How would you improve on this?

I think the problem would be finding a way to make sure someone read the documentation, like the guy said above me the links are there. I mean FCC already has all of those sign-ups at the beginning where you couldn’t click next until the pop-up signs up; but what changes if people don’t bother to read it.

I like the spirit of the suggestion, and I think, although e.g. the javascript section links to MDN, we can do more to prominently place some important resources. A few difficulties:

  1. Often the “best” resources–the ones that explain things the most accurately, officially, and thoroughly, are not the most intuitive and intelligible to a beginner. That’s why we see so many discussions of how difficult people find MDN, and how they find w3schools more helpful. I had the same experience when first running into many JS functions, and now find MDN more helpful. It’s important to link to “the good stuff” right from the start, and make sure students know about it, but sometimes other sources are more friendly for “scaffolding” understanding.
  2. I think it’s definitely preferable to make them “highly recommended” extra steps rather than required. Or maybe a quick required step, like the signing-up-for-github step: “Click this link and notice that MDN exists. Okay? Continue!” If this were a real bootcamp, then assigning “required reading” would make sense, but it could be difficult to balance “there’s a lot that’s worthwhile to know” with getting spread too thin. fCC users have different timetables and motivations: some want to learn everything super thoroughly and become full-stack; others, like, know their job is ending in two months and owe money to the mob, and just want to get entry-level-hireable in minimum time.

In theory, yes, but in practice the exercises are self contained enough to give the user an idea of fulfillment. This is in contrast to the projects, where it’s the opposite of self containment and people expect to keep on having hints and technical ‘fences’ around what they should and shouldn’t know, but there aren’t any.

Giving exercises that are more broad in principle from the very beginning and reinforcing the idea that FCC is not the only place you should study from would be sufficient. If i were to change it, i wouldn’t provide hints or much text at all, just pointers on where and how to find the information necessary to pass the challenge. The non-essential challenges are easy enough that it shouldn’t take more than a few seconds to find the answer, and it would give something more for people to read about if they’re interested. This is quite a big change, but by the time you reach the first real project, you’re ready to tackle the problems, you’ll be used to the act of doing your own research.

I know FCC already gives the RSA mantra, but that’s the “show, don’t tell” principle, the RSA mantra should be reflected on how the challenges are presented. The most intuitive way to go through FCC challenges right now is to scan the hints and copy paste the answer, which goes against the idea of being self sufficient.

If I’m understanding you correctly, you want to foster a stronger sense of self-reliance while also taming the difficulty cliff-dive that many students experience going from the structured exercises to the projects by requiring them to solve problems from official documentation rather than providing them with the information they need. I can’t say that you’re wrong, or that the goal isn’t desirable, or even that your suggestion wouldn’t work. It’s definitely a challenge for people to get to the projects and not have the support system they were used to in the exercises (that they have likely forgotten at that point). Frankly, I wish that I were better about getting information from documentation, so it’s easy to wish the same for other people. But is this as easy as simply requiring people to RTFM or search El Goog?

There are arguments for and against this, but what this comes down (I think) is accessibility. Remember that FreeCodeCamp has to reach more than just the affluent or well-educated. Some students don’t have a great command English, and there can be translations for them on the FreeCodeCamp website that don’t exist elsewhere. It’s easy to forget that studying is a skill, and for people who haven’t been to school for decades, just reading the hints on the screen can present a serious challenge. One of the largest demographics I see here (at least on the forums) are people who had never believed they were capable of programming before and are not just building technical skills, but the self-confidence to merely continue studying. You may be tempted to say that they would make greater gains if they developed self-reliance early on, but confidence doesn’t work that way. If you’re not gentle, then they’ll be scared off, reinforcing the idea that they can’t learn to program. I can’t argue that the way it’s currently set up is optimal for anyone, but the shallower the pool, the more people will wade in. Lots of people will grab their towels and leave, but there’s a lot of people who will end up learning to swim.

@PortableStick is right.

If you’re not gentle, then they’ll be scared off, reinforcing the idea that they can’t learn to program.

I have returned to FCC for about the third time now, after a nearly two year hiatus, and some seriously devastating hits to my confidence. I would never have considered this an option if it were not for the fact that I knew I could put the training wheels back on, and now I am so glad I decided to try again.

I do see where you are coming from, @Selhar1, about the reading. However, I think it has to be up to each individual learning capacity and style, though, as well as resourcefulness and determination, that will determine who will be able to not only complete FCC but also perform in the real world. I have found myself consulting sources ranging from w3schools on one extreme, to the ECMAScript 2017 Language Specification on the other. Plus, there’s always chat, these forums, and reddit.

But I think you are making another important point, that I can identify with because I am experiencing FCC differently now than I did the last time I tried and gave up. This time, understanding the concepts each step of the way is way more important to me than just moving on to the next step on the map. Even if I get the exercise done correctly, if I don’t feel like I really understood why it worked, I will stop and look for some other resources and exercises to do outside of FCC. It’s going to take me 3 months to get through the section on the map that says 10 hours. Ha! Good thing I don’t measure my own success that way!

But that is not something that can be enforced in an online environment, is it?

Or could it be?

This is off topic, but I just want to point out that MDN also has great documentation and tutorials for CSS (probably HTML also, but I’ve never checked). I’d highly suggest that people at least check out the tutorials and know that the docs are there.


It’s not about enforcing though, it’s more about the philosophy of the platform. Windows users are expected not to use the terminal, but they can if they want. Linux users are expected to use the terminal, but they don’t have to. It’s all about who creates the community and the philosophy behind it.

True. Very true.
I’ll say it again for the forum police who require at least 20 characters, what you say, my friend, is true.

1 Like