There are many posts about getting to learn programming. And, of course, all starts with the simple instructions: + , –, % … Then things get somehow more complicated learning modular programming ( or functional, if you do not use global variables …)
After this, you start learning about classes and instances ( Plato is the master here) and overriding and deriving … And maybe some Design Patterns( please, do not talk about Singleton…)
Maybe you learn a bit about Sql( Tables and Views and StoredProcedures) and NoSql …
And after that, you have the basics to write code in any kind of language . But, when you want to start a new application
- How you start it ?
- What are the deliverables ?
- How to make the Graphical User Interface ?
- How to make components ?
- and so on …
That’s what a framework brings to the table: a clear way / path to do applications. In my case I am talking about .NET Core / C# n(Console applications, Web Applications, Forms application ) . Also, you may want to separate Front End from Backend – Angular or Vue or … could help with that ( and .NET remains just an WebAPI layer) . A framyework ( or 2 – Front End and BackEnd) will teach you how to make possible an application without hassle.
Yes, it is true that the framework is constraining a lot- you do things the framework way, not your way . So what ? You want to get your first application done. The framework is showing you the path – you can walk under it. And you know that, if you do not walk the path, then “hic sunt leones” . You know also that the framework protect you from the problems.
So my advice to young programmers: Learn a framework . Then you could do your first application. And the second. Then you could you start questioning some of the decision of the framework that might not suit your application.