Instead, try to find something completable which requires the skill you want to get better with. Build something, even if it's mostly frivolous. You need a destination, a path from here to there, and the ability to measure progress along the path.
I guess my problem is exacerbated by two things: 1) the field of web development is huge, and becoming proficient in it requires knowing a little about databases, a back-end framework, front-end development (JS, jQuery, HTML,CSS), and eventually some devops stuff for when I move off Heroku; and 2) Django itself is fairly complex (i.e. takes a while to get running at full speed).
I try to approach this systematically, with my goal right now of groking Django/the back-end before moving on to learning front-end development and exploring databases (SQL, NoSQL) and devops. HN has definitely given me a good idea of where to start, but it's still a daunting task.
My eventual goal is to write mobile/web applications with a back-end. I want to learn all this because I have a long list of all kinds of ideas for services/apps I want to write.
Initially, I was motivated by the idea that learning certain technologies could make me valuable to employers in many industries and regions. Having previously studied business and foreign languages, it took my breath away to search for tech jobs and find hundreds of job openings across multiple continents.
I guess it can be summed up as motivation by a lingering fear of failure with a desire for freedom thrown into the mix. Classes can help, but if you hate what you are learning, why not find something equally valuable that you love?
Do you want to work with the Web, with distributed systems, with software, or none of the above?
Once you narrow it down, it becomes easier to prioritize and pick your tools accordingly. I learned this the hard way, as I aimlessly spent a summer trying to learn Ruby, Python, and Java all at the same time, just so I could say I "knew" them.
It hurt my brain and my motivation suffered.