No Winners in the Crazy Frameworks Race
This crazy race has no winner at all since it is neverending. That’s it! Yesterday you were learning Backbone.js, jQuery, Knockout.js, Ember.js, then AngularJS and now ReactJS, Next.js, Vue.js, all Angular flavors. Today, up comes Ext JS and Aurelia, the new ones. And tomorrow another will come up. The framework array list is endless.
So I Shouldn’t Learn a JS Framework?
No, no, I’m not saying that. Actually, you should learn them — but without wasting most of your precious time on them. By this I mean that time is limited and we should invest wisely in what really matters. I know there is an insistent temptation to learn the more modern tools, frameworks, libraries, some of them listed above. This is because all the world — your colleagues, the forums, platforms, communities you follow — are bragging about the new cool stuff they have and how easily you can accomplish your development goals. Have you experimented with that? I think more than one of you have had that temptation and have fallen down on. I understand why this happens. As developers, we need to stay up to date with the technology.
I should recognize that some years ago I got carried away by this temptation. Remember, the purpose of a framework is to give you a real speed-up to your development journey, to gain velocity. It’s in charge of complexity and abstract things, offering you a shortcut to speed up the process of coding, among things. But that doesn’t mean you’ll master and become a strong, knowledgeable JS developer. It means you’ll know what to do but not why or how things work under the hood.
I also know that, like everything in life, there will be detractors and lovers of my point of view. This piece is just a guide, a piece of advice. It’s based on my personal experience and a huge number of complaints I have seen in the programming discussion platforms on LinkedIn, Reddit, Dev.to, Medium, Facebook groups, etc.
I will touch upon just a few core concepts for the purpose of a good read. The rest of them I will just list so that you can keep them in mind. In my next pieces, we’re going to dig in to know what wraps each of them.
A closure is simply a function inside of another function that has the ability to remember its execution context. This concept is pretty tricky even for seasoned and experienced JS developers. I have been trying to grasp fully concepts around closure for a long time. It might look easy, but it’s not. Sometimes we’re not even aware that we’re in front of a closure. If you have a good understanding of closures, you can read and understand more complex code. For instance, you can dive into the source code of your favorite framework and start to understand its code.
And, of course, you should also be caught up on the latest ECMAScript specifications: ES6, ES7, ES8, ES9, ES10, ES.next …and beyond.
Where and How to Master Those Concepts
Apply the 80/20 rule in your learning process
As we have discussed before, new frameworks and libraries will come and then go away. That’s what we have been seeing in recent years. A good approach is to set up a good learning system if you want to catch up with the trends. It’s what’s called the 80/20 rule: Invest and focus 80% of your time learning core concepts, digging in more every single day. Then spend the remaining 20% investing in the hottest and coolest tool.
Instead of being worried about learning trends of JS frameworks/libraries, you should read the following resources. The most important thing about them is that some are free! So, no more excuses!
You are the master of JS
If you know how the engine works, how to predict how a function will behave in a given scenario, or how the scope works, I dare to say you’ll save time when things don’t work as expected. Also, you’ll have greater odds of creating better and higher code quality.
Thanks for reading!
About the author
Graduated from Computer Science Engineering from Universidad Gerardo Barrios. Roberto has over 6 years of experience in Web Development. He’s currently a Frontend Developer at Applaudo Studios.