Basic JavaScript is insanely hard, but we can survive

This is just a discussion topic, I really don’t want to complain about the section or cry about how I suffered to finish it. But, I just ended it and I feel like a survivor. I went through HTML and CSS so easily that I was actually underestimating FCC exercises.

This feel walked with me through almost half of the JS section, but at some point, things started to feel really hard. In some cases, I probably have spent over an hour in the same exercise, feeling frustrated some times and really surprised with my performance in others. I researched a lot, looked some tips, and I made through the whole unity.

My point here is, JavaScript is hard and has a lot of details in it’s semantics. But going out to the real world, how’s that whole of functions and nesting crazy loops into another is really present? How do you guys feel about learning JS?

It’s a bit like preparing for a date (once every five years): elated, excited, exhausted, really wanting it but then already thinking of all the hard work it is and is going to be.

Difference is: I do plan to really meet Javascript.

6 Likes

Have you ever programmed before, in another language (C, basic, ?)?

Some of those exercises are quite tricky, and if you have never
programmed before, possibly too advanced. In that case,
I would recommend getting a book of javascript for beginners
and doing lots more simple exercises before tackling the
rest of the challenges.

I don’t think the intro to JS really prepares you for the more
difficult challenges if you are new to programming.

There is simply no substitute for gaining experience before
tackling these more difficult problems.

Nesting functions is still really common. Callback Hell is real and it will make you cry. Promises, generators, and reactive programming are here to save us, but are more advanced and sometimes require additional libraries. Nesting loops and other iterators is a big no-no, so I doubt it’s actually seen much, but the challenges that cause them aren’t uncommon.

Programming is difficult, but the most learning you’re going to do is in the beginner phase. Once you’re able to build a program from a spec, you’ll have fewer, but much more difficult topics to learn.

I am newbie programmer, have been programming for 3 weeks now but I am extremly motivated and I got 2 friends to work with, and for all 3 of us JS is very hard. It’s very frustrating for me but I get that I cant expect to learn everything fast. HTML and CSS were also easy for me. so you are not the only one with same problem :). dont worry we will understand it soon enough!

I’ve been using Promises. They’re unsupported in IE, but I don’t fully understand callbacks whereas I understood promises instantly so I just use em :slight_smile:

Got no idea what these are though :blush:

Reactive programming defies easy explanation, but you can check out my simple example project to see it in action. All of the Observables are a reactive concept. Think of them as arrays of data that are constantly taking in information. We like arrays because we can call methods like forEach.

1 Like

Awesome! Thank you everyone for your answers. Well I had a short programming experience with Java, mainly to creat really simple Android apps. Actually, I really believe that people shouldn’t be afraid of FCC exercises and this is actually why I started this topic. All those algorithms can we overwhelming for begginers but are defintelly doable.

Is great to know we have options to optimize our workflow with JS and is not always needed to do everything with your bare hands. So thank you for showing us some options in this topic. I am moving forward here in FCC and really hope to take my certficate soon. Hope to try to find a job next year, as in my country has a lot of space for devs right now.

Anyway, thanks again for accepting this discussion :slight_smile:

I was cruising nicely on HTML and CSS, and then just slammed into a brickwall named JAVASCRIPT. This IS insanely hard, but hey I’m gonna try to stick it out! GREAT TOPIC.

2 Likes

In some cases, I probably have spent over an hour in the same exercise

I know that feeling well, I easily completed 80% of the front-end curriculum but when I hit algorithms challenges like “no repeats please” (or projects like tic tac toe), it felt like an impossible task, like a “build me a pyramid” task.I had never done this kind of exercice before and had no clue where to start, and I also hated the idea of getting help from google and not solving this on my own.So I spent an entire night on it, even using countless sheets of paper to draw visual representations of ways to solve this (which never worked)…until it finally paid off.

1 Like

I’ve spent days and even weeks on one challenge. I’ve put a ton of hours into the cash register project. its my last one and its going on two weeks. mostly taking my time and learning from the other “student” solutions.
PS-Having said that, I feel GREAT about things now that I am done. I learned a lot. So I"half agree" with DanStockham’s reply: I only know JS, html and CSS but after googling questions for six months I can see that Python et al are quite similar to JS but JS is so accessable because every computer has a web browser. That means there is a lot of help online, as well as a frame of reference for what you are learning. Every time I look at my phone I see JS, CSS, and HTML in action. Responsive Web Design prepared me for JS and it looks like smooth sailing from here for a while. So, no complaints. FCC is awesome and I tell people about it if they ask. I’m super psyched about continuing the journey…the worst part of JS was the emotional roller-coaster of feeling like a genius one day and a dummy the next. You just manage that by keeping on and not being upset that it takes too long. I complained a lot, but it was healthy to vent.

For the absolute beginner, I don’t think JavaScript is a good starting language just due to the unorthodox way it utilizes computer science concepts. The uninitiated is going to have an easier time understanding traditional object-oriented programming through languages like C# or human-readable languages like Python or Ruby. Getting a grasp on concepts like scope and closure is going to take more time to understand if your background is non-technical.