This will be my last rely to you in this thread because I don’t really have much else to say and I don’t really feel like I’m communicating in a way where you understand what I am trying to say.
I have done a ton of STEM education from both sides of the lectern. Guiding and helping someone from beginner to expert is hard but I’ve picked up some principles that generally work pretty well for me:
-
Learning and using programming skills (or any new skills) is hard.
-
Every single learner is different.
-
However, any learner needs to interact with the ideas and synthesize multiple concepts to become an expert.
I have seen a lot of coding education material out there, and I like freeCodeCamp’s. It isn’t perfect, but it’s some of the best I’ve seen.
FreeCodeCamp understands that learning is difficult. That is a foundational idea in this community. People with full time developer jobs offer lots of help learning to program because we all remember how hard it was when we started (and how hard it can be any time we need to learn new things ourselves, which is very frequently).
FreeCodeCamp understands that every learner is different. It is impossible to provide an explanation that works for everyone. That’s why we provide the basic explanation required for each challenge pared down so the volume of information is not overwhelming. But that is also why we provide the forum and two chat platforms for people to ask further clarifying questions if the topic or challenge is unclear to them.
FreeCodeCamp understands that learning requires understanding and synthesis. That is why the lessons start out as simple replication of examples with minimal modifications and eventually require synthesis of more and more previous lessons to complete challenges. Professional software development requires combing multiple ideas into one piece of code to reach a goal. There is a long road between duplicating an example with minimal modifications to creating new code that you design yourself. That’s why freeCodeCamp builds up to requiring more and more synthesis. By the time a learner reaches the Functional Programming portion of the Javascript lessons, they should have practiced synthesizing information from multiple lessons. But, every learner is different, which is why we have the forum and chat platforms if someone forgot something.
I really don’t know how to build someone up towards being a programmer without presenting challenges that require more and more synthesis of ideas.
Is freeCodeCamp perfect? No. Is freeCodeCamp badly written? Also no. It is one of the best programming education resources I’ve come across.