You Can Learn How to Code
young man learning javascript

How Long Does It Take to Learn JavaScript?

The question all aspiring web developers want to know is: how long will it take to learn JavaScript? One question I field regularly is, can I learn JavaScript in a week? While you can learn some JavaScript in a week, getting to an intermediate level required for entry level jobs will take closer to nine months. Many people find they can pick up HTML and CSS relatively easily, but discover that it takes them loner to learn JavaScript. And since JavaScript is an essential skill for all front-end web developers, it is important to learn it well and to develop a mindset that will allow you to work through frustrations.

This remainder of this post was updated in March, 2019 to reflect important changes in JavaScript libraries, which are explained below.

Today, I am going to address the skills you must acquire to become a Junior Front-End Web Developer and attempt to give you a realistic idea of how long it takes to acquire these skills. It may take you more or less time, depending on your experience level, and if you are strategic in how you approach your JavaScript education.

Learning JavaScript Requires a Strategic Approach

To become a front-end web developer, you absolutely must learn JavaScript. It took me a longer time than necessary to learn JavaScript because I tried to learn jQuery first. jQuery is a popular JavaScript library, and I go into that in detail below. I had heard that it was easier to learn than JavaScript, so I decided to start with it. This was my first mistake. When I started to learn jQuery, I had already learned a little bit of JavaScript, and I ended up getting the JavaScript and jQuery syntax confused. I could have saved myself a lot of time and frustration had I learned vanilla JavaScript first, so that is what I recommend now if you are starting to learn JavaScript. It is also important to note that it is no longer necessary to become an expert in jQuery. I will cover more about that in Step 2 below.

There is a lot of confusion about which parts of JavaScript to learn first, so I will outline a path. After you are comfortable with the major JavaScript libraries (step 2) and have completed one or two projects with a backend (step 3), you will likely have enough knowledge to land a job as a Junior Front-End Web Developer. Your first goal is to acquire enough knowledge and practice where where you are comfortable with intermediate JavaScript. At that point, you can start learning about libraries and frameworks.

Step 1: Learn Vanilla JavaScript

Vanilla JavaScript refers to JavaScript code that is not enhanced by any libraries or frameworks. The level of difficulty ranges from the very basics of the language to intermediate and advanced programming concepts, including closures, and prototypal inherritence in object-oriented programming. In order to get a job as a front-end web developer, you should have at least an intermediate knowledge of these concepts. You certainly don’t need to have mastered functional programming or understand every aspect of the prototype chain, but closure and common functions like call, apply, and bind are important concepts for you to understand before you hit the pavement with your resume.

Vanilla JavaScript is making a resurgence, now that compatibility across browsers is less of an issue. To see some examples of Vanilla JavaScript, you can check out this website on Vanilla JS. Even though the website was created as a joke, it can give you a feel for the JavaScript language if you’re not yet familiar with it.

Depending on how much experience you have, you can learn the fundamentals through intermediate JavaScript in six to nine months. One course that helped me speed up my education was Colt Steele’s The Web Developer Bootcamp. I continue to recommend that course to those who are struggling with JavaScript. If you are just starting out, though, there are some other good options that cover important syntax changes to the JavaScript language since Colt Steele’s course was released. For details about which JavaScript bootcamp is right for you, check out my post Which is the Best Online JavaScript Bootcamp for You?

Step 2: Learn the Important Libraries Like React

Before we get into learning React.js, I am going to cover whether or not you should learn jQuery. It is a library included in many older JavaScript courses, so it’s important for you to know about it and why it was invented so you can understand the context when you start to explore learning resources.

Brief Sidebar: Should You Learn jQuery?

jQuery is the most common JavaScript library; however, newer courses like Andrei Neagoie’s The Complete Web Developer in 2019 do not teach jQuery. The reason is that jQuery is no longer a necessary tool for web developers to have in their arsenal. To understand why, we can briefly examine the history of jQuery and why it was created.

When jQuery was invented in 2006, it solved an incredibly important problem. Due to the browser wars, web developers often had difficulty writing JavaScript that behaved consistently across different browsers. jQuery is a library that standardizes DOM manipulation across different browsers, and it solved the problem of inconsistent behavior for web developers. Web developers also like jQuery because it allows them to accomplish more with fewer lines of code than vanilla JavaScript. And because the jQuery library is so popular, you may end up working for an employer like mine who has websites that still run jQuery.

For these reasons, you may decide to learn jQuery eventually. To learn it, I you can check out Edwin Diaz’s course jQuery for Beginners, which will give you a decent foundation.

For any new web apps that you are building, though, it is best to stick with vanilla JavaScript and React, a newer and incredibly popular front-end library, so we’ll cover that next.

Learn React.js

React.js is a front-end library that allows you to build user interfaces. If you’d like to work as a front-end web developer, it is an important library to learn.

React is especially good for mobile and single-page web applications. It provides an excellent user experience because it will update only the parts of the webpage that change, rather than updating the entire page every time there is a change to the structure of the webpage. It will also make your job as a front-end web developer easier. With that in mind, you might be tempted to jump into React before learning JavaScript basics, but any course on React.js assumes that you know basic to intermediate JavaScript.

When you’re ready to learn React.js, there are a couple of great options. It is part of Andrei Neagoie’s The Complete Web Developer in 2019 course, which also covers HTML, CSS, JavaScript, and node.js, which I’ll cover below. If you already know JavaScript and are ready to learn React.js, you can check out React—The Complete Guide by Maximilian Schwarzmüller. It contains a whopping 40 hours of instruction on React.js as well as a meaty project you can use for your portfolio.

Step 3: Learn Other Relevant Front-End Frameworks

Before we discuss which frameworks you should learn, I’d like to mention an important difference between libraries and frameworks. While libraries allow you to pick and choose the features and methods you’d like to add to your existing code, frameworks have their own unique structure into which you add your code. Frameworks have their own syntax that you’ll have to adapt, which is why it is important to have a solid understanding of the JavaScript language before you start to experiment with frameworks (or libraries, for that matter!).

So, which front-end JavaScript frameworks should you learn? It will largely depend on what kinds of projects you’d like to build and where you’d like to work. Those two things will dictate which framework you’ll learn first. Ember.js, for instance, is great for web apps that are rich in features. Angualr.js, on the other hand, is ideal for complex projects and if stability is required. It is a solid framework that is supported by a large community of developers.

The other consideration is, which companies would you like to work for? My recommendation is that you take a look at the websites for the companies you’d like to work, examine the source code and then identify the frameworks they use. It is important to note that because JavaScript frameworks come and go, you will not be able to learn them all. With that in mind, you can make strategic decisions about which frameworks you’d like to learn. You can concentrate on one or two and build a couple of web apps that require the frameworks of your choice.

Currently, two of the most popular frameworks are Angular and Vue. Other examples of frameworks include Ember, Backbone, Knockout and Meteor. Once you have an intermediate understanding of JavaScript, you can build a few projects with a new framework in one to three months, depending on the complexity of your project.

If you aren’t sure where to begin, my friend Sid wrote an awesome post about another course by Maximilian Schwarzmüller that provides a tour through popular JavaScript frameworks so that you can determine which ones you’d like to learn.

Step 4: Learn Back-End Web Development

Backend web development includes learning Node.js, Express.js and Mongo DB, which is a relational database. Node.js moves JavaScript to the server or back-end side and allows us to run JavaScript code outside of our browser. In addition to node.js, you’ll use npm, the Node package manager. There are an immense number of packages for Node.js, due to the large number of developers who have contributed to it. While these package managers make programming tasks easier, they can be difficult to debug at times, so it’s best to tackle back-end JavaScript once you’ve had at least a year of experience. A diligent programmer can learn the basics of Node.js in a few weeks through the The Complete Web Developer in 2019 in which you’ll build out a JavaScript project that requires a front end and a back end.

I hope this article has clarified the order in which you should tackle JavaScript topics. To re-cap, you’ll start with vanilla JavaScript. Once you have achieved an intermediate level of mastery of the JavaScript language and understand complex topics like hoisting and closures, you are ready to move onto React.js. After learning React, you can start working with front-end frameworks and back-end JavaScript programming. You can begin applying for junior-level front-end web development jobs once you have an intermediate-level understanding of the JavaScript language and have completed a comprehensive bootcamp course such as The Complete Web Developer in 2019.

If you have any questions about the JavaScript learning path I have outlined, feel free to contact me at laura.white@youcanlearnhowtocode.com or leave your questions in the comments. I will do my best to help you.

20 comments

    1. Hi William,
      JavaScript is responsible for the interactivity on your webpages. If you ever see an image slider, a new email in your inbox even though you haven’t refreshed the page or some cool animation, all of those things are accomplished with JavaScript. Sometimes you can add animation with CSS, but JavaScript is a powerful scripting language. It allows us to interact with the DOM, or the Document Object Model, in order to manipulate webpages and create engaging experience for users. I hope this helps! If you have any other questions, feel free to let me know.
      Laura

  1. I like the idea of actually checking out the website of the employer that I’m interested in working for. Such a simple concept, but I didn’t even think of it! I really appreciate how you summarized the whole process at the end of the article so I can check each off as I go! Thank you!:)

  2. This is very helpful because you are breaking it down in steps the process of learning JavaScript the right way. It is interesting that it takes 9 months to learn but I am glad you mentioned that because it gives the proper expectation.

    This is such a great skill to learn and it not only can assist me as a blogger but also can open doors for other monetary opportunities.

    Thanks for sharing.

    1. You’re welcome, Nate! There are plenty of people who learn JavaScript faster than nine months, particularly if they are able to attend a bootcamp and learn that way. For a diligent students learning on their own, it can take a little longer. Part of the reason is that JavaScript is such a vast programming language that it’s easy to get distracted and learn things out of order. You are also correct that learning JavaScript will help you as a blogger. You can add more interactivity to your webpages and create delightful online experiences for your readers. You can add animation, images sliders, fun quizzes and web apps… I could go on, but you get the idea! Good luck with your blog, and if you try to add a bit of JavaScript and get stuck, please feel free to get in touch.
      Laura

  3. Thank God for WordPress is all I have to say. I know it has got to be a challenge to get into JavaScript. I think if I desired to it would probably intrigue me enough that I would eventually like its challenges. My hats off to all that are good at using it.

    1. Hi Ronnie,
      The secret is to be okay bumbling your way through JavaScript. On some level, that’s what we all do. There isn’t anyone out there who is an expert in all aspects of JavaScript. It’s simply not possible because the language is so deep. Even Kyle Simpson, one of the most experienced JavaScript scholars and teachers, says that he is not a JS master. That was such a relief when I heard that, so I share it with you as well in case you decide to change your mind and learn some JavaScript. By the way, I started out with WordPress just like you. I still enjoy using WordPress, but a proficiency with a content management system is the first clue that you can handle web technology. I hope I can convince you to give JS a try! It makes your webpages fun and engaging for your visitors.
      Laura

  4. Hi Laura,

    Web development is something I am really interested to learn because I am thinking of getting into freelancing. I am not a savvy tech and I am well aware it will take a lot of time and effort to learn even the basics. You mentioned a time frame of 9 months, well, it could take much longer right? I regret not taking up IT or Computer Engineering. Do you suggest having a formal education?

    This walk-through to learning JavaScript gave me a better understanding of the kind of work I need to put in should I pursue my plan of learning how to become a web developer. Thank you so much. I will be looking around here for more information about JavaScript.

    1. Hi Aysanna,
      A formal training is not necessary at all. Most web developers are self-taught. JavaScript is taught formally at a few institutions, particularly at community colleges, but there is honestly no substitution for putting in the time at your computer. To answer your other question, yes, it can take longer than nine months. It took me longer, but I have seen some web developers make the leap to full-time work in six months of self study. Those who successfully make it through intensive bootcamps can do it in even less time. With my training, though, I found that I really needed to test the code and play with it and look things up when I didn’t understand them. If you keep doing that, you will continue to gain proficiency. If you need any help along the way, Aysanna, please feel free to get in touch.
      Laura

  5. Wow, this is a really good article for me… Outside of my normal projects I have ideas for new web apps that I can’t build without JavaScript. I’m going to keep this bookmarked to refer to it as I learn. Really well made article! Wish me luck as I learn!

    1. Best of luck to you, Izzy! So glad you found this article useful. Feel free to write to me if you have trouble adding JavaScript to your webpages. There are other resources I can recommend.

      1. Hi Laura,
        I’m from India. I can understand the javascript concepts, but I don’t know where I have to use it while coding. Could you help to me over come this? What kind of things do I need to concentrate to become strong in JS basics.

        Thanks,
        Prasanth

        1. Hi Prasanth,
          JavaScript is used to make webpages interactive. It is instrumental in improving a user’s experience on your website. Some ways in which you can practice your JavaScript skills are to build web apps that interact with a user. For instance, create a form and use JavaScript to add validation for inputs like email addresses and phone numbers. Other things you can try include creating your own image slider, building a loan calculator, creating memory games, interactive quizzes, etc. The list goes on and on. There are endless projects you can create to demonstrate your skills. You are only limited by your own imagination. Is there a web app that people (or you) wish existed? Figure out if the idea can include JavaScript and try to build it.

  6. Coding actually seems kind of easy after reading your post. I am no computer genius whatsoever, and usually when I try to learn I just give up in a heartbeat because it seems so frustrating. Your post seemed to eliminate all of the scary stress of the learning process. I was actually intrigued and very glad I came across this one. Thanks for the information.

    1. Thanks, Angelina! I’m glad this post helped you see that learning how to code is, indeed, possible if you’re willing to put in the time. I wouldn’t say that it is easy, but it gets easier as you build your skills. The more you work with a programming language and can learn how to troubleshoot, the more valuable and in-demand your skills will be. If you need help identifying a course to help you get started, I’m happy to help.

  7. What a fantastic article Laura! I have been running up and down like a headless chicken since February this year because I want to become a web developer by all means. The challenge has been not knowing the exact learning path. I enrolled for a number of courses at Udemy including the Web development bootcamp by Colte Steele but I kept on looking further withought settling for a particular course. Good enough I got a little comfortable with HTML and CSS. Until last week, I decided to religiously follow Colte’s course and I can tell you, I see a big change and I’m almost competing the DOM section. Your article gives exactly the right path to take and helps on exactly what to look for when searching for further resources. What I’m stuck with is how to apply with what I’m learning. Could you maybe have some ideas of small projects I can work on everyday to practice and perfect my knowledge?

    Thank you Laura.

    1. Congratulations, Steven! I’m so glad that Colt’s course is working out for you. Hopefully you’ve continued to move through it and are nearing the end. After completing his course, I’d recommend learning ES6, which is JavaScript syntax that was revised. It’s also called ECMAScript2015. I know, I know, just when you think you’ve learned all the JavaScript you need, you need to learn new syntax. It isn’t too bad, though, and once you complete Colt’s course, you have a couple of different options. The easiest one is Stephen Grider’s ES6 JavaScript. The other option is The Advanced Web Developer Bootcamp, which Colt teaches with a few other people. Personally, I’d recommend Grider’s course because it will get you where you need to go faster. While there are other JavaScript courses that now implement ES6 from the beginning, I have piloted three of them and don’t think they are anywhere near as good as Colt’s course that you are taking now.

      So, now that we have that bit out of the way, onto your actual question. With JavaScript, it’s important to understand objects really well, so I am a big fan of building projects like calculators that make strong use of objects. Once you complete Colt’s course, you will also want to decide if you want to concentrate more on the front end of websites or the back end. One way to tell is if you absolutely love CSS and don’t mind dealing with JavaScript browser quirks, then you can concentrate on front-end projects, such as adding some animation to an existing webpage. You can start small, by adding things like window sliders to an existing website and building up from there to creating complex quizzes. One cool JS project that I was involved in was the Amana Troubleshooting Guide. Think about the JS operating behind the scenes when you click on an option. And finally, one project that I see that never gets old is creating a JavaScript memory game. Others have done that, too, so you can take a look at some examples and then create one with your own code. Really, the possibilities for projects are absolutely endless! Good luck to you, and I hope your JS education continues to go well. I applaud you for sticking with it.

  8. Hi Laura, thank you so much for the thorough article! I’ve been learning the basics of HTML, CSS, and now JS on codecademy.com for a couple months but I never really looked around a bunch to see who had the most effective training courses… I just kind of found one and started. Have you any opinion on whether the courses you recommend are better in one way or another from the codecademy pro courses?
    They seem decent but I don’t really have a reference for what “good training” is when it comes to coding… Sometimes I feel like codecademy moves to quickly through a subject but maybe it’s just my inability to pick certain concepts up quickly. The nature of learning I suppose. Anyway, if you have any opinions on my situation I’d love to hear. Thanks again! Take care. Be Blessed!

    1. Hi Aaron! Apologies for the delayed response. To be honest, it’s been awhile since I’ve used Codecademy’s pro service, so I’m not really in a position to comment about the effectiveness of their training. What it really boils down to is, what will work for you? I found learning JavaScript to be a huge hurdle and had tried many different courses. The most effective one for me was Colt Steele’s Web Development Bootcamp. A number of people I recommend the course to also found it to be incredibly effective. That said, the JavaScript language has evolved since Colt published his course, so once you’re comfortable with the concepts and have completed his course, I now recommend Stephen Grider’s course on ES6, which will give you a thorough understanding of the new syntax and concepts. You can also try Andrei Neagoie’s course The Complete Web Developer in 2019 since it covers ES6 syntax from the beginning. I will say, though, that Neagoie’s course ramps up much more quickly, so if you’re finding it difficult to keep up or have a frustrating experience, Colt Steele’s course may serve you better. Good luck, and please feel free to hit me up if you have more questions.

Leave a Reply

Your email address will not be published. Required fields are marked *