JavaScript is everywhere! It's the web browser's language and helps you create web, mobile, and desktop applications. Today, JavaScript is not limited to the client side alone; it is equally popular as the base of server-side frameworks like Node.js and Deno. If you are considering picking up and mastering a programming language, JavaScript is a safe bet.
Recently I have focused on chalking out a path about how to learn JavaScript effectively
using a learning model
. Please check it out in the video below. I believe that it will help you to learn the language faster.
Don't forget to SUBSCRIBE for future content.
The video above talks about how
learning JavaScript effectively, and in this article, we will focus on the what part
. We will go over the topics that you must consider putting on your plate when you plan to learn JavaScript.
We will also get introduced to a community-driven JavaScript Roadmap Guide
that you can make use of in learning the language and also can contribute to. We will mention the chapters from the guide occasionally, but if you are interested, please feel free to check out the entire guide early.
It is NOT a Paid or Promotional Article.
I've been working with a few awesome folks from the developer community to build a JavaScript Roadmap Guide that is easy to consume and complete. This article aims to spread awareness of it. We want your feedback to make it better. So please check it out.
If you are a JavaScript developer or content creator, you can also join us to make this guide even better. Please reach out to me on Twitter or LinkedIn with a DM.
Alright, let's get started 🚀
The Basics & Syntaxes
To get started, you need to focus on the basics of programming. These are common across most programming languages. So focus on knowing,
What is a variable?
What are values?
What are types(or data types)?
How to work with variables to create output and expressions?
What are operators? How to use them?
What are conditional statements?
What are loops?
What is a function?
After you gain knowledge of the above programming concepts, you should consider learning the core concepts of JavaScript and how it works under the hood. Start focusing on these topics:
Lexical Environment
Execution Context
Hoisting
Scope and Scope Chain
this
keyword
Now, you should expand your horizon in understanding how the common programming concepts are considered in JavaScript and what it offers. For example, when you learn about data types
in JavaScript, you will learn that JavaScript has 8 Datatypes: seven primitives and objects.
String
Number
Bigint
Boolean
Undefined
Null
Symbol
Object
Also, the object data type can contain the following:
An object
An array
A date
Now start learning these and keep practising! Alright, how about the syntaxes
? Don't we have to memorize them? The syntaxes are the rules and grammar of the language. You get to know them but don't have to memorize them.
Now as you know how to connect the common programming concepts to the specifics of JavaScript, you should do the same for other concepts like operators
, conditions
, loops
etc.
At the beginning of this article, I was talking about a Community Driven
JavaScript guide. Let me start introducing its chapters as we proceed. Check out the "JavaScript Basics and Syntaxes" chapter to learn all the concepts we have learned in this section.
Functions
Function
, a fundamental concept, is a first-class citizen in JavaScript. You will hardly write any code without functions while building JavaScript applications. After you get introduced to the fundamentals of JavaScript functions, focus on these topics:
Parameters and Arguments
Call Stack
Functional Execution Context
Function Scope and Scope Chain
Closures
IIFE
Arrow Functions and how does
this
keyword works with it?What's Pure function, and what are Side Effects?
What's a Callback function?
What are Higher-Order functions in JavaScript?
What is Recursion?
What are Generator Functions?
The community-driven JavaScript guide has a chapter discussing all these concepts in-depth. Give it a try. Again, if you want to enhance any part of it, you are most welcome!
Data Structures
In many of my 1-1s and DMs, I get a frequently asked question,
Do I need to learn Data Structure to build a JavaScript app? How much?
I usually counter questions by asking, Have you seen any application without data? Won't it be a blank application? So if you have to deal with data, you must know how to structure the data based on your application's use case. Hence you have to learn Data Structure!
JavaScript is no exception. It provides a bunch of data structures out of the box. You should follow this sequence to understand them better:
JSON
JavaScript Objects
JavaScript Arrays
Map
Set
WeakMap
WeakSet
Array-Like
These data structuring mechanisms solve unique use cases. So when learning about them, relate them with their use cases and write code to practice. Here is one of the chapters of the JavaScript Data Structure from the guide.
Exception and Error Handling
Error and Exceptions in a programming language are mechanisms to report something unexpected that happened when the program runs. JavaScript provides a way to report(throw) an exception that we can catch and do whatever we want. It also gives us a special Error
object for reporting an error using type, message, and stack trace.
Focus on,
What is an exception?
What is an error?
try-catch-finally
The Error object
Re-throwing an exception
Check out the Exception handling chapter from here:
Object Oriented Programming
Object-oriented programming(OOP) is a programming paradigm that uses objects and their interactions for designing applications. Before you start with OOP in JavaScript, get yourself familiar with OOP concepts like,
Encapsulation
Inheritance
Polymorphism
Abstraction
Classes
Message Passing
After this, learn the followings:
What is Prototype?
Object-oriented programming vs Prototype-based programming
What is
__proto
?What are classes in JavaScript?
Finally, relate some real-life examples with OOP and build projects.
OOP and Functional Programming are important concepts to master, and JavaScript has wider support. Check out this OOP chapter from the guide:
Handling Events
JavaScript brings dynamic behaviour into your application using events. Events are occurrences based on user actions like clicking on a button, typing in a textbox, selecting an item in the menu, and so on.
First, understand what an event is in JavaScript.
What are Event Listeners?
How to act based on an Event?
How to prevent the default behaviour of an event?
What are Event propagation and bobbling?
DOM
JavaScript has APIs to interact with the browser's DOM(document object model). You can
Create elements in the DOM tree.
Add values to the element.
Add styles and attributes to the element.
Update the element in the DOM tree.
Remove elements from the DOM tree.
Traverse the DOM tree.
Many methods are available to interact with DOM and make the web page dynamic. Learning about DOM is essential when focusing on projects built with plain JavaScript. Modern frameworks and libraries are usually declarative, where they discourage you from dealing with the DOM directly.
Check out this chapter that covers the important DOM manipulation methods in JavaScript.
Asynchronous JavaScript and Promises
Ask a JavaScript developer about the most complicated JavaScript topic; the higher the chances that the response will be promises
. Promises are complex because we jump into them without understanding how JavaScript works under the hood.
You should start by understanding why JavaScript is synchronous.
What is Asynchronous in JavaScript?
Understand Event loop, task queue, job queue, and call stack with many examples.
Now is the time to get into Promises. Practice many examples with promises, like resolving, rejecting, and handling errors.
Next, get familiar with the async/await keywords
Learn about JavaScript promise APIs to handle async calls better way.
Practice as much as possible.
This chapter explains all the above, discussing the common mistakes we make in using promises and a repository full of interview questions on JavaScript promises.
JavaScript Modules
No one wants to work with the source code having just one big JavaScript file. The functionalities must be spread and grouped into modules. We should use those modules to export and import functionalities for better reusability.
Learn about JavaScript modules.
Learn about the module scope.
JavaScript import and export keywords.
What is Dynamic import?
Check out this chapter explaining several aspects of JavaScript modules:
That's Not All the Topics
We have covered the most essential JavaScript topics and what to focus on. But that's not all. There are some other topics you should be aware of as well:
JavaScript Meta Programming: Reflect and Proxy
JavaScript Generators and Async Generators
JavaScript Iterators
Debouncing and Throttling
Web APIs
Debugging
When coding, do you spend more time debugging than actually coding? If so, you are not alone! Debugging is the core part of development. You need to master how to debug JavaScript applications.
Debugging is a mix of art and science. The art part helps us get creative at debugging, finding strategies, and getting to the root cause of the issue. The science part is about the tooling.
All modern web browsers have developer tools to help us debug a web application. Also, the editors like VS Code and Webstorm have integrated debugging environments. Check out this article which explains the art of debugging, while the following article explains how to use tools to debug JavaScript applications:
Libraries and Frameworks
A plethora of libraries and frameworks are written monthly based on JavaScript. Many of them are extremely popular and used by many wide-ranging projects. It is good to know what some of these popular libraries offer, but before you start with any of them, ensure a good grip on JavaScript.
I've analysed recently and derived the top JavaScript libraries and frameworks you must watch out for. You may find it helpful.
Conclusion
A decade back, when I started learning JavaScript, it was relevant. Today, It is one of the top programming languages, and it will be a front-runner even in the future. To learn JavaScript, try adapting to the learning model we have discussed in the video at the beginning of this article.
I hope the breakdown of JavaScript topics helps you to follow a path to learn the language. Take a look at the resources mentioned in the article. Most importantly, practice as you read. No reading is enough without trying them out using code when taking a ride with JavaScript.
All the best!
THE FINAL WORDS
Here goes the link to the entire guide on JavaScript Roadmap. It's available for FREE.
Note: If you want to contribute to it by adding a chapter/article, you are most welcome to do that to help the community.
Before We End...
Thanks for reading it. I hope it was insightful and gave you the confidence to learn JavaScript. If you liked the article, please post likes and share it in your circles.
Let's connect. I share web development, Content Creation, Open Source, and career tips on these platforms.
Top comments (1)
Worth Reading. Thank You