However, I did not get into Django to learn how to program (or to learn how to program with Python). Rather, I got into Django after I already had experience programming in Python and several other languages. Consequently, I didn't have to learn how to think like a programmer (or how to translate my thoughts into Python), rather I had to learn how to use Django to make building web apps easier.
Forgive me if this is unpopular, but I actually agree with this comment. I don't think Django is great for beginning programmers. However, I think that any sort of abstraction is bad for beginning programmers. In fact, I would go so far as to argue that beginning programmers should arm themselves with a very basic text editor, a list of assignments, and some source code written by extremely good programmers.
Tracy Osborn's story about how she learned Django and built her first web-app is great too:
http://www.women2.org/from-web-designer-to-django-webapp-dev...
0> Set up the DB
1> Describe a model
2> Write a view function
3> Write a template
4> Set up a URL conf
How is this more difficult than or different to other web frameworks, and what do you consider 'insane' about it?I'm not noing to list alternatives because that starts flamewars, but there are many smaller frameworks that don't have such a large learning curve.
I'm also not saying that Django is a bad framework-- i even launched my first commercial web app with it-- just that it's not optimal for beginning programmers.
Python is dead easy to teach and Django is dead easy to apply for newbies.
Wait, you're kidding right? Django is positively horrible for beginning programmers because it's a gigantic framework with an insane learning curve, and if you haven't done much/any webdev before it's almost impossible to learn.
Sure, you and i can pick it up in a weekend, but i don't think it's even in the realm of decent for beginning programmers.