Not sure if JS course is badly written or im an idiot

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:

  1. Learning and using programming skills (or any new skills) is hard.

  2. Every single learner is different.

  3. 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.

5 Likes

leaving out information isnt “synthesizing ideas” its just leaving out information.

this is an issue of making FCC more reference friendly.

critical thinking is very important and should definitely be used in conjunction with learning to code, fair enough.

but failing to fully define the commands of the language when that is the goal of the section and calling it a critical thinking exercise is a little lazy and degrades it the users ability to use the section as a reference in the future.

1 Like

Like I said, I don’t have anything else to say. Good luck on your coding journey.

thank you for your time just one last idea to chew on and ill leave you alone i promise.

you are a professional developer you have been doing this for years i assume.

lets just say i am new and this is my very first time looking at java script.

you have an intuitive sense of how the controls of the lanuage works so you can fill in the gaps that this website leaves with out noticing that those gaps exist.

i am aware of the gaps because i dont have the intuitive knowledge that you have gained from years of repetative coding.

this is a problem of missing information and not a problem of “me no think good”.

1 Like

Nowhere did I say this. Please stop putting words in my mouth. Thank you.

If you have questions about the instructions for this or any other topic, please create your own thread.

freecodecamp

1 Like

I’ve been where you find yourself now. Don’t worry and don’t give up. It is just normal to need to use external sources and that’s actually a part not only of the process of learning but also of working. Googling is normal as well as not understanding some things. What’s important is to not give up and carry on. At some point you’ll look back and the tasks will seem easy.

4 Likes

Good news: you’re not an idiot . However, these courses don’t teach the theory and designs of algorithms very well, and that makes it a lot harder to understand the coding. Anyone can type, but getting concepts in the head takes time to absorb, and practice. I don’t think JS is the easiest of languages for a beginner, because it has so many quirks.

I come from a network background, and I treat the theory, design and configuration of network systems as three studies. The configuration part (routers, etc) is the simplest ; it’s a case of understanding syntax for each router model. Having a solid background in theory allows me to feel comfortable changing between a Cisco or Brocade (RIP) router. The design knowledge allows me to choose the best for the job (when available). That’s the approach I recommend for programming: theory (algorithms, etc), design (utility) and coding. Use the coding to test your application of design and theory, not the other way around. This approach makes it much easier to switch between different languages.

Just my approach, not saying it’s the best!

I feel like it starts easy, for the first 90 challenges in basic Javascript, then it goes really hard, like, from level 2 to level 13 on a 10 level scale :rofl: I am struggling on challenge 94 and don’t want to see the answer but it’s hard. I tip my hat to all people who did it; I’m impressed,

Record collection?

If so, most people struggle with that one.
If you need help, you can create a new post and people would be happy to assist you. :grinning:

3 Likes

A lot of people struggle on various challenges. I’d be willing to bet my left big toe that no one without coding experiences can go through this curriculum without having more than a few places where it just doesn’t seem to make any sense.

Heck, I came into this having been an electrical engineering major who took some coding classes and even did a little semi-pro coding (in C though, not JS, and decades ago). And there were still parts that kicked my butt. There were algorithms that took me a week to solve. But I learned from the struggle.

But this mimics real dev work. Being a developer is not happily typing away while blue birds chirp songs on your shoulders. It is reading though docs, trying different things, getting frustrated, before finding the solution. This is hard and stressful work - that’s why it pays well. Anyone that tells you otherwise either doesn’t know what they are talking about or is selling something - probably both. If you are looking for something easy to learn and do that will make you gobs of money - stay away from coding, you will be miserable. You can make good money, but you’re going to have to work for it.

I feel like it starts easy, for the first 90 challenges in basic Javascript, then it goes really hard, like, from level 2 to level 13 on a 10 level scale

Well, it’s a different curve for everyone, but that things seem to get hard out of nowhere - yeah, I think most people encounter that. FCC just can’t do a program that accounts for every possible gap and misunderstanding someone might have. It just isn’t possible.

But again, if you think you have an idea about how to improve the curriculum, please share it. This is an open source project and we are always looking for more help. It’s a little like standing and complaining about the volunteers cleaning up the park, yelling at them that they don’t know how to clean, and not lifting a finger to help.

Stop belittling our beloved free gift from god: FCC.
Learning through youtube videos is an overwhelmingly clustered vain experience.
You are coming with your certain speed in mind that your not realizing, it’s like trying to read a long text written on a side of the road that you are driving in little fast, you won’t be able to finish it and there are more text you to read…
SLOW DOWN i.e ENJOY SLOWING DOWN.

Thanks? Struggling is part of the journey. If programming would be a cakewalk, there would be no market for courses, videos and this site.

It’s hard at first because it’s new methods of storing and accessing data. It takes some time to get used to but after that, it’s easy. Like driving a bike.
Every time I came across a more complex data-structure or algorithm, I felt like reading a different language and got no idea how the heck this can even work in the first place. But now, it’s just another tool under my belt.

@kreggjoshua

Fantastic response @kevinSmith

I have seen this thread go on and on, for maybe too long. I just want to add my 7 cents to the topic.

freeCodeCamp is a great curriculum for teaching programming syntax. It starts from the most basic syntax and works up to more complex syntax with higher order functions. Then the JS curriculum has the student solve various theory challenges in order to gain the certification. Teaching this way builds a solid understanding of how the core of JS works in order to create well designed programs.

I have personally done courses (700 or more pages) that require the user to learn JS by doing projects alongside the instructor. You are shown code, taught how it works, then you copy it and continue on. This is where programming theory comes in, the teaching of how to combine syntax to research, design and implement a program.

These courses are often filled with issues. If your code doesn’t work (typo, browser, etc), then you hit a roadblock of not being able to continue the educational material. The second issue is that the instructors do not give adequate enough documentation to explain the programming syntax, allowing the user to create complex applications that they could not replicate outside a tutorial. These courses are often not expandable to allow for introduction to new content.

You will hear the word theory a lot. There is only one way for syntax to work as written by the JS complier. The keywords can only be used in set ways that cannot be changed. You can’t swap out functon for func and expect it to work. However, theory is a idea rather then a ridged line. You could program a user interface in 100’s of ways, each of which made up of different combinations of hard-coded syntax. You can throw a ball in 20 different ways, but none of those methods can defy physics constants.

The best method, in my opinion, is to learn syntax first and then theory complete projects. You can’t pull apart and work on a engine before you know how that engine works. You could stumble your way through it, but you would loose more time then to just simply read the manual. Programming is all about documentation and research to best understand the correct syntax and theory to approach a problem. Programming for me has been about 70% research and 30% programming. I am currently completing the React course in order to create a user interface for a webpage I am working on.

freeCodeCamp is not out to get anyone. If a student can’t understand the basic syntax and give up, there is no way they could understand the theory of creating a well designed program from another site. freeCodeCamp developers didn’t sit down and write the JS complier to be as confusing as possible. Programming was created by engineers to best be understood by engineers. I hope you continue to push through the challenges and work your way towards the certification.

3 Likes

to be sure, FCC is an excellent resource. theres always room for improvement but this website is exactly the type that makes the world go round.

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.