Look, I don’t hate frameworks. I’m not as starry-eyed as some other developers, especially when it comes to back-end frameworks, but I don’t think there’s anything wrong with using tools that make you productive. On the contrary, I’m always trying to find tools that make me as productive as possible.
That said, I’m adamant that you should not start with frameworks when you’re learning back-end development. I’m not saying you shouldn’t use them at all, but I am saying that they are a poor tool for learning.
Frameworks are great at automating all that boring stuff like boilerplate code, authentication, and database migrations. Who wants to to invent the wheel over and over again? Not me.
Trouble is, when you’re just starting, those boring details are exactly the things you need to learn. They’re the building blocks of back-end applications, the foundations of what you need to know. And when you use a framework, you’re missing out on all that good stuff.
Like any good developer, I use a library and call sha256.Hash(text) when I need to hash some data. I don’t try to write my cryptography from scratch! That said, I’ve taken the time to learn and understand why sha256 is a good choice in a given scenario, and what security it provides me. Similarly, when you’re learning back-end development, frameworks are just too high-level to be a good starting point.