Need help starting with Javascript

Hello. I would like to learn Javascript, but am feeling overwhelmed.

Everyone I talk to says it is super easy, but that isn’t how it feels to me!

I’m getting up there in years, and 20 years ago I was fairly proficient with basic web development (e.g. HTML, CSS, PHP, MySQL) but for whatever reason I never learned Javascript.

Now I am “starting from zero” and my goal is to learn at least the basics of Javascript.

The problems is that there seems to be a million different versions, and I don’t understand what it all means. (I can walk into Barnes & Noble and see an entire section with books supposedly dealing with Javascript, yet they look like distinct languages to me.

I see JSON, JQuery, Angular, Node, AJAX, to name a few.

Back when I did some web programming there was just Javascript, and I am kicking myself for not learning it back then, because back then it probably was fairly easy to learn.

But now I hear kids these days talking about libraries and frameworks and a whole bunch of confusing terms.

It feels like it will take me 10 years to learn Javascript at this point, and if that is the case then I likely won’t pursue it.

I want to learn Javascript because I have at least one project where I just can’t accomplish what I want using static HTML and PHP, but I feel like maybe I am too old to learn Javascript.

Here is hoping that the experts on this forum can take some time to teach me the basic, adn more importantly help me figure out the one hundred different versions of javascript and what that all means?!

fingers crossed

I recommend starting with the Basic JavaScript section of the Free Code Camp curriculum and then continue to the other sections of the Javascript Algorithms And Data Structures Certification.

You will struggle along the way, but that is totally normal for anyone learning JavaScript the first time.

Once you get through that section you will learn more about libraries and frameworks which are still just JavaScript. A library is nothing more than a collection of JavaScript functions designed to make it easier to do things. They help you focus on writing code to accomplish the tasks you want with less code. jQuery is one of those libraries.

JSON is just a special notation used for storing data in a text file which can be parsed at a later time by code you write.

Angular is a framework. Frameworks are similar to libraries with the difference being that they provide a specific blueprint of how you go about writing code to build an application. Check out this article for more about the difference between libraries and frameworks.

Node is a runtime application which lets you write JavaScript to create applications on the backend. It is kind of like how you have used PHP before but has some unique differences which you can discover once you get to that section of our curriculum.

AJAX is a methodology commonly used to make calls to a local or remote resource (i.e. an API or data source like a JSON file) behind the scenes. This allows a user to do other things on your site while these calls are made without disrupting or pausing the experience for the user while your front-end application waits for the data to be returned. One example of using AJAX would be a user needs to upload a very large file to your site for you to store somewhere on the server. The process would be the user selects a file and clicks and “Upload” button and the file is transmitted to the server. Before AJAX, the user would have to wait until the file completely uploaded before being able to see if the file made it successfully. Basically, the web page is kind of frozen until the file is completely uploaded.
With AJAX, the user can click the “Upload” button and still be able to browse other parts of the site while the file is being uploaded to the server. Once the file is uploaded, you could pass a small message via a popup modal to let them know the file was successfully uploaded or not.

1 Like

Looks like an interesting path, but I don’t have 300 hours of time to learn Javascript. Rather, I am trying to learn bits and pieces to solve a given problem right now.

Down the road, I could certainly study the whole thing, but the whole reason I am here is that I don’t have time to turn this into a going back to school for a year or two exercise.

Can I use Javascript without using libraries? (I have always preferred writing my own code!)

Do I need to use JSON to use Javascript?

JSON seems to be the buzz at work these days…

Can I write Javascript without using a framework?

I am trying to build a home financial system where I can key in expenses and then do reporting on things. (I have outgrown my spreadsheet.)

Originally, I had planned on writing something using HTML and PHP and using a local webserver to host this web app.

Sounds like Node could do that, but is maybe a distraction?

So you can write Javascript and not use AJAX?

Is AJAX an approach or a framework/library/language?

Thanks!

It will not last 300h - but it will give you the basis you will need for everything else, all the other frameworks, libraries built on javascript, it is not the whole thing, it is basic syntax, data structures, flow and concepts

You can use JavaScript without any framework or library, sometimes they just make the work easier if you want to do something complex because someone has already taken vanilla JavaScript and already created the complicated functions that do those things

@ilenia,

Can I ask general Javascript questions in this forum, or does this forum only support questions related to the free CodeCamp curriculum?

Yes, like I said before, libraries are still written in plain JavaScript.

That depends. If you have a large collection of data that is static in nature and will not change very often and you would only make manually changes to end, using a JSON would allow you to store that data separately outside your code.

Yes, very similar answer as my previous answer regarding libraries. The newer frameworks can definitely make your life easier because they help abstract away things like DOM manipulation which can get very complicate very quickly on large projects. It is all about having the ability to scale your project as you add more features, etc.

Not sure what you mean by a distraction. You can stick with PHP for back-end, but once you learn JavaScript you can use it for both front-end and back-end. That is very convenient.

It will depend on what you are trying to do. With the nature of the project you describe, my guess is you will need to use AJAX. If you are working with a database like mySQL, this is almost a given. As you enter data into your application and click save, behind the scenes (without having to leave the page you are on) the data submitted would be saved into your database.

You can use your favorite search engine to find all kinds of information about using AJAX. You can find lessons in our curriculum which cover the subject also.

You can certainly try to piece things together, but from my experience of 17 years as a developer, you will end up spending longer trying to build projects without learning the fundamentals first.

You can ask coding related questions on the forum, but you may not always get the feedback you are wanting. We prefer to teach you how to do things instead of just telling you what to do. You will have to “work” to solve your problems with hints and suggestions from the volunteers who frequent these forums.

I am willing to work, but am trying to avoid going down the wrong paths. I also want to avoid learning the whole book on Javascript when maybe I only need a chapter or two for right now.

People learn best when they have lots of "little victories’ versus droning along reading lots of theory.

Our curriculum doesn’t teach much theory. We leave researching the theory behind what we teach the user who seeks that knowledge. We teach you just enough of the fundamentals with examples and challenges to test your knowledge, so that you can figure out most everything else with the help of your favorite search engine. Plus, if you work through the curriculum, you will have a very large community wanting your to succeed in your journey to learning.

There are no shortcuts to learning the fundamentals. You just have to study and practice, practice, practice. Without the fundamentals, you will spend most of your time searching on Google or StackOverflow, hoping someone has asked the exact same question as you.

@RandellDawson,

I wasn’t critiquing your curriculum per se, my point was that it is better to learn a little and succeed a little, versus studying on and on and on.

I want to learn, and learn the right way to code Javascript, but what I still haven’t figured out is, “What is the minimum amount of Javascript/JQuery/JSON/AJAX/Node/Angular/and-100-other-Javascript-related-things in order to code the one feature I need to build?”

If it takes 300 hours to complete your course then it’s not worth tackling this project now.

But if I could learn chapters 1-4 in a 100 chapter book, and I could learn enough in say one month to do what I want to do, then it is worth the investment.

I’m pretty sure the sub-form I want to build is fairly easy, but the bigger challenge is figure out which technologies/languages I need to use.

(If you goal is to learn how to change your spark plugs in your car, it would be foolish to become ASE certified first, right? That is what I am trying to avoid here… Yeah, I want to become ASE certified in a few years, but right now I just need to change my spark plugs, and nothing else. So studying about transmissions and rear ends and brake systems is a waste of time…)

That is exactly what the curriculum does. You work through small challenges learning little bits at a time and slowly build the knowledge needed to solve the more complex challenges later in the curriculum and then ultimately help you work on the projects (which are full blown apps).

The curriculum times assume you know nothing about programming. If you already have programming knowledge (like PHP), it may only take you 100 hours to work through the material. Think of it as a worst case scenario. Everyone learns at a different pace, so some may take longer than 300 hours and some have completed it in 30 hours.

(If you goal is to learn how to change your spark plugs in your car, it would be foolish to become ASE certified first, right? That is what I am trying to avoid here… Yeah, I want to become ASE certified in a few years, but right now I just need to change my spark plugs, and nothing else. So studying about transmissions and rear ends and brake systems is a waste of time…)

Coding is not like changing a spark plug on a car. If you want to watch a video on youtube to figure out a coding problem that is very specific, you will probably spend hours trying to find that “one” video which matches what you are trying to do. If you don’t understand the fundamentals of JavaScript, you will not have a clue of what parts you can change without causing problems for yourself later when you need other features where you can not find a video for.

It maybe you do not take the entire course here. Maybe you just work through the Basic JavaScript section and then watch some videos on the web for everything else. That is completely up to you. However, if you decide to work through the entire curriculum, you will have a much better chance in creating what you want in a much shorter time from my experience with helping others here on the forum.

I agree, but you’re missing my point…

There are probably tons of things in javascript that I would not need to do in order to create my dynamic sub-form.

In addition, since Javascript seems to be such a cluster**** with all the frameworks and libraries, I could very easily get off into the weeds.

And that is what I am trying to avoid.

But, alas, I don’t know what I don’t know, so I am hoping some experts - like you - can point me in the right direction and say “Focus on learning this” and “stay away from these things”.

For someone who knows programming, on average, how long to get through the pure Javascript part, and not delve into the frameworks and library stuff?

When I came to FreeCodeCamp (back in January 2017), I knew very little JavaScript, but had been using HTML, CSS, PHP, ASP.net for many years and had been coding with Python about a year prior to joining. At that time, the JavaScript section did not have as many sections (i.e. ES6, Object Oriented Programming, Functional Programming) so I believe the estimated number of hours to complete the whole thing was closer to 150 or 200 hours (someone can correct me if I am wrong here). It took me about 40-50 hours to complete the section. In June 2018, the JavaScript section was expanded to include the newer sub sections I mentioned above. I believe it took me about 50-60 hours to complete the newer sections. Keep in mind though that between the time I finished the older sections and when the newer sections were added, I had practiced writing a lot of code based on what I had already learned to solidify my understanding of the concepts. I also worked through problems and challenges on other coding sites and discovered some of the content taught in the newer sections while searching for how to do stuff along the way.

I do not have the average time it has taken the average camper, but I am sure the data exists somewhere.

The reason I am being so cautious is this…

I have been away from any kind of web programming for at least 4-5 years and I feel like my brain has rusted shut!

And that is depressing, because I was working on a startup business that got 90% done before I had to put things on hold because other things came up in life.

In addition to this, I have this nagging issue of a sh**load of paperwork that is piling up in my life and becoming unmanageable. (I spent $10,000 on one credit card since January and I have NO CLUE where all that money went?! No wild trips to Vegas, and yes I have receipts, but the point is I have no easy way to say, “Oh, I spent $1,500 at the mechanic and $2,000 on medical co-pays, and another $500 on computer hardware, and so on…”)

Fortunately, I do not need Javascript to finish my website, but I do need it to build this web app to get my finances in order.

And I already feel like maybe I should sit down and take the next 3-4 months or re-reading all of my HTML and CSS and PHP books to get my head back in the game, and now there is this nagging Javascript issue… :anguished:

I love learning, and normally I am a “Start at page 1 and read through to the end on page 1,500” kind of guy, but I am going to be flipping dead by the time I get back on the horse and ship these two projects?! :rage:

Since I feel like this is my last chance in life to “right the ship”, I am trying to be damn strategic in how i spend my time…

(I wonder how all of these kids program the next facebook by 27 and return BILLIONNAIRES by age 30?!)

I can totally relate to what you are saying. I believe my response in the other thread gives you a little history about that. Anyway, I hope you are willing to take a chance and test out at least the Basic JavaScript section to see what you think.

Happy coding!

There is also a very detailed answer regarding how to learn JavaScript. I am sharing it’s link with you. Hope it helps you in a great way.

What is the best way to learn JavaScript?

1 Like