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.”
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.
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.
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.
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.
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.
It’s only natural to feel overwhelmed at the start. So it’s important to keep something at hand to fall back to.
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.
This new curriculum is all project based where you learn the concepts better by building projects
But in the mean time, you might try building some small projects with the help of some youtube videos.
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.
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.
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.
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).
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.
Thanks! And yes, I am working on finding a different learning system (to supplement FCC) that will click with my dumb, stubborn brain. 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.