Hello HackerNews. I've been trying to learn Django for about a half a year now. After completing many tutorials I find myself struggling to build projects that deviate from said tutorials. Any suggestions?
Deviate, identify what is the problem, solve that problem, repeat. When you can describe a very specific problem, stackoverflow is great. Otherwise, IRC or some django-specific community may be a better place. If you think you're struggling, break down the issue into small bits: what are you trying to achieve, what have you tried, what's the smallest bit of progress you can make right now / what's the immediate issue that's stopping you.<p>You'll always find new problems if you try new things. That's learning, not struggling. :-) (worth repeating to get a more positive outlook)
It might be worthwhile to use a library like Flask which has less batteries included. This will force you to figure out which pieces of the puzzle you are missing and will (hopefully) allow you to learn a lot through exploration.<p>Once you understand what everything is doing, going back to Django, you should understand what all of the components are doing.<p>Django & Flask are not exactly one-to-one with the way they handle a lot of things, but I think it would still be a useful exercise.
Before learning Django, did you already understand the fundamentals of the web, relational databases, and basic programming?<p>Django abstracts away the tedious aspects of the use of SQL databases, form validation, HTTP requests and responses, and the like. It does not absolve you from understanding the underlying structures.
Try to understand why things are done the way they are and what is actually happening instead of just following the tutorial systematically. If you have some knowledge gap, say in basic HTTP or data modeling concepts, make sure you read about those as well. This will strengthen your understanding of the framework.
Also, if this is your first time with Python, I highly recommend learning Python before learning the framework. This applies to any language out there.