"I thought that I could just read a book and know how to program."
I felt the same way when I first started with Django. I had been using Python for about 2 years and I assumed I could read a book and pick it up overnight. How naive I was! That was ~3 years ago and I noticed just this past year I've been diving into the Django source to see how certain things are implemented, like different decorators and middleware, so I could _properly_ write my own. I'm constantly learning how to make Django do what I want in the most efficient and pragmatic way. Programming is absolutely a craft that takes time to understand and master. The exact same can be said for the tools and frameworks we use.