How do you all do it?

This is mostly just a rant. I love computers. A LOT. I build Linux systems all the time. I built my own pfSense router, I run my house off a Cisco switch. I 3D print. I work in a highly-technical IT and broadcast industry. Anything to do with computers… I usually love. Hell, I even got my Amateur Radio license just because… that involved a LOT of studing and “nose to the grindstone.”

So I thought I would give coding a shot. I got through HTML and CSS at Odin and LOVED IT! Then… well, then JavaScript came. Little did I know that the fun was about to come to an end and never come back.

I have spent months (yes MONTHS) trying to learn a shred of JavaScript. I quit Odin because it was not clicking. Came to FCC hoping for the best. Nearly every single exercise I just sit there and have ZERO idea how to start. I can’t remember the syntax because FCC has nearly zero repetition. (Not FCCs fault… my stupid brain is surrounded by a thick skull.) Every.single.exercise. I take a crack at it… and for days I fail at the solution. I cheat… I look up the solution and am crushed to see that it is no where near what I was trying to do. Months and I get nowhere.

How the hell do you guys do it? I get it… coding is hard. I know first hand. I just don’t understand how I can be so good at so many technical things, yet can’t even start the first line of code after “learning” for the past 4 months. You all have a gift that I am very envious of.

I think I should just pack it in at this point and accept that my brain might be incapable of learning this type of thing. I’m 41 years old, and maybe 20 years ago this might have been a better idea. I love to learn, and I really want to learn a new skill… I am just not sure what at this point.

/rant

The age is just number, you can learn it all, maybe you are just surrounded by some other things that take your attention. When it’s about remembering code, I had the same problem, use notes. I used to write down every new thing in notebook and I still use that notebook. And if I learn something in one hour, it doesn’t mean others will so: somebody will learn it in 2 or 3 hours, somebody in 15 minutes, just don’t rush and go step by step. :slightly_smiling_face:

Just going to throw this out there. Maybe this style of learning isn’t best for you? I’ve always been a book guy myself. Perhaps you should get an introductory book on programming (targeted to JS if you prefer) and read it from beginning to end. You will still use your computer to follow along in the book and do the examples, so it’s not like you are removing actual coding from the equation.

I don’t know how to explain it but I find I almost always learn something faster if I have an actual book to read than trying to follow various tutorials online. I think one reason may be that books are generally written better since they go through a professional editing process.

5 Likes

I was wondering that as well. The biggest frustration I have with FCC is the lack of practice and repetition. You touch on a topic, then move on to the next with very little repetitive practice. Switching between browser tabs really breaks my concentration. Perhaps having a book beside me that I can flip though would help me retrieve information better.

Hell, I recently decided to learn how to speed cube. In a week, I got my solve time down from 5 days to a minute! Repetition is super important to me and I think FCC might be incompatible with my brain in that aspect.

Can anyone recommend a JS book?

If you can’t remember the syntax, sounds like you should repeat the task. Then go to something like w3schools.com and use them as a reference whenever you forget something.

The hard part of coding is, that you are telling a really stupid machine what to do. But unlike html and CSS, those are not single commands, but soon become interconnected and build one upon the other.
In CSS a margin-left and margin-right will never work together. A p-tag and an input don’t open up new windows of possibilities that a div and an input couldn’t do.

In coding however you got a bunch of stuff that just works differently. CSS will never complain that you put a background and a padding somewhere. But when in coding you combine a string with a number, suddenly you get issues… html is very forgiving with casing and spaces - JavaScript on the other hand can break completly if you accidentally put a capital letter somewhere where it doesn’t belong.

It’s only natural to feel overwhelmed at the start. So it’s important to keep something at hand to fall back to.

1 Like

Hi @Mondo_Burrito !

Welcome to the forum!

It took me a while to understand JavaScript too.
I would say it takes most people a while before it finally starts to click.

I felt that way for certain part of the curriculum like regular expressions, es6 and the algorithm sections.

What worked for me was creating my own practice exercises.
When I was going through the curriculum, I would do a challenge and then go to my code editor and practice with my own exercises.
For example, if I had just learned about a new array method like push, then I would create my own arrays and practice the push method.
I also did a lot of spaced repetition or would use outside resources for the more complex concepts like recursion or higher order functions.

Yeah, that comes up a lot on the forum and reddit groups.
Luckily, freeCodeCamp has listened to the feedback and is actively working to redesign the javascript curriculum to include tons of repetition and practice projects.
This new curriculum is all project based where you learn the concepts better by building projects :grinning:

But in the mean time, you might try building some small projects with the help of some youtube videos.

JavaScript 30 is also really good too

The best book for beginners in my opinion is John Duckett’s book

He does a great job breaking down the concepts and providing helpful illustrations.
It doesn’t cover es6 concepts but it is great for the fundamentals.

You might also look into Flavio Copes’ javascript book.

He has really good materials for beginners.

There were plenty of moments in the beginning where I didn’t think things would work out for me either.
I consider myself a slow learner and there were plenty of times where it would take a me really long time before I figured out a problem or before a concept finally made sense.

My advice would be to try a different approach through written media (books and blogs) and then you can come back to fcc for additional practice.

Good luck! :grinning:

2 Likes

Wonderful reply and advice. Thanks so much!

1 Like

As much as we all like to feel special, I’m going to try to convince you that we programmers don’t have some innate gift that you are lacking. We have curiosity, patience, and stubbornness. Learning to code is HARD, painful, and unbelievably frustrating. (Honestly, even once you’ve gotten good at it, coding is often those things.) Depending on our backgrounds and interests, different parts of the learning process are going to be more of a struggle. Being 41 doesn’t mean you can’t learn anymore, but it probably means that you are out of practice with certain types of learning. We adults, with busy lives and established interests, haven’t had to study things like a new language, new concepts, new ways of thinking and problem solving. Parts of our brains feel as stiff as our knees.

Now that I’ve given my “You can do it” speech, I’m going to try to give some specific advice and perspective based on what you said.

  1. HTML/CSS and JavaScript don’t work the same way. It’s common for people to feel like they are on Square One when they start JavaScript because they actually are.

  2. Spaced Repetition – You mentioned a few times that you feel like part of the reason you struggle is because repetition isn’t built into online learning platforms. What we’re trying to teach is progressive. As each thing builds to the next, in theory you are using tools you learned a few lessons ago in later lessons. However, that can be hard to work in for some of the material - especially the early foundational concepts that haven’t really started tying together yet. If you feel like some repetition can help, I have a few suggestions:

  • Use this forum to help other students who are a few lessons behind you. Helping others is a really great way to build your own understanding and cement it in your mind, rather than forgetting it because you aren’t doing it anymore. Participating in the discussion threads here will also let you see how other people understand the material and might give you a perspective that wouldn’t have occurred to you.
  • Alternate between similar courses. You can sort of fake repetition by bouncing between a couple different platforms (freeCodeCamp, Codecademy, W3Schools, various YouTube lessons, etc).
  • If it’s a syntax issue, look it up! If you can’t remember what a for loop looks like, or what the array methods are called, or how a random number generator works, google it. After having to look stuff up a bunch, it will eventually stick. And honestly, you’ll probably always have to look up syntax that you haven’t used in a while. I’ve been doing this for a decade and I still have to google “slice vs splice, javascript” to remember which is which.
  1. Don’t look at solutions. I completely understand the impulse. You get stuck, look at the solution, take the time to understand the solution, and feel like you’ve learned what you needed to learn. The problem is that while you can learn some things from looking at solutions, what you don’t learn is how to arrive at that solution. What you describe is an extremely common experience: the more you look at solutions, the more you get stuck on later challenges, the more you look at solutions, and it becomes a feedback loop. When you get stuck, please reach out to us. Describe the problem your having and what your thought process has been in trying to solve it. Honestly, that alone is a really helpful process. We well then help you move from one step to the next and to debug your own code. Even though you will be getting help, you will be gaining experience working through the problem from beginning to end.
1 Like

Thanks! And yes, I am working on finding a different learning system (to supplement FCC) that will click with my dumb, stubborn brain. :smile: Khan would have been great for my learning style… but it is VERY outdated. I think it would have been perfect for keeping my interest levels up, and frustration levels down. I do, however, look forward to the revised FCC JS curriculum.