DEV Community

Cover image for How To Learn JavaScript

How To Learn JavaScript

Emma Bostian ✨ on January 14, 2019

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-e...
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
 
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
 
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
 
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
 
vicainelli profile image
Vinicius Cainelli

Great article Emma!

Have you ever saw this website? learnjavascript.online/
It's an amazing way of study.

Collapse
 
oathkeeper profile image
Divyesh Parmar • Edited

I'd like to add javascript.info that has helped me survived from that giant ocean of YDKJS book, for me personally YDKJS requires a lot more patience. Also any reader here can check my previous posts which explains the preparation for front-end itnerviews.

Let me also mention all the YouTube channel which played a vital role in my learnings:

0) FreeCodeCamp's youtube channel is the surface to mine
1) Net Ninja
2) Academind
3) Traversy Media
4) Ben Awad (focuses more on react-native)
5) Akshay Saini (complete overviews of how to give a front-end interviews covers all the topics)
6) TechSith (while I'm always in dilemma if I like his content or not it surely helps in interivews
7)this particular event loop video by Philip Roberts is like a Geeta, Quran, Bible to understand it

If you go to react.js side,

  • github.com/markerikson/react-redux... this github link is not updated I guess but it surely has tons of things to make projects from
  • Reactiflux discord channel
  • reddit's /r/webdev's discord channel
  • speakJS discord channel

For interview preparation

I'm sure this would help, do share what other stuff that helped you learn, understand the concepts well and made you able to present really well in interviews

EDIT: The growing channels on YouTube,

  • Unsure Programmer (mostly react-native)
  • Harry Wolf (real funny guy always talks explaining the core of the latest proposed features of ES 6, 7, 8, 9)
  • Code Drip
  • Code Artistry
  • code_drip (if you are a competitive programming enthusiast)
  • codedamn
  • Codevolution (their recent playlist of react hooks has a set a standard level)
  • Dev Ed
  • Fun Fun Function (this channel has been out there since so long and the creators has now abandoned it because of some busy schedule and focus on their personal channels I guess)
  • JavaScript mastery (projects with reactjs)
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
 
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
 
brianfernandes profile image
Brian Fernandes

Great article and compilation, +1 for the MDN reference, been using it for a decade, I think.

As far as development environments are concerned, I know Eclipse isn't the first IDE anyone thinks of when it comes to JavaScript, but it's a great IDE for Java Enterprise, Spring, PHP, etc. Combined with the CodeMix ($) plugin, you get access to VSCode's JavaScript capabilities in Eclipse, which are far better than what Eclipse gives you out of the box.

CodeMix also makes it possible to work with modern frameworks like Angular, Vue, React, etc., with first class support for these frameworks in Eclipse.

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
 
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
 
conw_y profile image
Jonathan • Edited

Thanks very much, Emma, for this brilliant guide! These look like excellent resources. I've started reading a few of them already, and intend to read more.

I do have a question about degrees, in case you have time to answer.

While I've gotten pretty far from self-education, mentorship and on-the-job experience, I've spotted definite gaps in my knowledge. These gaps always seem to be on either the theoretical or the lower-level side of things – areas such as memory allocation, concurrency and algorithms.

The gaps don't prevent me from doing a great job at what I'm hired for, but I wonder if my career path should, at some point, include thoroughly filling in the gaps.

What's your take on experienced front end developers without a degree going back to study a traditional 3 or 4 year bachelor in computer science or similar?

On the one hand, it seems that degrees are considered expensive, overvalued, deprecated knowledge and overly time-consuming.

On the other hand, I read quotes like this (from the Front End Developer Handbook 2008:

Front-End Engineer
The job title given to a developer who comes from a computer science, engineering, background and is using these skills to work with front-end technologies. This role typically requires a computer science degree and years of software development experience.

(bolding mine)

This seems to imply (at least to me) that career progression, at least in some areas, requires a computer science degree.

What are you thoughts on this?

Collapse
 
emmabostian profile image
Emma Bostian ✨

It definitely DOES NOT require a CS degree :)

Collapse
 
garador profile image
Garador

I love this resource list. It's on point, and the fact you mentioned "You don't know JS" it's amazing.
One thing I'd like to add is that, as a personal trick, one of the cool ways to learn it is trough the Chrome/Firefox console (just open up and run it, mostly anywhere, with or without internet). It's one of the coolest things, and often I'd use it to count words / lists / etc. On job sites and the likes. It's really cool way to implement too.

Once again, thanks for this post! I'll be adding it to my bookmarks.

Collapse
 
dirkncl profile image
Dirk Levinus Nicolaas

Very good and helpful advice, but for the Editor, I would suggest Notepad ++ as well as with Chrome Developer Tools.
IDEs only if we will make a large program on an order or we really work as a software developer.
With the IDE, the syntax repair process is automatically carried out and the library addition process will be fulfilled without us knowing why that is.
Other by using Notepad ++, all the creation process is done manually and if there is a deadlock, we will try to find a reference guide and what is often done is to MDN or Stack Overflow and others like you mentioned above and it is very exciting for us as a hobby.

Collapse
 
saqibramzan profile image
Saqibramzan

Great Job........ Keep it up. The way of displaying the content inspire me a lot. Mostly, i keep on visiting the new sites, but this site really looking me a great platform.

Shout out from:Saqib Ramzan
My Latest Blogs:
How to open a coconut?
How to soften brown sugar

Collapse
 
cyberpriest profile image
cyberpriest

I don't like JavaScript but I only love its frameworks like vue.js jeez I'm dead so I have to learn JavaScript first but pls I have basic understanding on jquery pls what about that??? (and even vue I'm catching up little by little )

Collapse
 
inshalayaz profile image
Inshal Ayaz

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

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
 
rhymes profile image
rhymes • Edited

Thanks Emma, solid content as always!

ES6 Katas was really helpful to me

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
 
goyalshubham13 profile image
Shubham

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

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
 
violetboralee profile image
Violet.Lee

Could I translate your post into Korean? It's a good guide for the beginner :)

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
 
kellalves profile image
Kell Alves

Great Article! Thank you so much, i have been struggling learning JS, these'll certainly help.

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

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
 
rifaimartin profile image
Rifai Martin

Thanks Emma, Nice Post :D

Collapse
 
angularian profile image
Ian Smith • Edited

Surprised you left Udemy (individual courses at 10$ a throw when sales are on - which seems to be almost permanently) off the list.

Also worth mentioning UltimateCourses.com, not least because their excellent, thorough and completely up to date 7 hour+ “JavaScript Basics” course is currently free.

Collapse
 
hamzak444 profile image
Hamza Khan

You told a lot of information in this post. Thanks Emma

Collapse
 
warengonzaga profile image
Waren Gonzaga

Another way to learn Javascript is by going on FREECODECAMP and finish all the challenges there. You should add this site too!

Collapse
 
jnewb profile image
jnewb

Thanks Emma good stuff. I will go through each of these. Thanks!

Collapse
 
ewusiessel profile image
Ebenezer Ewusi-Essel

👏🏾👏🏾👏🏾

Collapse
 
afewminutesofcode profile image
Aaron

Thanks for taking the time to compile this amazing list Emma, this is a great resource for everyone from beginner to expert!

Collapse
 
bebezi profile image
Bebe Zi

This was super helpful! I have just been learning JS for about a week or so and its overwhelming right now. But this will help me alot !

Collapse
 
darkmyj profile image
DarkMYJ

Thanks for the tips,

I was looking for way to learn java script, and then i found this...

Collapse
 
cyprian_dev profile image
Cyprian

Thanks ma'am

Collapse
 
yedukondalu319 profile image
yedukondalu

How to learn JavaScript quickly?
simpliv.wordpress.com/2019/07/24/h...

Collapse
 
kambleaa007 profile image
Ashish Kamble

Thanks

Collapse
 
pmrapstar profile image
Piyush Mehta

this one is a great article
if you are interested in DU.LLB
PLEASE VISIT-
tutorguideinindia.com/top-10-du-ll...

Collapse
 
vikasbisht profile image
Vikas Bisht

Great post. Loved your article. We also have a education website:- Best AILET Coaching in Delhi

Collapse
 
vikasbisht profile image
Vikas Bisht

Great post.
Visit our website:- tutorguideinindia.com/top-10-ailet...

Collapse
 
5hraddha profile image
Shraddha

Thanks alot Emma..!! This was very helpful..