loading...
Cover image for Keeping up in the JavaScript world πŸƒβ€

Keeping up in the JavaScript world πŸƒβ€

superkarolis profile image Karolis Ramanauskas Originally published at karolisram.com on ・8 min read

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 ✌️

Discussion

pic
Editor guide
Collapse
juanfrank77 profile image
Juan F Gonzalez

Awesome post full of great info!
Challenge accepted on keeping up with all the things with a 'js' suffix.
It seems to me like all these open source projects in the JavaScript world are on some kind of race with the projects and ICO's of the Blockchain world haha

Collapse
shoupn profile image
Nick Shoup

Agreed! I really think that developers ought to focus on spending a time of at least 4-6 weeks learning a new topic before jumping into something else as well. I know it can become really easy to jump from one framework to the next, and as you said get 'Javascript Fatigue'. Most importantly I think that many new developers fail to understand the basics of their language of choice and then jump right into a framework. This quickly leads to frustration and getting bogged down. Awesome read!

Collapse
theodesp profile image
Theofanis Despoudis

Investing time and effort always pays off. But it's also important to invest wisely.

Collapse
shoupn profile image
Nick Shoup

Yes, it's like the Chinese proverb about placing your feet in 2 boats. You tend to go nowhere.

Collapse
oathkeeper profile image
Divyesh Parmar

This is so awesome to many degrees. I have started with React.js now after going through Node.js/Express.js and many other libraries in there. And now I have started hearing about Web Assembly so it got me a little afraid that Javascript might die, but yeah this is an awesome way to keep with it. Is it true though, that Web Assembly would kill all others, Lol! :D

Collapse
ekimkael profile image
Ekim Kael

We're on the same gang!!

Collapse
ekimkael profile image
Ekim Kael

personally I also begin to feel the fatigue of Javascript.
My biggest difficulty is finding someone to talk to/exchange with, it's something I'd love to do, I have lots of ideas in my head, lots of side projects.
When it comes to learning a new thing, I ask myself the following questions:
1 - What is it?
2 - Why?
3 - how does it work?
4 - When to use it

because even if you like a tool, you should know which situations are suitable for its use.

Thanks for your post. It's very interesting.

Collapse
ben profile image
Ben Halpern

Super thorough. I can imagine this being remarkably helpful for a lot of JS devs at a crossroads.

Collapse
wolfhoundjesse profile image
Jesse M. Holmes

Thank you for doing all of this hard work for me! πŸ˜‰

Collapse
thobyv profile image
Thoby V ijishakin

Learnt a lot reading this, thank you!

Collapse
dandevri profile image
Danny de Vries

Great detailed read. Finding the right balance between consuming resources and actually experimenting (as you mentioned in the post) is the thing I struggle with the most.

Collapse
georgeoffley profile image
George Offley

For myself (non-javascript developer) I just know the basic syntax and google the rest. I only use it when doing random front-end stuff on our company site, or with our digital signs.