Help needed *Losing motivation*

Hey guys,
So for a few months now i’ve surpassed the HTML CSS part of the curriculum, and as soon as I reached Javascript, I felt like I reached a roadblock where it’s a constant battle in myself that I need to keep pushing to finish this Javascript. I used to spend about 4-5 hours a day through HTML and CSS, up until I reached the projects. In which, I ended up watching how-to youtube videos to help complete these projects. Fast forward, and i’m now doing Java. Although it wasn’t bad the first few days, still feeling unmotivated (having spent 4-5 hours a day now to 1hr or 2hr every other week) and I’ve, again, been hit with a roadblock where I am simply not absorbing the idea of “Functions” and frankly, feeling unmotivated to do this since I’m not understanding Java, nor am I willing to spend too much time learning it, I felt it was too dry and dense. As much as I want to be a Game Tester/Web Developer/Softwareperson, I’m stuck with this dilemma where I am now contemplating skipping Javascript and jumping onto the next curriculum in hopes that I will learn other things and maybe then, will motivate me to continue on with Javascript. But a part of me also doesn’t want to do Javascript anymore. I live in Canada, Vancouver, and i’m looking for some insight please :smiley:

Hi @Sherif123 !

It sounds like you are not just struggling with javascript but programming in general.

When you first learn these concepts, it can seem a little dry.
But that is because you are not applying this knowledge into actual projects.

Javascript 30 is a really popular resource.

You could start building projects and learn how html, css and javascript go together.

I wouldn’t suggest skipping to the next part because the next few certifications deal with javascript.

The front end libraries, works with react and redux which is still javascript at the core.
Data visualisation, Api and Microservices, node, express all have to deal with javascript at the core.

A lot of people struggle to learn their first programming languages but I think starting to build projects will help you understand better.

Hope that helps!

4 Likes

That is an awesome start! thank you so much :smiley: I love this community and I appreciate your help!! I suppose, rather than losing motivation, I can ask for simpler resources to better my understanding of jargans and syntaxes :smiley:

1 Like

This is common for beginners. Programming can have a steep learning curve and takes a while to fully understand the material.

You can’t skip the JS section, as all the other sections build off of it in some way. I’d suggest bringing out a notebook and hand writing notes for these sections. Ask on the forums what you don’t understand and don’t move on until you do.

Functions are a way of grouping code together for later. Instead re-writing the same code over and over again, you can create a function with that code and call that function everytime you need it. That is all it is, and even the core of the JS programming language is just that as you will see.

Objects are a way to store a group of functions and other information. Arrays are a object that can store basic information, while objects with key/ data pairs can store more detailed information.

Programming is based around objects.

Lets say you want to create a Array.

Let arr = [1,2,3]

When you define arr, it creates a copy of a Object known as Array in the programming language. If we go to the developer tools (F12) and console.log() what Array.prototype looks like, we see this:

image

So every array object, such as arr in this case, is a child object of the parent Array object in the programming language. Since all the functions such as length, keys, find, etc are stored in the prototype of Array, every single new child array object that is declared (arr) have access to these functions.

So when you say arr.push(value), arr just asks the parent Array object for what .push(value) is, and the Array object provides it. arr itself doesn’t store all of the push, pop, etc functions, it just stored a reference of were to look for them in the parent object Array.

Now you might be getting confused with what the word Object means. Isn’t this a Object?

let obj = {
 "Name": "Bob"
}

Well in this case this is also a Object, but instead of referencing Array.prototype, it references Object.prototype due to the way you declared with key/ data pairs!

image

obj in this case is the child object of the parent Object in the programming language (capital O), same with arr is a child object of a parent object called Array in the programming language.

Array and Object are very close to each other, because both store information, just in a slightly different way. They even share some of the prototype functions.

The term constructor that you may see is the act of creating a child object from a parent object. For example, when we created arr, it activated Array’s constructor, known as Array.prototype, and creating a reference to it.

The same is true with console.

console.log("Hello World")

When you look at what console is in the programming language, its just another object. In this case however, you don’t create a new console object and store it in a variable. Its stand alone and already declared for use.

image
(Notice log and clear)

Same is even true with String, and Number, and anything else you can think of.

image

Every string you create is a child object of String.prototype, and every number is a child object of Number.prototype. That is where everything gets its functions from. Every string you make is a object and every number is also a object.

The use of these objects is object oriented programming. You can create your own custom object prototypes that all instances of that object share, and even modify the Array and Object (etc) prototypes.

Most of this is discussed in Object Oriented Programming and Functional Programming. I am just giving you a very brief look into what programming really comes down to. All a programming language is a collection of these Objects that you can access and use their functions. Some languages have different functions stored within these parent Objects, while others use completely different Objects for different purposes.

I hope this helps you understand what the core concept of programming is.

1 Like

Ups and downs are part of the learning process.
Having stability and a clear goal is very important, that does not means that you cannot make small changes. You can, but there are things that are pretty essentials as JS in your curriculum.
My suggestion is, if you strive too much with something, try to learn it step by step, don’t put additional pressure to yourself. Be reasonable with yourself and your goals.
Best Wishes.

Careful with language names, Java and JavaScript are two completely different languages

1 Like

Aside from FreecodeCamp, is there any other resources where I can easily learn javascript? how is CodeCademy or Udemy etc…

2 Likes

Don’t be afraid to find the resources you need. freeCodeCamp might be a good start for some, but not for all. I like freeCodeCamp because it teaches you all the basics of the language and then forces the user to put it together for a final project.

Some other sites have you build projects along with the instructor. This can be good to teach you how to build projects but it might not teach you the fundamentals of how things work. It could turn into simply copying what the instructor writes rather then coming it with themselves.

During the summer of 2020 I did a coding book for school (700+ pages) which included many front end projects. The issue is that it just gave you all the code and skimmed over the fundamentals, resulting in a bunch of projects made with code you didn’t write and don’t understand. Halfway through I lost all motivation to even code as a result of how mindless and endless all 700 pages were. Figuring things out for yourself with some extra help is much more rewarding in my opinion then following a tutorial.

Its possible you could find a site to teach Python as a beginner (rather then FCC with it as a later certification) in order to understand programming fundamentals. Python is not easy (no programming language is - besides scratch) but it is easier then JS and way easier then Java. Coding is easy to be overwhelmed with and some big projects seem daunting. That is why people with 20 years of experience are always learning.

2 Likes