August 29, 2009

Teaching and Learning Django

Some time ago on the QGIS IRC channel, Dane Springmeyer (thanks Dane!) walked me through the basic concepts of GeoDjango, an Open Source web application development framework with a geospatial twist. I often remark to people that I think Desktop Applications are the way to go in the 3rd world where lack of Internet connectivity kills the user experience in web applications. At the same time, being pragmatic, I try not to completely ignore the web space, and if there ever was a compelling reason to do stuff on the web, for me it is GeoDjango.

This week I ran a free three day django training course for 3 ‘guinea-pigs’ (or should I be calling them ‘crash test dummies’ :-) ? ). I covered not only Django, but also Subversion, as I wanted to instill the practice of using managed source code into the attendees at the same time as sharing the joys of Django. We finished off the 3 days by collaboratively working on a GeoDjango application.

Django Workshop

It was quite remarkable how quickly they all were able to pick up the concept of Django, and they were soon building functional web applications within the first few hours of the course. I’m incredibly grateful to Graeme, Casey and Clinton for attending the pilot of my course and helping me to square up the training materials I have been preparing in anticipation of offering similar courses in the future. I’m going to put the training materials online for general enjoyment in a couple of days, once I have finished shoring up some loose ends. In the mean time here is the parting feedback I received from the attendees…

“Django is my first exposure to frameworks. I think it is great. Frameworks are tools that in my opinion should be mandatory in any development environment due to the time they save in skill aquisition and normal everyday usage. I am very keen to experiment more with Django and implement my own apps. The course was fantastic. I think it is very good to learn while doing. The idea of working on our own app and then in the end doing a collaborative effort is very novel to me and a very good idea. A very worthwhile use of time.”

– Casey Stephens CSIR-SAC (Centre for Science and Industrial Research, Satellite Applications Center)

“Thank you for the opportunity to learn Django. The course content was great and really informative. Promoting FOSS4G within government, it is very important to learn about new technologies in which to offer my clients. The lessons learnt from this course, understand programming!!! I think that if I was more in tune with programming standards, syntax and ‘programese’ I would have been more productive. With that said, you do not have to be programming whiz to get by. Django’s documentation is great and full of information. With a lecturer like yourself, Django is easy to understand and use.”

– Clinton Papenfus, SITA (State Information Technology Agency)

“Tim ran a really interesting (Geo)Django course at his most scenic smallholding outside JHB. Three of us, with varying levels of skill and enthusiasm, spent three days digging into the wealth of capability that exists in the framework. I guess I started thinking it would be almost trivially easy to work with django, and indeed it is. But it is also hard! The wonderful flexibility of the framework means that there are always different ways to do things, each with varying degrees of ‘good practice’. So, I guess I really need to use the toolset on a real live project, because if I don’t do it soon, I am likely to forget the insights I gained. Tim’ approach to teaching Django worked for me – lots of time to define ‘applications’ and write code. It feels informal and unstructured, but you actually end up covering a whole lot more ground and in line with the mantra of *doing* being more powerful for learning than *showing*, one comes away with enough knowledge to get cracking on projects of ones own. Novel for me was the strong use of svn and trac in a course – dead easy for participants to share/ view each others work and struggles! Tim had a cracking course idea for the end – a mini code sprint involving all the participants working on a single application. Aside from being fun, it gave a sense of how the Django framework allows work to be divvied up according to skillsets/interests. All in all, a unique, fun and insightful course in a lovely relaxed setting. Oh, and thanks to Marcelle for putting up with us and hogging Tim!”

– Graeme McFerren, CSIR-MERAKA (Centre for Science and Industrial Research, Meraka Institute)