Hi Robin
Not sure I can address all your issues, so I will just pick up on a
few...
One thing from the start -> " If I'm going to spend any amount of time
with this web development thing, I want to do it right." You will -
eventually. Its often really hard to do it right first time because
you do not have enough experience to know if you're making a mistake!
Getting going, doing stuff and maybe putting out in public the parts
you are most concerned/unsure about is the best way to get the
experience...
"struggling with Python"
I cannot say that its essential to know Python in depth before
starting web programming, but I would say it would be a huge help.
Its not clear what programming experience you have. If none, then its
worth starting with the basics of programming. If you have some, then
try and find a comparison between the language you used and Python
(pref. written by a Python person).
Some useful "getting started" tutorials:
*
http://docs.activestate.com/activepython/2.5/easytut/index.html
*
http://www.gidnetwork.com/b-26.html
After reading and trying out what someone else has done, try and build
stand-alone stuff in Python. A simple use case is accessing and
processing Excel spreadsheets using xlwt and xlrd. If you ever have
to do any data processing for third-parties, you're almost bound to
use/re-use what you have done here. Otherwise think of a common need
from the area you work in.
"struggling with Django"
Django is meant to be comprehensive. That's good if you want to be
able to do anything, but bad if you're just getting started. If I
showed my old self from 2 years ago the code that I have written
today, I'd be overwhelmed, no doubt. Learning programming is
incremental and experiential. You learn code by writing; and improve
code by writing more. Remember (and this is easy to forget!!) that
the entire source code of Django is open to you... take some time and
read some of it - Python is designed to be a readable language. If
its too overwhelming, then try and look at the code of some of the
apps that are out there (and there are lots!). You'll see an entire
"module" and start to get some idea of how it all hangs together.
Then try it yourself; maybe start with something already there and
make changes to it until it breaks - try and figure out why - fix it -
and keep going. Use the same basic concepts to try and build
something new-ish yourself from scratch. As you go along and get
really stuck, post questions to the list (and please check first in
the archives - many people experience similar problems).
Q&A
Q: How much do you use built in Django functionality?
A: All the time!
Q: Are there components you tend to avoid?
A: None that come to mind; but I just use the ones I really need
("learn as you go").
Q: Do you use Django only for certain types of projects?
A: Its my primary web development framework; in my situation there is
no need to use multiple ones (and probably not a good idea when you're
just starting)
Q: Do you struggle with Python or Django?
A: Often - but that is when I *know* that I am learning
Q: Is the source code a good place to spend some time?
A: See above.
Q: Is your authentication system home-grown?
A: Nope; using 'auth' works for me
Q: Have you been bitten in the behind by using too much Django?
A: Not so far...
Q: I sure wish there was a book that kept pace with the changes and
the most recent version. Is the fact that there isn't much available
a bad sign?
A: Depends if you think the publishing industry is keeping up with the
web programming industry ;) I think you'll have to get one of the
committers to answer that; but to be honest I would rather they fixed
bugs and added features than wrote books (my 2c). In the meantime,
the online docs are readable, comprehensive and up-to-date. Django
has one of the most well-documented codebase of any open source
project.
Hope some of this helps - welcome to the community!
Derek
P.S. "Do I have to concern myself with the test cookie idea? I have
no idea what this is... please enlighten me!