Tuesday, February 10, 2015

Code4Lib 2015 - Opening Keynote - Selena Deckelmann

The conference proper was kicked off with a wonderful keynote presented by Selena Deckelmann, staff data architect for Mozilla.  Ms. Deckelmann works in the division that handles the end result of those rare occasions when Firefox crashes and you are informed that a bug report will be automatically filed with Mozilla.  Those bug reports go into a PostgreSQL database at Mozilla, and Ms. Deckelmann is also heavily involved with the PostgreSQL project, contributing code to the database software and founding a conference for its users.

Deckelmann started her talk, which was on the topic of what we can learn from beginning programmers and how to approach teaching people programming skills, with a story from her youth involving her home public library.  As a child she loved the books of Roald Dahl, and after reading all of the ones in the children's department she discovered that there was a book by Roald Dahl that was in the adult section.  In her mind the adult section was somewhere that she wasn't really supposed to go and she thought that librarians would stop her from trying to go there.  She was really interested in reading this book though, so she snuck into the adult section of the library and found the copy of Revolting Rhymes that the catalog had directed her to.  The experience opened her eyes to what she could find in the library and ultimately that the boundary that she had perceived to be preventing her from using this part of the library did not exist.

From this point, Deckelmann described her role in founding and volunteering for the Portland chapter of PyLadies.  PyLadies is an organization dedicated to helping women learn how to program using the progamming language Python.  From this experience she shared several of the things she has discovered about beginning programmers and how to teach programming.  Some of the observations that she made were:
  • Beginners are open to possibilities that are afforded by programming languages but are overwhelmed by the choice offered (TMTOWTDI - There's More Than One Way To Do It)
  • When people learn they go through a process punctuated by moments of euphoria and despair.  When they think they get a concept they are euphoric and when things don't go the way they thought they would they feel crushed.  The people who wind up learning something are those who can hold out and end their learning process north of the despair line.  Those who give up are the ones who get frustrated and end south of the despair line.
  • Successful teaching involves the following principles:
    • Don't use the phrase "Well, actually..." at the beginning to the response to any question
    • Don't feign surprise that someone doesn't already know something
    • If you can, pair someone who has recently learned something with someone who is learning
    • When teaching programming try to adhere to a 1:3 ratio of time spent lecturing to time spent helping people do
    • Listen carefully to how students phrase their questions and write these down
Ultimately, Deckelmann has found that teaching people with no computer programming background how to write code has helped her to write better code herself, write better documentation for her code, and gain perspective.  She related her childhood library experience to that of people who have not learned any programming skills.  They don't know what they are missing and they don't understand that the barriers that they think keep them from doing this activity don't really exist.

It was an inspiring talk and one that I hope to use to improve my ability to teach programming skills to others.

No comments: