3 ms·
Feedback from a 4 month newbie: I've read several chapters. Overall the book is great but I have some specific suggestions, which I'll wrap in the context of wh
by FilterJoe 14y ago
Feedback from a 4 month newbie: I've read several chapters. Overall the book is great but I have some specific suggestions, which I'll wrap in the context of what my biggest barriers to learning Django and web development have been.
Background: I starting learning web development with Django 4 months ago. I knew nothing but procedural programming (from late 80s) and a little CSS (Wordpress) before starting. I did Learn Python the Hard Way for a week then dove in.
Barriers to learning Django and Web dev:
1) Setting up the development and production environments has taken up at least 1/3 of my last 4 months of learning. This book would have helped with that significantly.
Suggestion 1: It would help even more if, in addition to your sample setup on github, there was a virtual machine or Vagrant file intended for beginners to get up and running quickly.
I've developed a VMware VM for myself along these lines (based on bitnami's Django stack on top of Ubuntu 12.04) and will use your book to improve it - especially changing my project layout template.
Suggestions 2: Answer a specific question the book didn't address: Is a virtual machine (one per project) a fine alternative to using virtualenv? If not, why not?
2) Django docs do a great job telling me what each command does, but rarely which of many alternatives is best to use (and why), and how best to structure projects. So I end up doing hours of searching each week (Google, Stack Overflow). This is where Two Scoops really nails it - would have shaved at least 2 weeks off my 4 months learning time. [can use this as a direct quote on your site, if you like]
Suggestion 3: Chapter 4 talks about keeping apps small and loosely coupled but not how to bind multiple reusable apps together, especially ones where tight coupling seems natural. I know there are techniques for this but I don't know which is best.
Suggestion 4: Chapter 6 briefly discusses when to drop down to SQL. Would love to see this expanded to several pages, with perhaps a long list of common situations where it does make sense to drop down to SQL. Either that, or a link to an excellent external resource.
3) Django is a tour de force in OOP. If you're weak on OOP, the tutorial and most other parts of Django is tough going. Practice and learning how to use my IDE (PyCharm) to navigate code eventually got me over this hurdle. This is not something addressed by your book, which is fine.
Suggestion 5: In Before You Begin section, perhaps add a single sentence that urges beginners to learn Python and (importantly) OOP before starting the Django tutorial.
4) No Django doc clearly explains the basic concept of web pages with no state, but context passed around to keep track of things. I still don't 100% understand why there are so many different ways of dealing with context, and which Django commands are best for given situations. Not currently in your book and maybe it doesn't fit in. But just want to mention that this was, and continues to be, a hurdle.
5) Deployment is way too hard for a beginner. I'm using dotcloud so that made it easier but again - having a virtual machine for distribution to beginners would be super helpful.
Suggestion 6: Expand chapter on deployment.
6) Would love to see an entire book devoted to building a single, substantial project that did a lot of typical things, but with all best practices implemented and explained in context. The project would use 2-3 existing Django apps and create 2-3 additional ones from scratch, and would show how to have intermediate apps to tie together 2 apps that need tight coupling. It would show this apps environments of dev, testing, staging, and deployment on either dotcloud, heroku, or gondor.io. It would show how to make the app look reasonably attractive, perhaps using Zurb or Twitter Bootstrap. I think this would make a terrific companion book to Two Scoops.
Hope some of this is helpful. Thanks for writing this book! I've had it for less than a day and I've already learned a lot.
- pydanny 14y agoI'm one of the authors. Can you send this review to me at pydanny@cartwheelweb.com? Thanks!