Is restarting FCC JavaScript the best choice for me?

Hello everyone! Long time no see.

Today is a bit of a sentimental post but also one that really calls into question my determination to be a Dev.

So anyways…

I was calmly frustrated at the problems presented in the FCC algorithms and Data structures section of FCC JS and when presented with almost every test I had a realization:

I don’t know (insert here) about JavaScript.

I was shocked at my own honesty, and I realized I had been keeping something from myself. I knew I was struggling and constantly looking for answers and peeking at hints instead of trying to solve a problem when the answer wasn’t blindingly obvious.

So my question is: is there something I should do to fix this, or should I restart the FCC JS course and implement a new strategy (I have a few ideas of what I was doing wrong and how to fix it).

I felt my motivation plummet while writing this post, but I suppose this is something everyone goes through. I was caught up in reading posts where people claimed that JS eventually just “Clicked” and I kept telling myself it would eventually “click” but I now feel that you can’t make the mental chains “Click” if you don’t have the chains to begin with.

Thanks in advance,
Cy499_Studios

Learning isn’t linear. Some things will “click” and then after that you’ll encounter something that you really have to struggle with. My experience with helping freeCodeCamp students for almost 6 years is that using hints heavily and looking at solutions does more harm than good. It feels really helpful because you are learning, but what you’re learning is how to read code and that gets in the way of learning how to assess a problem, break it down, and solve it.

There’s no hard rule that you need to start JavaScript over from the beginning, but you might benefit from going back to various lessons and struggling through them the hard way.

2 Likes

There is a huge difference between ‘knowing JS’ and ‘knowing algorithms and problem solving’. It is far harder, but far more important, to learn ‘knowing algorithms and problem solving’.

But both come with practice.

To get better at JS, write more JS.

To get better at algorithmic problem solving, you need to try to solve more problems. At the end of the day, being a developer is all about solving problems as you try to build stuff.

You can get that practice at algorithmic problem solving from the fCC algorithms and data structures section, but you’ll also find the same sort of opportunities in trying to make your on small projects. Which one sounds more motivating is 100% up to you.

3 Likes

@JeremyLT

The problem is that until I get to front-end libraries, I really don’t feel like I have choices for JS projects. Do you have any guides on how to make small console projects in VS code?

Thanks for the help,
Best,
Cy499_Studios

I agree @ArielLeslie , I’ve been watching and learning from a lot of Productivity YTbers and I really saw how I wasn’t applying the 15-minute rule where I never spent a full 15 mins working a problem and documenting my problem-solving process.

I never wrote down or broke down the actual problem into smaller bits so I could find the best way to solve it. .

I guess I was too dependent on the hints to really learn much.

Best,
Cy499_Studios

If you want more practice in JavaScript without it getting repetative, you can look at the Coding Interview Prep section (which I beleive are mostly Project Euler challenges).

Oh, you don’t need to get all that fancy and get into front-end libraries. This is where the shininess of JavaScript can sometimes blind you to options.

I like the console projects idea, like is pretty traditional in older languages like C. I’d go for simple projects that rely upon basic text input output while using no external libraries. Some of my favourites:

  • Binary to base 10 converter
    • i.e. 5 => 101 or 101 => 5
  • Encode and Decode text
    • Caeser cipher
    • Vigenere cipher
    • This can get as complex as you like
  • Bowling scorecard

The cool thing about taking the ‘just make a thing’ approach is that you really have to stop and think about how you want to do everything. It’s you finding and solving the problems as you go.

I agree with what others have written here.

I will reiterate that being good at JS and being good at algorithms are two entirely different things. You can be great at one and terrible at the other.

Algorithms are harder than JS. JS is learning a bunch of simple commands and concepts. Algorithms are an entirely different way of thinking and much more abstract with varying strategies and use cases.

I would also argue that while being great at algorithms is great and important, it is not necessarily important to master them when you are just learning. I would say to just get through that section, move onto the next once - you can always come back later and redo anything on which you feel you need more work. And you will have many more opportunities to work on algorithms and you should - I just don’t think that you have to freak out because you’re not an expert now.

I myself am not great at recursion, trees, maps, etc. The truth is that I don’t need them on my job (many web devs could probably say the same) but would like to know them just the same.

I might suggest keeping a notebook next to your computer. I used to do that and would right down topics into which I want to dive more deeply. I seem to remember things like “regex” and “promises” were on that list. So was “permutation” because that algorithm kicked my ass. So, when I had some free time, I watched some youtube videos on that topic and now understand it pretty well.

tldr: Give yourself a break and don’t worry if you don’t understand everything perfectly on the first pass.

1 Like

@JeremyLT

So how do I actually test and make these projects inside a text editor? Is there a “Built -in” console or how do you go about testing small command line apps like those mentioned.

Largely I use repl.it for those sorts of smaller projects, tbh. I am not a professional JS dev, so I’ve never set up my local IDE to run JS.

@kevinSmith

Yeah, the only thing that bothered me is that even while reading the hints I still couldn’t grab an answer. I appreciate the advice. I’ll try to keep that in mind and put those research topics somewhere in my Notion.

Although I am a but confused by

Are you saying that I shouldn’t spend too much time simply figuring out problems and instead use more hints and leave research for later? (sorry if it sounds like gibberish)

@JeremyLT

Of course! Why had I never thought of that :rofl:

Signing up when I get the chance.

Usually for JS in the terminal, you’ve have your editor (I recommend something like VS Code). You can create the code, save the file, then run the file from the command line. I’d look for tutorials like this to get started. That’s what I used to do when I was doing a lot of coding meetups and we do algorithms - even if we were using an online IDE, often I would do them locally first because I know the editor and my settings. Like Jeremy says, you can use things like repl.it - that works - I often still use codepen to just try some JS quick and dirty.

Yeah, the only thing that bothered me is that even while reading the hints I still couldn’t grab an answer.

Right, but remember that that is a reflection of your understanding of algorithms, not of you understanding of JS.

Are you saying that I shouldn’t spend too much time simply figuring out problems and instead use more hints and leave research for later?

I don’t know about “using hints”, as in the FCC hints, but I did do research sometimes. But again, I wouldn’t stress out about it at this point. There will be plenty of time to come back later.

And again, I think youtube is a great resource. There are a lot of great examples of people working through algorithm challenges from various sources. To some extent, each algorithm has its own way of thinking so you really need to try a lot of them, but in general, as you get more experience, you’ll start to develop a set of tools and a “Spidey Sense” about them.

There are also a lot of great books out there. Cracking the Coding Interview is a classic with a lot of stuff on algorithms. There are also books, blogs, and videos devoted to the subject.

Thank you @JeremyLT , @kevinSmith , and @ArielLeslie

The FCC forum is the place I’ve helped others and now I’ve gotten really insightful help.

Best,
Cy499_Studios