I look at this in 2 ways. One is "Learning how something really works and understanding the core" and the other is "Creating production ready applications with a tested abstract magical tool". Frameworks are great to create production ready apps in no time even for a novice. But on the other hand, they have too much magic at times. Take for example, this code in Python/Django: user = User.objects.create_user('name',…
The presumption here is that everyone wants to be a great developer; this mostly isn't true, most developers simply want to complete a task and care only about how quickly they can do it.