Last Sunday, Călin and I had a great time delivering a Drupal development training during the AIESEC IT School. We worked with a class of students that have never touched Drupal before and got them so high up the learning curve, to the point they managed to write their very own content import module. For those of you who don’t know what to expect in terms of starting to work with Drupal, you could imagine the learning curve looks something like this.
Fortunately, this was not the first time I took on this challenge, so I did have some experience to help me through. The following tips should come handy if you need to deliver a training on Drupal development, or any kind of hands on technical training for that matter.
1. Plan your resources (time)
You have a limited amount of anything, but most importantly time. Try to know beforehand what the level of your students is. Have they coded before? Do they have any experience with basic web technologies? Do they have a minimum skill with php? These are all surprisingly useful questions that you should be able to answer with certainty. Knowing the answer will allow you to adjust the balance between introductory and advanced topics that you will cover. If possible, have them fill in a short survey – there are plenty of on-line tools for that. If not, come prepared. I wrote a second module that I could go through in case my students were too Drupal savvy.
The next points follow into the same idea: save your very limited time for actual learning.
2. Use Virtual Machine appliances
By far, the greatest issue is managing to help everybody through their stumbles, all while keeping a decent pace with the training. The code base and the tutorial is the same for everybody, but the working environments can be very different. So much so that during my first Drupal training, I burned through almost half of my time just to get everybody prepared with a clean Drupal install.
Using a ready made virtual machine appliance guarantees that every participant will work on the exact same environment as yourself. This allows for quick and consistent debugging and thus greatly reduces time spent not learning through the training. In this case I instructed the students to come prepared by downloading and installing the Virtual Box machine packaged by Mike Stewart. You can read the feature list here, suffice to say that it had everything I needed and a little extra.
3. IRC as a Collaborative Tool
Following what the trainer talks and writes at the same time can be challenging if you also happen to be struggling with a bug in your code. Wouldn’t it be nice if you could just copy-paste some code directly from the projected screen? Of course it would, but we had to do with the next best thing.
Logging in to Freenode and opening up a new chat room was a snap as the virtual machine came installed with one of the best IRC clients there is, xChat. This way I could quickly paste tricky code templates into the chat room for everyone to grab.
4. Efficiency in Numbers
During a development training it’s not unusual for several participants to get into trouble with their code at once. Although you may be a good multitasker, these cases need to be handled individually. My advice: having an experienced coder like Călin to assist is invaluable as the time spent with debugging will drop dramatically.
Drupal Development Training Overview
To provide an overview for this particular situation, the Drupal development training lasted 4 hours and a half, just 30 minutes over the plan. Here are the things we managed to cover during this time:
- a quick run-through what the typical web development workflow looks like
- what is Drupal and why we use it
- a site building stage where we constructed a wallpaper showcase website using typical Drupal modules
- a coding stage where we built a module to assist with importing large numbers of wallpapers
Learning from past experiences and taking these 4 tips into account was an important reason why we managed to enjoy ourselves very much during this training. Another important reason were the people involved in making it happen, so thank you guys!