Between where the Tutorials end & the Wild West begins: bringing new devs up to speed on Django
4 months ago I had never even seen a Django template. But I'm an engineer; coming up to speed couldn't be that hard, right? Wrong. Doing so efficiently and effectively was tough. I went from zero to production ready code used by hundreds of users everyday. I'll present my missteps and victories, laying out how other teams can quickly bring new team members, who don't know Django, up to speed fast.
This is a rough outline of how I learned Django; 4 months ago I was a total outsider. Through this process I made mistakes, I had breakdowns, but I walked away with a very solid understanding of Django and have proudly have written thousands of lines of Python that are in production today. You'll leave this talk with lessons on how to bring new developers to your team up speed on Django.
- Read the Django docs (obviously, right?)
- Follow along building the sample application (Polls, Choices, yada yada).
- Decide to jump into writing production ready code. Have a breakdown. Feel like you're trying to boil the ocean with a lighter.
- Realize that building the sample app was cute but nothing compared to writing a real world application with real users and real constraints.
- Re-read the docs.
- Build a real Django app -- no more Polls. I decided to build a single-sign on application that allowed Etsy sellers to login and view all the photos of their all their listings in one place. I will give background as to why I chose this app, how I built it, and what it taught me.
- Start biting off small pieces of production code to figure out what the hell is going on. Learn about commonly used Django packages such as django-registration, django-profiles, taggit, etc. - and what happens when you need to modify the code of those packages.
- Attempt to boil the ocean, again. I needed to do a massive re- architecture of our application, combining several independent Django applications into a single, unified Django project. My first attempt totally failed. I will discuss why this was and key novice mistakes.
- Key realization that knowing Django != knowing Python
- "When you bang your head enough against the wall, eventually the wall comes down" -- me. I built a pretty kick ass Django application and I'm quite proud of.
- Celebrate (with lessons learned)!