Follow

Follow
What do you need to know to become proficient in JavaScript?

What do you need to know to become proficient in JavaScript?

JavaScript is vast and omnipresent. Learn how and what to pick up to become proficient with the language.

Tapas Adhikary's photo
Tapas Adhikary
ยทMar 22, 2023ยท

9 min read

Play this article

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.

  1. String

  2. Number

  3. Bigint

  4. Boolean

  5. Undefined

  6. Null

  7. Symbol

  8. 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.

Did you find this article valuable?

Support Tapas Adhikary by becoming a sponsor. Any amount is appreciated!

See recent sponsors |ย Learn more about Hashnode Sponsors