Workshops and I

I feel like in University, we get a lot of exposure to the theoretical side of computing science, but at least in my experience, we don't really thinker around with stuff all that much.

One of the things I've tried to do since I joined my university's Computing Science club is to expand our workshop program. We've been trying to expose students to as wide of a variety of technologies as possible. The workshop I decided to try to present for the past year was an introduction to Django. Please keep in mind this was my time ever holding as workshop ;-)

Django

Django is a framework for developing web application in Python. I tried to just give a brief introduction to it, with a bit of theory and a hands-on portion.

Slides & Handout

I've put the slides and handout online at https://marcolussetti.com/workshops/django2017 if anybody wants to take a look.

The original eventbrite is available here.

Reflection

Considering I was running on very little sleep at the time I presented the workshop as I had just returned back from a conference in Germany a few days earlier (and had little time to recover due to schoolwork), I was fairly happy with how my workshop went. I got stuck on a few silly typos and was rescued by the audience, I'm definitively glad I had a step-by-step handout ready for the audience, I definitively tried to refer back to it when possible and it kept me on track I think.

Things that I liked

  • The handout: it kept me on track, the audience said they used to follow it when they stopped trying to keep up. I really think every workshop should have one after this.
    • I printed the handout and think that really helped, thought having it available online at a URL still seems like a good idea for copy&paste.
  • The room: I really wanted to use this fairly small room (seats like 12-14 people) that's part of the University's "Generator" (an initiative of Thompson Rivers University to promote startups
    • Small room and cozy atmosphere meant that it seemed like more people were willing to stop me and ask questions.
  • The slides: I think the clean layout (kind of a first for me) was fairly effective even when seen at a bit of a distance and looked professional yet interesting
  • The content:
    • Theory: people seemed to have liked my general overview that attempted to place Django in its context and highlighting of things Django was good for and things it was not
      • I got a couple of questions regarding Flask, and I tried to answer them as best as I could, but I think I should really try to play around with Flask a little bit, it would be a good learning experience for me
    • Practice: this I'm less happy about. I wanted people to leave with a working product, and I'm not sure anyone did. Nevertheless, I'm not sure that this particular problem can be fixed easily. However, what I could do is shuffle things around to start with the cool things first. I noticed the audience of programmers was less interested in the Admin panel than I thought, which makes sense in hindsight as programmers are perfectly happy to just write HTML/CSS/Javascript code. I should have maybe shown a fully functional application, showed chunks of code that did thing (or added some functionality there) and then focused on building a couple of simple components from scratch.

Things that I did not like / ideas for improvement

  • I did not sufficiently plan for people using Pycharm.
    • I've used Django and Virtual Environments with Pycharm before, however I did not think of providing people with detail instruction on how to set that up ahead of time. It would definitively allowed people to keep up better.
  • I chose to use a virtualized Windows environment.
    • My idea was if you're using Linux, you probably can make your way around the system well enough already and should have no issues converting commands. I figured if you used Windows you might want me to go through the exact same steps I did. And I had virtually no experience with Mac so there wasn't much I could do there.
    • Turns out the experience on Windows is radically different depending on whether you are using Pycharm, the Command Prompt, or the Ubuntu on Windows system.
    • And that when people needed help with Mac, I had no idea what to suggest. I think I'd do better now that I've had some exposure to Mac due to my workplace using virtually exclusively Mac, but I'm still unsure about how to make my way around the system.
    • I think it's worthwhile to standardize on one, simple, environment. Just tell people that they should either: use Linux/Mac Os X, Ubuntu on Windows, or something like Cygwin that emulates the Linux command structure.
  • Q&A: still too few people were asking questions when stuck or confused.
  • Speed: I don't think I spoke too fast (unusually), but I definitively went too fast in the coding part.
    • I'm not sure how to fix this. I felt like I was boring the few who were following step by step (or were familiar with Django) yet I definitively did not allow enough time for those who were dealing with it the first time.