Well its not that its really hard but the “advanced” concepts that combine multiple lessons such as creating a function to push an array and shift an item to the front of it is really confusing. I’ve been on this single lesson for like the past hour or two and its still not clicking with me. The biggest mental block for me is that I don’t understand how I’m going to apply any of this knowledge to designing a webpage or otherwise, because at this stage it seems like a convoluted way of coding mathematical equations for insane people, but it’ll probably show me how to apply this in later lessons.
Just had to get that off my chest. I’m not even going to stick on this lesson any longer, I’m just going to go to the next one and come back around to it when I need to later on.
Yes, JavaScript is hard. I think just about everyone struggles with it. I know I do.
So, fCC doesn’t really go into how to apply Javascript to websites until front end development. What I did was learn a little bit about DOM manipulation and events. Even though I was breaking away from the fCC curriculum, it motivated me because I could see how Javascript is used to make websites interactive.
That’s fine, I’ve done the same. I’ve done the same lesson multiple times. I will say that you really do want to understand arrays and how to push stuff into them. That will help you out down the line.
The thing is, HTML/CSS are great at making static webpages, but web development is so much more than making static webpages.
Apps, interactive websites, complex programs, all require ‘something’ to handle the logic of what to do when users interact with them. That ‘something’ is JavaScript (or another programming language).
The thing is though, programming something complex is… well… complex.
You can’t hand someone a box of tools and tell them to build a house out in the woods. You need to understand how to use the tools to reach your end goal.
Same thing with programming. You need to understand the basic elements of programming logic before you can use a programming language to make a complex, interactive app or website or whatever else you want to make.
Learning all of that complex stuff is hard and will take time. It’s totally ok to skip over something and come back to it. It’s totally ok to ask questions here on the forum.
Programming is hard. It’s frustrating. Computers are just so stupid and they need everything explained to them in the perfect, very specific, way.
For the most part, the more advanced sections of the JavaScript curriculum focus a lot on challenges based around being given complex data and from that having to produce a differently shaped output. This is a huge amount of what we spend time on as web developers. You are getting chunks of data from your own server and/or external APIs and you have to make sense of it all in a clean, intuitive way.
Thanks for the words of support, I feel better knowing that others found it as challenging as I do and came around to it later on. I’ll just keep on trucking then.
Yeah. The truth of this is that some of it won’t apply, not directly. But that’s OK.
When I played soccer as a kid, the coach would have us run laps and do jumping jacks. Now, in the history of soccer, as far as I know, no one has ever won a game by running a lap around the field or doing a jumping jack. But still, they make you a stronger player.
I feel the same way about some of these algorithms. Some of them are strangely convoluted ideas that don’t seem to have any real world application. But 1) You’d be surprised. 2) Doing these things strengthen part of your “coder brain”. 3) Being able to think about and abstract problems can be very useful. Not every problem will be easily visualized as some real world problem. Being able to abstract the concrete and to concrete-ify the abstract are important skills.
But don’t be too worried if you struggle with it - a lot of people do. Even a lot of people that grown into excellent coders. But the work you put into it will still be rewarded.
Claiming that “nothing is hard” is, at best, ignorant. At worst it is disingenuous and cruel. In either case, it is unproductive and harmful.
In a healthy work environment it is always acknowledged that what we do is difficult, frustrating, and sometimes leaves us exhausted and emotionally raw. We respect each other for our differing expertise and experience. Sometimes you teach and sometimes you are the one who is lost and frustrated.
I have no patience for anyone who invalidates the struggles of others or stigmatizes asking for help.
Hi there, @Kollyde
I think everyone here agrees, JavaScript is super hard. Some people may find JS a little harder and easier than others, but everyone struggles at some point (except if they give up, but that’s not what you are going to do ). Moving on, a big bummer about programming is that you won’t exactly do what you wanted to do right in the beginning of starting to learn a Programming language. It’s going to be pretty rough on you to finish everything. I have these few tips when you collide into a mental road block or have difficulties with your learning
Don’t give up.
Compare your work from a month ago with your skills right now.
Try something new. This means FreeCodeCamp should not be the only resource for you, maybe you prefer or want to have another learning resource or methods beside you. Everyone had a different learning style, so you may find that you prefer video tutorials. FreeCodeCamp does have video tutorials. I for example, started learning with free Udemy classes (a video learning platform), and I did not do well at all. I was thinking that I’m bad at programming and I was almost to give up, until I decided to stick to another learning program.
Look at what you will be able to do if you keep on working hard.
Don’t run before you walk. don’t, seriously
Take a break.
Now, I’m going to help you with step four. After you finish JavaScript fundamentals, you can use what you learned earlier to create buttons, loading content from other websites. Making interactive games, like a snake game. You need to push hard to learn arrays and all that stuff, or it’s impossible to make that game. What can be misleading with step 4 is making sure that you don’t walk before you run. Walking before running is like making a game before learning JS. This is a big problem, and if you make the mistake to walk before you run, you will suffer, and you will have to start all over again from the beginning. You don’t want that, don’t you . Your hard work will pay back and sometimes it’s just time to take a break. That break could be take a walk, drink something (water would be best ), or best of all get some sleep Don’t underestimate sleep. Sleep can clear your mind and help you process all that. stuff that’s been going on in your mind.
Conclusion: Don’t give up, no matter how long it takes at some point you will get your reward
Hello friend.
This bothers many of us, too. I am learning JS and more than often i ask myself where or how i am going to assemble all of these information and use it in my favor. Will i create a website, app or something between? Its important piece that makes you THINK about your problem and then snap out a solution. Although I don’t know where i am going to apply it, i am sure that there will be tasks where i must create solutions that relies on knowledge gathered here. It will click, just stick with it. I am too going through JS swamps but only patient ones succeed.
Programming is hard, until it becomes easier. Constant practice and never giving up is the only way it becomes easier. I am starting over after a 5 year haitus, and it’s hard again. Keep at it and never quit if this is your passion.
Just want to thank you all again for your words of support, its very destressing to know other have shared a similar experience but persevered. I’ve finished a few more lessons and I’m that much closer to the end of this topic so I can finally move to the next one. Giving up is a non-option.
Personally, i been trying to learn JS since early December 2020. Im currently doing the Basic Javascript course, and right now i’m at 92/111 of the challenges.
I feel like it has gotten much harder though, specially when doing the big challenges like ‘counting cards’ or ‘record collections’. Then, i took a step back and look at the next curriculum overview and it seems like it’s going to get a lot more harder lol. This overwhelms me.
But you are right, i must not run before i fully walk. I think the approach im going to take is, after finishing the basic javascript curriculum, i will start doing projects to practice what i learn and see if i might have to revise the basic javascript course a second time.
I think it is like what people already said up there It is taking time to getting used to it. To be honest, I used to learn some of the FCC topics like if statements, loops and switch statement, etc when I was in college but I used Java instead(but it is very similar, thats why I found it more comfortable to code with JS). I struggled a lot as well.
I also had/ have same feeling that this FCC certificate has less relationship with web development especially the chapter about regular expression. But l actually started off with learning React and learning other frontend stuff. I found it really hard to understand the syntax of React until recently I went thru topics of the JS certificate since some of the React code is based on es6 which is really hard to get used to.
I think 1 of the biggest problems with this certificate is that some of us do not know how to use VS code, browser to view our output and sometimes the descriptions of questions are pretty long. But without knowledge in JS, it will be really hard to understand other JS frameworks like React.
Yes, it is/ was hard. But it is necessary to understand those things, although for the project that I am working on, it is being taking care by “users of the page” and the backend. But think about it, if you need to debug the codes, you will need the knowledge.