I know the syntax. I know what the concepts like variables, functions, if statements, loops, etc, are and what it does.
Okay, that's good and all. But here comes the questions:
- Do you know when and when not to apply them?
- Do you know what you are going to use it for?
- Do you know what tools or features you need to build your project?
No? Then you are suffering from a lack of context.
That means you have no idea what to do with the knowledge you've gained from the tutorial and less likely to practice it, hence you're going to forget it all.
Even if you practice it every day, you're having a hard time building your project and the so-called simple projects like to-do list, slides, and calculator are surprisingly hard.
You might think programming is not for you and will give up on your dreams of becoming a Software Engineer.
Now that you understand what the problem is, it's time to find a solution. It's not my original idea and until recently, I was stuck in the learning loop - until I read the article and guide which I provided in the links below.
Finally, I found a path that might be a breakthrough moment for newbies. In other words, a way that will take you from a beginner programmer into an intermediate programmer.
Without it, it will be nearly impossible to build it on your own and guided projects are not exactly helpful in building retention which you will feel like you haven't learned something.
There are eight concepts you should learn as they are very practical and can be used immediately to build your small project. And they are:
- Style and className
- querySelector and
- If and else statements
- Objects and Arrays
Learn one thing at a time. No need to rush quickly. Take all your time you need to really understand how does it work and why they work in a certain way.
The most effective way to understand the features is to build a task or mini projects. For example, use the function to change the colour of the paragraph when you click the button.
Once you have understood how each features works, you will start to have some ideas of which small projects you think you can build with.
I hope you find this article helpful and happy coding!
For additional sources:
In my personal opinion, as someone who has learned over 10 programming languages, I would suggest learning the concepts of programming in a more generalized way, and then learn the specifics of the language from there.
Like if you want to learn a real language - Spanish, for example, it's better to learn the grammar first, and learn the vocabulary as you use it more.
Well, CS50 is good if you're wanting to learn computer science. However, CS doesn't actually teach you how to program, it's more about algorithms and data structures.
Khan Academy is where I first learned. They do a great job teaching JS, and their SQL course is pretty good as well.
The only downside is that they never give a good explanation of web frontend/backend and how web apps actually work. Because of this, I spent at least a year thinking frontend was all there was.
I did write a post explaining frontend/backend the way I wish it had been explained to me. Maybe you'll find it useful: naclcaleb.hashnode.dev/web-application-stru..