A faster way to learn new languages
Tags: beginners, javascript, career, learning
Published: 2024-04-25 23:08:53

This post is not about tutorials, books, videos, solving random code challenges, learning paths, or roadmaps. It's about a strategy. Stay with me as I show you.

## Let's get into it!

Firstly, solve some common data structure problems with it. implement some data structures like arrays, linked lists, stacks, queues, etc. You can check common problems on [LeetCode](https://leetcode.com/), [Hackerank](https://hackerrank.com/) or some other resources.

Then, go into the popularly known key/difficult concepts of the language. In JavaScript, such concepts include scopes & closures, callbacks, destructuring, rest & spread, higher-order functions (the trio of map, reduce, filter), regular expressions, error handling, objects, prototypes, classes, etc. Find common problems within the domain of those concepts and attempt to solve them. You can read about them in [MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript), in some articles online, on Wikipedia or in books. You may also explanatory videos on YouTube or elsewhere.

Do I understand these concepts? Yes. Can I read and understand JavaScript & [ES6](https://www.freecodecamp.org/news/write-less-do-more-with-javascript-es6-5fd4a8e50ee2/)? Yes. Have I mastered them? No, that comes with frequent writing of the language.

However, I'm comfortable with them enough to advance into server programming or browser technology with JavaScript, which are advanced concepts.

## One thing I didn’t much spend time on

Asynchronous programming is one of the key JS concepts but I didn't spend much time on it as I believed my understanding of asynchronous programming from Python & C# would carry into my JavaScript usage. Also, I already learnt and understood functions, closures, callbacks, promises & error handling. I can learn generators and other async concepts as I use the language more. Therefore, with more frequent coding in the language, I won’t have much trouble doing async programming. 


## How long?

It took me 4 days approx to get here. I used the language years back but didn't have a strong foundation in it then unlike now that I'm picking it up again. I knew just barely enough to do side projects with Vue.js since I had always been more focused on the backend with Python. 

**Note:** I have a strong Python foundation and years of experience using Python professionally. Along the line, I've had to use other languages too and learned core computer science concepts like data structures and algorithms. 


## What’s next?

I can either go the **Node.js** way as I’m biased towards the B.E or **React.js** before which I have to learn JS browser & DOM operations. Either way, I will build some projects and maybe write about them too.

### Thanks
Thanks for reading up to this point. I hope you find this post nice and insightful. I'll share more about other developer hacks I have found useful in upcoming posts. So, watch out!

If you'd like to share the strategies you have used too in the comment section so I can learn from you. You can find me on [Twitter](https://twitter.com/entusiaz). 

_Cover photo by <a href="https://unsplash.com/@disruptxn?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Desola Lanre-Ologun</a> on <a href="https://unsplash.com/photos/man-in-grey-shirt-using-grey-laptop-computer-7d4LREDSPyQ?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash">Unsplash</a>_