DEV Community

Cover image for How To Learn JavaScript
Emma Bostian ✨
Emma Bostian ✨

Posted on • Updated on

How To Learn JavaScript

In today’s day and age, coding is becoming more popular than ever. It’s not uncommon for people to quit their jobs, learn coding, and get a front-end development position as a second career.

Front-end development is such an attractive career for many reasons: high-demand, large salaries, and anyone can learn how to code for free (or a small amount of money) on the Internet.

Perhaps the largest facet of learning front-end development is having solid JavaScript skills. The majority of front-end development job interviews involve heavy JavaScript coding as well as deep understanding of the underlying concepts.

But learning JavaScript can be daunting with so many resources to choose from. So I have compiled a list of the top places that helped me learn JavaScript.

If you’re completely new to front-end development, check out the Front-end Developer Handbook. This is a great introduction to front-end development with high-level explanations of the related technologies.

Online Courses

The best way to learn JavaScript is by practicing, thus online courses provide a great learning environment that requires you to complete activities and projects.

Many websites will have free options for their courses, but for $40 or less (usually) you can upgrade to the professional tier and unlock more content.

Some websites, such as Lynda, even offer integration with your LinkedIn profile so you can display your course achievements on your resume.

This is a great way to stand out to technical recruiters.

Lynda ($30/month)

Front-end Masters ($39/month)

Pluralsight ($29/month)

General Assembly ($ varies by course)

Treehouse ($25/month)

Coursera ($ varies by course)

Egghead.io ($40/month — pro)

CodeAcademy ($ varies by course)

Level Up Tuts

Traversy Media

Scotch.io

Email Subscriptions

An easy way to stay up-to-date on the latest and greatest features in JavaScript is to sign up for weekly email subscriptions. They show up in your inbox without you having to think about it.

JavaScript Weekly

Web Design Weekly

Books

Personally, I love reading technical books. You can find most of the books you’ll need for free online. For beginners, I recommend starting with the JavaScript and jQuery book below, although I wouldn’t recommend relying too heavily on jQuery as it’s a bit dated and most employers find this to be a deterrent.

You Don’t Know JS

JavaScript Allongee

Professional JavaScript for Web Developers ($13 — $27)

JavaScript & jQuery ($22)

Eloquent JavaScript

Websites & Blogs

Mozilla Developer Network is one of the best resources for looking up the answers to your most burning JavaScript questions. I highly recommend reading through their documentation. CSS Tricks is also an awesome website for staying up-to-date on JavaScript.

MDN

CSS-Tricks

Tools

Below are some great tools for quickly testing JavaScript (and related frameworks). They require no overhead to set up and are wonderful tools to use when following along to a course.

CodePen.io

CodeSandbox

JSFiddle

Frameworks & Libraries

I highly recommend learning all the ins-and-outs of JavaScript (vanilla JS) before getting to know a framework or library. Too often, developers jump in to learning React or Vue and don’t understand what’s going on under-the-hood, so these should be seen more as a second step in your JavaScript journey.

React

Vue

Angular

Ember

IDEs

To make your JavaScript journey enjoyable, it’s important to choose an Integrated Development Environment (IDE) that you enjoy. I personally love VSCode, but below are some other awesome IDEs.

VS Code

Web Storm ($)

Sublime

Atom

Top Influencers

A great, and easy, way to learn JS is to follow awesome influencers, or experts in the field. Below are some of the people I enjoy learning from.

Sarah Drasner

Chris Coyier

Douglas Crockford

Kyle Simpson

Front-end Development Interview Help

Once you’re ready to jump into an interview, the sites below can help you practice your coding skills. These are primarily algorithm-based, so make sure you’re familiar with common sorting and searching algorithms.

Coderbyte

Hacker Rank

Conferences & Meetups

Lastly, I highly recommend attending meetups and conferences as often as you can. Conferences can get expensive, however, so meetups can be a great way to meet other JS lovers in your city.

JS Conf

Fluent

ForwardJS

Meetup.com


The most important thing to remember when beginning your journey to becoming a JS developer is not to get discouraged and compare yourself to others. It takes years of practice and real-world experience to become an expert (as it does in any field). And if you’re seriously stuck, head over to Stack Overflow for help.

You will have tons of technical interviews without job offers, and that’s okay. But by learning JavaScript inside-and-out, you will be in an awesome position to score a kick-ass front-end developer job.

If you enjoyed this article, please give it a clap or two, and subscribe!

Oldest comments (59)

Collapse
 
somedood profile image
Basti Ortiz • Edited

I'd also love to add that if you're coming from a heavily object-oriented language such as C/C++, Java, and PHP, open your mind to the different concepts and ideas of JavaScript for object-oriented programming.

Many programmers hate JavaScript immediately because of its lack of a "proper type system" and the absence of "classical inheritance." If you're one of these people who reject the language immediately because of how different JavaScript works, I suggest that you take a deep breath and open your mind. Trust me, it's easier this way.

Plus, JavaScript is not so bad. It has a lot of great concepts in store for you. It really changes the way you think about object-oriented programming.

Actually, this brings me to my next point: JavaScript is multi-paradigm. That means you should expect a strange mix of functional and object-oriented programming when you look at JavaScript code. And that's not exactly a bad thing at all! It stretches your mind to think in different ways on how to solve a problem. It's a great way to get those brain muscles buff, you know? 💪

Collapse
 
mvasigh profile image
Mehdi Vasigh

Thanks for this! This captures exactly why I love programming with JavaScript so much. It's a very expressive language with room for really brilliant (and also really bad) code. I feel a more direct bridge between my brain and my editor when using JavaScript compared to Java/C#.

Collapse
 
justinctlam profile image
Justin Lam

This is where I think TypeScript is a good intermediate language to learn for those coming from OO languages. Type safety is so so important when developing applications on a large team.

Collapse
 
wilfrantz profile image
🇭🇹 DEDE

Very interesting comment. I am glad I have seen it. Please allow me to add a few words. I don't know if I am getting this wrong (please help if I do), I have academic\basic knowledge of C and I have very recently started to learn JavaScript, I am quite surprised how these two look alike, I am trying not to say there are related.

For instance, when I started reading about JS Object, I have noticed the similarities with structure in C programming, it was easy for me to have an idea of how JS Object works. so far my understanding of C is being a great asset in helping me get the most out of JavaScript. Furthermore, the lack of "proper type system" and the absence of "classical inheritance" you have mentioned are making it easier for me.

I'd say people are mostly scared of how broad JS is. (maybe)

Great post.

Collapse
 
somedood profile image
Basti Ortiz

That's really great to hear! There's definitely nothing wrong with using what you already know to make learning easier for you. That's a good thing!

Just be careful around some quirks JavaScript has that may be unusual in C. For example, if you were to study how JavaScript's prototypal inheritance system actually works, you might get quite confused trying to liken it to the classical inheritance system of C.

Otherwise, keep doing what you're doing. I'm glad that you're finding it easy to learn JavaScript thus far.

Thread Thread
 
wilfrantz profile image
🇭🇹 DEDE

Thank you for the feedback, and I believe you have made a great point here. I will remember that as it will help me to stay detail-oriented in my JS journey.

Cheers,

Thread Thread
 
somedood profile image
Basti Ortiz

No problem, mate! You're doing a great job. Keep it up! 😉

Collapse
 
denisepen profile image
Denise Pen

Great article. I also love Wes Bos and his "Javascript30" course. It's 30 days of JS exercises and I've learned quite a bit from it.

Collapse
 
inshalayaz profile image
Inshal Ayaz

Try reading this article it will also help you in the process
frogtok.com/easiest-path-to-learn-...

Collapse
 
ben profile image
Ben Halpern

This is one of those "wow, how do you effectively answer this question?" titles.

And there it is, this is the answer. Finding the right resources. It's not so obvious how one effectively learns a software skill when you're a bit on the outside.

Collapse
 
felipperegazio profile image
Felippe Regazio • Edited

Awesome post Emma, thx. I would add Speaking Javascript (speakingjs.com/es5/) by Axel. R. to the book list. Available free and paid.

Collapse
 
nickytonline profile image
Nick Taylor • Edited

Also, anything from Jake Archibald. He explains things so well. Here's two that standout.

These topics might not necessarily be beginner, but a good understanding of these will take you a long way.

Tasks, microtasks, queues and schedules

His talk at jsconf.asia about the event loop

Collapse
 
nickytonline profile image
Nick Taylor • Edited

I posted some front-end resources in a gist a while ago, not all JS, and Some of it's a little out of date, but there's till some good stuff in there though.

The ES6 Katas is really good. If anyone else has some katas, please add them here

Collapse
 
mvasigh profile image
Mehdi Vasigh

The jsconf.asia talk is absolutely brilliant and completely changed my perspective my first time watching it.

Collapse
 
andhop profile image
Andy Hopwood

I have a bit of a collection of technical books. I once took a vb.net book on holiday with me to Turkey! My wife calls them geek books lol

Collapse
 
andhop profile image
Andy Hopwood

Was definitely the best way for me to learn. My JavaScript book was my bible for a while

Collapse
 
maxwell_dev profile image
Max Antonucci

The Front-end Developers Handbook is a great resource, and it basically has every other resource one will need for a long time in it as well. If the answer is all about the right resources, that's one of the best singular resources one can share :)

Collapse
 
mvasigh profile image
Mehdi Vasigh

Great post. One resource I didn't catch (and I'm sure most know about it anyway) is FreeCodeCamp which is an exhaustive and free interactive curriculum. Also the web/JS ecosystem is kinda defined by some really excellent documentation provided by the bigger and more popular libraries or tools. No better resource for learning Vue or React than their docs which are brilliantly written and have awesome examples.

Another thing I'd recommend is to find either a mentor or a programming buddy. I didn't have either when I started learning but I know that they are valuable. One thing I often did earlier in my learning journey was to find experienced devs on online communities, especially in threads about code challenges that are given during interviews, and send them my solution for the challenge in question and ask for feedback. Having others review your code is super important, even after you're hired.

Collapse
 
emmabostian profile image
Emma Bostian ✨

Yes I need to add them! Thanks :)

Collapse
 
pgangwani profile image
pgangwani

Fantastic guide for newbie. I was cross checking all the sections if I have not any when newbie. Awesome.

Collapse
 
rhymes profile image
rhymes • Edited

Thanks Emma, solid content as always!

ES6 Katas was really helpful to me

Collapse
 
joeberetta profile image
Joe Beretta

Thank you for this great post. It would be great if you'll do post about node.js too))) thank you for great job

Collapse
 
adamlombard profile image
Adam Lombard • Edited

Great post, Emma!

Budget-saving tip: In the U.S., Lynda.com can often be accessed for free if you have a current membership with your local public library (which is also frequently free).

Look for something like "Online Learning Resources" on your library's website. For example, if you're in the Silicon Valley area, the Santa Clara County Library link for Lynda is listed here.

Collapse
 
mike_hasarms profile image
Mike Healy

Similarly if you're a resident of Queensland Australia you can access Lynda through SLQ ( not SQL ;) )

Collapse
 
rifaimartin profile image
Rifai Martin

Thanks Emma, Nice Post :D

Collapse
 
goyalshubham13 profile image
Shubham

Thanks for the list. My wife is just starting up with JS. I will fwd it to her.

Collapse
 
juanfrank77 profile image
Juan F Gonzalez

If you want to learn JavaScript in a fun and straightforward way, I think you can find some great material with @zellwk

Some comments may only be visible to logged-in visitors. Sign in to view all comments.