Learning JavaScript Effectively and Efficiently

We create open-source because we love it, and we share our finding so everyone else can benefit as well.


Learning JavaScript Effectively and Efficiently

JavaScript is an awesome language, but there is and overwhelming amount of topics when you first start, so some important fundamentals can be easily overlooked. Here we’ll go over what you need for learning JavaScript effectively and efficiently, and where you can go do so, and not get lost in the process.

Where to Start Learning JavaScript

Learning JavaScript itself is pretty straight-forward, but if you are creating anything major, you aren’t using it by itself. It’s when you get into frameworks, and libraries that you notice your knowledge may not be up to par, and that’s going to happen if you learn something new, and robust. Node.js is a large example of one of those awesome frameworks. It was one of those I personally took a break from React.js to learn more about. Why? It intrigued me quite a bit, and I wanted to start creating a custom server-side for my React/Redux applications. The more I learned about Node.js, the more I enjoyed it. Unfortunately I continued to run into new road blocks, as well as hours of frustration; the more I used it, the more I realized I didn’t know what I needed to know what was going on.

As I started to back-track, and learn more about JavaScript theory, practices, and other fundamental. The more I learned, the more I started to remember about old concepts I learned with C++. You can end up spending the first 3-4 weeks learning the basics: variables, arrays, objects, statements, expressions, loops, and functions. If you are lucky, the learning references you use to learn, will teach the terminology to go with it, and you can then start learning about paradigms, patterns, and flow control.

Different Communities for Learning JavaScript

So to get started, I always want to point out Team Treehouse, who gave me a great foundation to build upon when learning JavaScript. I also want to mention that it seems to be the only subscription service site that offers a monthly option, as well as offer a well-produced structured learning path. The only down-fall was the lack of the fine details. For instance, when you’re ready to dive into paradigms, patterns, and flow control, you’ll find a lot of content to support it. To make it easy, they offer a Full-Stack JavaScript learning path which will guide you through the requirements. If you want to learn other languages or platforms, Treehouse is the perfect place to learn a lot of languages and different web-based platforms, especially with its built-in workspaces, where you write your related projects while watching videos.

If Team Treehouse is outside of your budget, FreeCodeCamp is a great alternative to focus on different areas of JavaScript. FreeCodeCamp also offers internship opportunities working with volunteer projects. Overall it’s a great place to learn, as well as get hands-on-experience.

Where to Learn Design Patterns, Paradigms, and Flow Control Structures

When it comes to the more intermediate topics, books are often your best bet. You can find many different options on Safari Online, as well as Amazon Prime (many free for Prime Unlimited). Moving into paradigms, I recommend Functional Programming in JavaScript by Luis Atencio, and The Magical World of Functional Programming: Part I & II by K Anand Kumar. To take it even farther, or to even replace some of those books, MIT’s Structure and Interpretation of Computer Programs (SICP) will do exactly this.

For the patterns portion you can learn many places, but two books have worked well for me: The open-source book JavaScript Design Patterns by Addy Osmani, and Node.js Design Patterns by Mario Casciaro. If you ever work with Node.js, you will definitely want that 2nd one.

Design Patterns will certainly help with JS Flow Control, but it has been a topic that gets little attention. I found an awesome online Node.js book by Mikito Takada (Mixu), written back in 2012 called Mixu’s Node Book. Even though it was written some time ago, but since JS syntax has stayed the same, it is still relevant to this day. Sure, you can use async/await or another library to simulate blocking, but this way you understand how to do it on your own with manual Flow Control.

Next Steps in Learning Programming – Putting It All Together

Lastly I want to stress the importance of applied knowledge, that I think is absolutely awesome for learning various JS-related topics. This resource is the Node School project. The topics covered will surely pique some interest, but you won’t understand how awesome it is until you go through your first workshops, and run through npm. Hands-on is where you will learn the most, and the workshops allow you to do this.

Along with the time you spend practicing what you have learned, you also want to experiment, ask lots of questions, and then find answers. When you’re comfortable, start reading the source for various projects you use in your apps. While it will be daunting at first, you will find yourself learning a lot quicker when seeing what others write, and the practices they use in their applications. Either way, it’s a great habit to get into, you will not only have an easy time troubleshooting, but also give yourself the ability to contribute to your favorite projects in the future.

No Comments

Add your comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.