Wednesday, September 23, 2015

An experiment in learning by teaching

Originally, my contribution the geeky "potluck" that is the 2015-2016 season's Moncton Developer User Group presentations was supposed to be the Laravel PHP framework.  But then I volunteered to help the Moncton Public Library as an Arduino coder on a robot project and found myself having to learn 3D modeling for the parts that Thingiverse doesn't have.

Sadly, my attempts at drawing anything (in two dimensions) almost make xkcd look like Rembrandt.   Okay maybe you'd have to go to The Oatmeal or Hyperbole and a Half for that comparison.  But still.  Then I discovered that the OpenSCAD software was based on describing a 3D object mathematically, rather than drawing it (e.g. with SketchUp, AutoCAD, or Blender).  Believe-you-me, my pointy ears perked up and my spider-senses quivered.

Most software packages, unless they truly suck (or you hate having to work with them for other reasons) come with an infatuation period.  As with people, it lasts until you expect one behaviour and get something different.   But in the headlong rush of dewy eyes peering through rose-tinted spectacles, I pinged the MUG illuminati with the idea that OpenSCAD might perhaps be more interesting/useful to our crowd.  (For those outside I/T, PHP is a workhorse of a programming language, which makes it boring...except for the people who live to hate on it.)

So I spent the better part of a week's bedtime reading on the official documentation.  To help myself structure the information, I started outlining the information as I understood it.  Essentially, it was the nucleus of the outline for my presentation.  Unsurprisingly, the outline has since been re-arranged, split up, re-grouped, etc. as my understanding has become more completed.  And the obligatory "Gotchas" section has grown.  And moved up in priority as I've actually used OpenSCAD to model robot parts...among other things useful to the household of a budding evil mad inventor.

As auto-didactic techniques go, I'm going to hang onto this one.  For me, it's useful structure.  For the eventual recipients of the presentation, at least they can rest assured that it hasn't been thrown together the hour before.  Win-win, right?