I wanted to steam out of my system for a while. So here I go. As I’ve been talking to people about web development I noticed that lots of people are relying on frameworks to do their work. While there is nothing bad (nor good for that matter) in using a framework I think that it is important to know and understand the trade offs. Because there are.
And this is a really good thing. As, at the most basic level a framework helps you to be more productive by not reinventing the wheel.
However, every time you pick up a particular framework (or most likely a combination of frameworks when talking about front-end development for web) you limit yourself. And this is exactly where the things start to fall apart.
Why am I saying this? As you grow used to some particular frameworks when you start a new project or maybe you add something to an existing one you tend to make the problem you want to solve fit the frameworks you chose. This means that you started with a problem you have to solve and (in theory) an infinite number of methods to tackle that problem. Because you insert the frameworks in these equation, you tend to limit your self a priori to a limited number of solutions (those provided by the framework). And this is how you tend to change the initial problem you wanted to solve, in order to be able to fit the framework. And this is bad, obviously.
So what am I saying here? In a nutshell I advocate to spend at least the same time for polishing your HTML/JS/CSS skills as the one you spend learning and using frameworks. Because, remember, any framework introduces a new abstracting layer between you and the platform you are writing code for.
In practice, at least what I’ve seen is that most senior developers know how to find the balance between relying heavy on frameworks or writing their own libraries/frameworks perfectly suited for the project at hand. Junior developers tend to go all the way either for reinventing the wheel or using the same framework for everything.