JavaScript fatigue has been on the rise for a while now. You often hear developers complain that the front-end world is moving too fast, there are too many frameworks to choose from and too many things to learn all at once. While I agree there is truth to that, I also know that continuous learning and improvement is an inevitable aspect of being a programmer. You either accept it or go stale.

This post is not about dealing with JavaScript fatigue. Instead, it assumes that you are ready for the challenge to keep up with the front-end world despite the risk of experiencing the so-called JavaScript fatigue. If you are, this post will introduce you to the best ways and resources of doing so.

But before we dive into the nitty-gritty, we have to remember that none of us were born with natural talent and just knew how to program perfectly the first time we used a computer. Some of us learn new programming concepts faster, some take it slower. But none of us can progress as professionals without putting deliberate effort into it. So take your time, find what works for you and experiment with the following ways to improve as a developer.

πŸ“š Consume curated content

One of the best ways to find out what's happening in the JavaScript world is to let others do the hard work and curate the content for you. As a result, you will only get the news that are worth your attention. Below are some of the recommended resources to follow.

Newsletters:

Podcasts

Social media

πŸ‘οΈ Find the learning style that fits you

It's great to continously learn, go to conferences, do tutorials and self-improve in whatever ways you can. But if you notice that one way of learning does not work for you, try others. The three primary modes of learning for developers are through blog posts, books and video courses. Experiment with each one of them, see which one works best for you and use it as much as possible.

Personally, I use all three learning resources. This is because each one of them focuses on different levels of depth in regards to specific topics. Blog posts tend to focus deeply on a very narrow topic in a trendy niche, or give a shallow overview of a wider topic. Courses tend to cover medium-sized topics in a somewhat comprehensive manner. Just like blog posts, most courses also tend to cover what's hot. And books often tend to focus on fundamental aspects of programming meaning that the things you learn in them tend to be more foundational in nature than the ones learnt from video courses and blog posts. Thus, I believe it's important to combine all of the resources to become a well-rounded programmer.

The best video based tutorials for JavaScript developers can be found on:

Some of the best places to learn from blog posts are:

And in regards to books, I just tend to look at Amazon reviews or recommendations from others and buy them whenever available.

πŸ”¬ Experiment recklessly

Sometimes it's a good idea to not only take the time to learn about shiny new libraries or frameworks but also explore existing ones deeper. My recommendation would be to experiment more with frameworks and libraries that you already use and push them to their limits. Try doing the same thing in a different way, create a performance benchmark, try doing some silly things, play around. This will force you to get to know your tools better and consequently become a better programmer. The key here is to not be afraid, the code will not bite you back.

πŸš€ Seek mentorship

While it's great to self-learn and find your own path, having a good mentor can expedite your progress ten-fold. Receiving mentorship just means that you will be getting valuable advice from someone more experienced than you instead of seeking advice online from random strangers which may or may not have your best interests in mind. All of the greatest achievers had mentors in one way or another. Why not have one as a programmer?

Finding a mentor may seem daunting but it doesn't have to be complicated. First, just try to improve on your own. Eventually, you will get better and meet like-minded individuals in conferences, meetups, online forums, etc. Some of them will be further along than you as programmers. All you have to do now is try to get to know them better, establish a relationship, see if you can help them in any way and only once in a while ask for advice on a specific topic where you want to improve. Finding a mentor is not easy but it's not complicated either.

While I haven't tried it yet, it's also certainly possible to try out paid solutions out there such as codementor. If you give it a try, let me know how it went 😊

☝️And remember that you certainly can grow as a programmer without a mentor, it's just easier with one.

🌎 Learn other languages

Sometimes learning is not just about getting to know the next "new thing". It's also about thinking in different ways outside of your normal thought patterns.

There is a saying that "when you are a hammer, everything looks like a nail". Similarly, when you are a JavaScript developer and all you know is JavaScript, all the code that you write will be somewhat constrained by the patterns that you have learnt as a JavaScript developer. However, if you are exposed to other languages, you may quickly discover new better ways to solve the existing problems that you have.

"The Pragmatic Programmer", legendary book about software development craft confirms the same:

Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.

πŸ’¬ Expose yourself to others

Whilst having a mentor is great for getting answers to questions that are specifically relevant to you, it's also important to expose yourself to others and get to know what and how they think, what problems they face and how they go about them. Just like learning new languages, meeting other developers will broaden your thinking and may further your career in unexpected ways. Some of the best places to meet other developers can be found below:

πŸ—οΈ Build stuff

It's widely agreed that some of the best learning in programming comes when you build stuff. While it's fine and dandy to consume tutorials, you will never know how well you understand the material until you apply it in your own work. So, the best strategy to use whilst learning is to have an end goal in mind. Then go learn from the best tutorials, books or courses you can find and try to apply it in your job or side-project as soon as possible. Building your own stuff forces you to deal with real problems rather than hypothetical ones which is what programming is all about.

🎀 Teach

Teaching is one of my favorite things to do as a programmer. It's a win-win situation for everyone involved. The students get to learn from someone more knowledgeable than them who practices what he/she teaches in real life situations. And the teacher gets to solidify his/her knowledge through teaching. As an added bonus, by teaching one also gets a chance to look at the concepts being taught from the fresh perspective of a student. This can be powerful by potentially providing an opportunity to re-think of things you already know in new ways. Some of the ways one can start teaching now:

  • Blog
  • Screencast
  • Give talks
  • Podcast
  • Answer on StackOverflow
  • Help people on Gitter/Slack

By the way, a lot of people shy away from teaching as they think they are not yet good enough to teach. However, it's most likely that there are people who are even less knowledgeable than you and would benefit from your knowledge and perspective about a given topic. It's like a hierarchy of knowledge. There is almost always one step below that you can teach to. So, don't be afraid to teach and just do it 🀜

πŸ‘ Contribute to open-source

One good way to be up-to-date with what's happening in the JavaScript world is by actually contributing to it. This way you will get exposed to other developers code and inevitably some of the ways they do things will rub off on you as well. Just like with mentorship, one can be just fine developer without it but you will be even greater if you do indeed do it.

πŸ€” Ask why

Sometimes you don’t need to just keep on keeping up. It’s also worthwhile to stop once in a while and ask yourself β€œwhy” on the things you already know i.e. why did I choose to use Redux Thunk? What problem does it solve for me? Why not use something else? This will force you to be conscious of your decisions and not just randomly follow recommendations that you read online.

πŸ“… Wait

Now once we covered all the ways to keep up in the JavaScript world, I will say one last word of caution. And that is the fact that you don’t have to keep up with everything! There, I said it. You can be a good developer just fine without knowing about every new framework and library out there.

One way to separate signal from the noise is to wait until a given technology has reached enough popularity and maturity to be worth having a look at. So it's fine to follow what is happening in the JavaScript world but only jump on the bandwagon once a certain technology has proved itself.

πŸ”₯ Summary

We have covered a lot of ways one can keep up in the JavaScript world. It can seem overwhelming. It almost seems overwhelming to me. The key is to choose what works for you and have regular intervals of time in which you deliberately focus on improving as a programmer. So, even if you don't contribute to open-source, perhaps you are active in online communities where you help others. For others this may not work but something else will. Don't be afraid to experiment and find the way to keep up-to-date and yet still keep sane. Good luck and let me know your own resources and strategies to keep up with all that is happening in the JavaScript world ✌️