$30 off During Our Annual Pro Sale. View Details »

What beginners teach us - Passion Projects

What beginners teach us - Passion Projects

My slides and speaker notes from the Passion Projects talk I gave on March 13, 2014

Selena Deckelmann

March 14, 2014
Tweet

More Decks by Selena Deckelmann

Other Decks in Education

Transcript

  1. What beginners teach us
    Selena Deckelmann
    @selenamarie
    Data Architect, Mozilla
    I’m here to talk about a passion of mine, but thought I’d also mention
    what I do for a living. So for work, I write open source software at Mozilla
    - a tool called Socorro that collects and processes Firefox crashes. I
    focus on data-related things, specifically Postgres, and I try to keep an
    eye on all of our data storage systems related to that. I get to work with
    what I think of as medium data, and a bunch of great people, some are in
    the audience today :) But rather than talk about my work, I’m going to
    talk about what I do with my volunteer time. I chose to do that rather
    than give a technical talk, because I thought it would be simpler for me to
    explain how I view the world, and the fundamental problems I try to
    tackle in all the work I do.

    View Slide

  2. “In the beginner’s mind there
    are many possibilities, in the
    expert’s mind, there are few.”
    -Shunryu Suzuki
    2
    The volunteer work I have focused on for the past couple of years has
    been about bringing people who are not currently part of open source
    into our communities. I believe the most important thing I’ve learned
    while doing this work is captured in this quotation. I love the many
    meanings captured by this one sentence.

    View Slide

  3. I am a beginner teacher
    3
    I am a beginner teacher. I’ve only just started writing lessons and
    teaching classes to adult women who are learning or practicing their
    programming. All of what I share today is based on my personal
    experiences working with first time, adult programmers.

    View Slide

  4. full of possibility
    4
    And I am so excited about working with beginners because this is how
    I can help bring more open source contributors into our communities.
    And especially bring in more women and underrepresented groups of
    people. The kinds of people who have believed for too long that they
    have nothing to contribute to open source software.

    View Slide

  5. the one thing...
    Next time you answer
    a beginner’s question
    5
    If there is a single thing that you take away from this talk today, it is
    this: The next time that you answer a beginners question.

    View Slide

  6. take a moment and consider...
    How will the beginner feel
    when they hear your
    answer?
    6
    Pause -- take a moment to consider how the beginner will feel when
    you answer their question. I hope to give you some tools today to help
    make beginners feel successful and excited about learning. And, I
    believe that all of you already know enough and are kind enough to
    help any beginner succeed in programming.

    View Slide

  7. I’ve been involved in FOSS
    Since 1995
    7
    I started out in free and open source software in 1995, when I
    installed linux on a computer I put together myself for the first time.
    Years later, I joined my first PerlMongers group, and then discovered
    PostgreSQL.

    View Slide

  8. PyLadies
    Get women who code together
    In September 2012, I joined...
    8
    In September 2012 - I met a ton of women who were involved in
    PyLadies, and was so excited by their mission and their success that I
    founded my own chapter in Portland. Their goal is very simply to get
    women together who code to talk about Python. Many chapters have
    also offered free programming classes and have published their
    curriculum online.

    View Slide

  9. our first project...
    A Coursera Class
    9
    The Portland PyLadies first project was to take a Coursera Class
    together. Before we knew it, we had 60 women signed up to meetings
    and 30 or more women showed up to each meetup to go over
    homework, talk about Python and meet other programmers. But,
    many of the women who showed up had never programmed before,
    and many struggled with the math (like how does modulo work when
    you’re dealing with negative numbers?) and fancy syntax like list
    comprehensions.

    View Slide

  10. Walk away
    or
    Figure out how to teach?
    10
    So, a couple weeks in, it became clear. The women in these classes
    needed some help with basic programming that wasn’t being taught
    in the Coursera class. And I had to decide -- would I just let the
    Coursera class finish out and set up a user group like every other
    group, or would we try to teach the women who had never
    programmed before? Clearly, since I am here. I decided to teach.

    View Slide

  11. beginners:
    Open to possibility
    and overwhelmed
    by choice
    11
    One of the first lessons I learned was about choice. The beginning
    programmers are often so open to possibility, and given 1000
    different choices, become overwhelmed by it. They have trouble
    deciding what a reasonable next step is in the face of so many
    possibilities.

    View Slide

  12. TMTOWTDI
    the best part of beginners mind
    adventure, possibility, inclusive
    12
    You can also think about this problem in terms of the culture of open
    source software. Perl is famous for this phrase - there’s more than
    one way to do it. It symbolizes the best part of the beginner’s mind.
    The place where we are full of adventure, of possibility and are very
    inclusive of differences.

    View Slide

  13. or...
    13
    But, when instead of being open to possibility we are overwhelmed,
    there’s no adventure. Just confusion.

    View Slide

  14. 14
    Let’s have a look at the old Python Download page for example. There
    are SO MANY CHOICES on this page for a new developer. This page
    has improved since 2012 - “Alternative Implementations” first on the
    page, which lists things like cpython, which a beginner would know
    nothing about. But when one of the PyLadies who came for a
    workshop went to this page, they were stumped. Which version of
    Python should I use? What is the difference between MSI Installer,
    Installer and X86-64 installer? Should I just install the source instead?
    GAAAAAAH.

    View Slide

  15. 15
    Fortunately, python.org got an overhaul. You can see here that the
    page detected my operating system and suggested a download
    package. And right below the buttons, the page asks “Wondering
    which version to use?” and directs me to a link to tell me more.
    Finally, there’s a group of links that helps me find a different
    operating system just below. And some lovely parachutes, helping me
    with a soft landing on my first steps into the Python community! I
    love this page so much because it solved and answered every question
    my PyLadies have about downloading Python for the first time.

    View Slide

  16. our job as teacher is to answer...
    “What do I do next?”
    16
    Our job as a teach is to answer the question “What do I do next?” for
    the student. Not every student needs as much help. At some point,
    however nearly every student will need this kind of help to discern
    between the many different choices in front of them.

    View Slide

  17. And to consider:
    How do people feel while
    they’re taking the next step?
    17
    And when we help students decide which step to take next, we must
    take into consideration how that experience makes them feel. If we’re
    helping them, but they don’t feel confident in their actions, they
    haven’t truly learned what we’re trying to teach. It is our responsibility
    not to just give correct answers, but to also enable people to
    confidently solve their own problems the next time.

    View Slide

  18. What does learning how
    to program feel like?
    18
    To try to figure out how I can help students feel more confident, I
    decided to look at what my own emotions are like when I’m learning a
    new programming skill.

    View Slide

  19. 19
    This is a picture of a sticky note I drew of how I felt while learning to
    use a database migration tool called alembic. The top of the graph if
    “euphoria” or “happiness”, and the bottom of the graph is “despair” or
    unhappiness. You can see I have a lot of ups and downs! The peaks
    are when I’m reading documentation for the first time, succeeding
    with experiments and implementing code. The valleys are when I
    actually try the tutorials and they don’t completely work, when I write
    code that fails and when I’m trying to refactor my test suite. In the
    end, my emotions level out and I am generally satisfied with the tool I
    chose to work with.

    View Slide

  20. When experience is a
    dead end
    20
    So what does it look like when someone tries to learn how to program
    and they do not succeed?

    View Slide

  21. 21
    Here’s my scale again with euphoria at the top and despair at the
    bottom.

    View Slide

  22. 22
    And here’s what I think happens sometimes with the women who
    come to PyLadies and then never come back. I think that they initially
    are very happy, but then something happens that causes them to give
    up.

    View Slide

  23. 23
    In one case, I know exactly what happened -- a woman attended the
    workshops, tried things on their own that didn’t work, and then finally
    had something break with Python on her windows laptop and she
    never came back.

    View Slide

  24. When PyLadies
    succeeds
    24
    So what happens when PyLadies succeeds? What does the emotional
    graph look like?

    View Slide

  25. OSDC.tw - April 19, 2013 25
    This is one example - lots of peaks and valleys, but in the end we
    have excitement for programming

    View Slide

  26. 26
    And what I’ve seen in the more than 100 women that keep coming to
    meetings is that they continue to have difficult experiences - things
    break, they don’t know how to fix them...

    View Slide

  27. OSDC.tw - April 19, 2013 27
    But they all come back to the group. They ask questions, they
    commiserate over things that don’t work and they get the help they
    need to objectively see that they are improving at the same time as
    they *feel* as though they are getting better, making friends and
    being supported.

    View Slide

  28. Engineering
    experiences
    28
    So what are we doing in these hackathons and meetups that help
    people get through the pits of despair in programming?

    View Slide

  29. “The unwritten first chapter”
    Big goals
    Early wins
    In-person connections
    Cultivate a learning environment
    29
    From a teaching standpoint, here’s what we try to do: We help with the unwritten first
    chapter of open source development. There are so many details we take for granted,
    and first time programmers really struggle with our tools and our installation practices.
    Our classes help them through this.
    we set big goals -- like getting a job, giving presentations at conferences, writing our
    first open source applications. We provide early wins -- like collaborating with
    established projects, getting through tutorials successfully and demonstrating new
    skills as fast as we can. We help make lots of in-person connections so that you have
    friends to code with. And we cultivate a learning environment -- a special kind of place
    that encourages learning and fun that I’m going to talk about a little bit more in a
    minute.

    View Slide

  30. Tools for engineering
    great beginner
    experiences
    30
    There are quite a few useful tools for making those five things
    happen. I’m going to describe a few you might be able to use right
    away -- in your open source groups, at work and in your families.
    Because I think everyone should learn how to program -- at least a
    little bit.

    View Slide

  31. OSDC.tw - April 19, 2013
    From Hacker School:
    No “Well, Actually...”
    No Feigning Surprise
    31
    A couple of my favorite tools are these two ideas from Hacker School - a free school for
    programmers in new york city. They ban the phrase “Well, Actually...” When someone starts a
    sentence this way, they are correcting someone. The truth is, teachers rarely need to correct people
    to be good teachers. Mostly, asking questions can help a student come to a good solution without
    correction. Banning “Well actually” is a reminder that we don’t need to correct students to be good
    teachers.
    When you act surprised that someone doesn’t know something, you are actually shaming that
    person for admitting they are vulnerable and maybe know less than you do. “No feigning surprise” is
    a reminder that beginners need encouragement. Admitting that you don’t know something takes
    courage, and teachers should always reward courage.

    View Slide

  32. pairing
    best teachers are
    those that just learned
    32
    Another great tool is pairing. Students who have just learned a new
    skill are often the best teachers. Also, if a student is struggling, they
    may find it easier to ask their peer questions. And if both students are
    having the same issue, they can face it together rather than be
    embarassed or feel alone while they struggle with learning.

    View Slide

  33. 1:3 ratio
    instruction to doing
    33
    For the teacher, spend less time lecturing in front of the class, and
    more time helping students practice new skills. My rule of thumb is 1
    minute of instruction to three or four minutes of practice time for
    students. I try to only prepare 15 minutes of “instruction time” and I
    try to chunk it up into 5 minute parts. This keeps the classes
    interesting and the students far more engaged.

    View Slide

  34. listen carefully
    learn from how students rephrase
    and ask questions
    34
    Finally, teachers should listen carefully to how students respond to
    lessons. Students will often rephrase, or ask important questions
    when lessons aren’t clear. Recording those questions and thinking
    about how students rephrased things can provide clues about how to
    make lessons better. One student compared classes and objects to
    cookie cutters and cookies. Students were able to use that metaphor
    in classes later to explain the difference to others. Prior to that, I
    really hadn’t had an effective metaphor that was consistently used by
    the students.

    View Slide

  35. PyLadiesPDX
    230 women
    1-2 meetings per week
    35
    I’ve been using these tools with PyLadies since september 2012. We
    now have 230 women involved in the user group, and we continue to
    add more women daily. We currently have 24 chapters of PyLadies -
    mostly in the US, Canada and Europe. But we have at least one chapter
    on every continent except Australia. I think that the real secret to the
    success of these meetings is the regularity and the opportunity we
    provide for women to talk and work directly with each other.

    View Slide

  36. 36
    • New skills
    • Peer support
    • Structure and routine
    • Confidence
    What PyLadies say they get:
    I’m seeing more and more people meet in PyLadies, find jobs, find
    mentors and most important to me: find people to collaborate with.

    View Slide

  37. and what else have I
    learned? or benefited?
    37
    So how else have I benefited and what have I learned from this?

    View Slide

  38. write better code
    write better docs
    gain perspective
    38
    I write better code. I’m more concise and I’ve gotten incredibly good
    with git workflow and rebase in particular because I had to really learn
    it to teach it. I write better documentation because I see first hand
    how beginners respond to my documentation. I’ve also gained a lot of
    perspective about how people who are friendly and interested in open
    source, experience our communities for the first time. That first
    experience can really be a struggle, and I work even harder on
    PyLadies to try to make this easier.

    View Slide

  39. recruit diverse
    members to your
    communities
    39
    I’ve recruited another 200 women into the Python community. I
    regularly attend user groups, conferences and meetings where I am
    the only woman. It makes me very happy to meet so many new
    women and bring them into my open source communities.

    View Slide

  40. adainitiative.org
    openhatch.org
    pyladies.org
    40
    And these are three organizations that I support who work on
    increasing women and underrepresented group participation in open
    source. If you have any questions about any of these groups, please
    come see me or check out their websites. These groups are incredibly
    important, making measurable progress and change, and are worthy
    of your time and support.

    View Slide

  41. and...
    41
    and finally, I want to close with what I think are the most important
    reasons why teaching, and learning how to teach are worth your time.
    this is why I am giving this talk today and why I have spent so much
    time trying to figure out how to become a better teacher.

    View Slide

  42. an informed public
    42
    Teaching beginners helps everyone become more knowledgeable
    about programming and what it really is. there are still many people
    who have no idea what “code” even is. My husband, upon learning
    what variables and loops were, said to me “I can’t believe that I
    allowed myself to be ignorant of this for so long.” The concepts are
    not that hard, and we should teach them to our friends and family.
    Ultimately, I believe that computational thinking literacy is a civil
    rights issue. It’s quickly becoming as important as reading or writing
    is to be involved and informed in public life.

    View Slide

  43. CSTA - July 16, 2013
    Julie Horvath’s blog post
    43
    http://julieannhorvath.com/2013/07/09/a-different-perspective.html
    Also, I want to talk about something Julie said recently. She wrote a
    blog post about women in tech and one thing she said in particular
    struck a chord with me.

    View Slide

  44. CSTA - July 16, 2013
    “I didn’t grow up
    thinking I could do
    anything I wanted to.”
    44
    When i look at this again, I feel overwhelmed by how much it matches
    what the women I’ve taught said that they think about programming.

    View Slide

  45. CSTA - July 16, 2013
    I see this every day teaching adults.
    I see this every time I walk into a classroom to teach beginning
    programmers. This is a photo from a class on algorithms, people
    doing a pen and pencil exercise in groups and afterward many women
    said afterward they finally felt confident that they could explain what
    algorithms were. That before coming and working on this in these
    groups, they literally had never really thought about how algorithms
    related to programming or what it might mean to implement or create
    their own algorithms.

    View Slide

  46. CSTA - July 16, 2013
    People don’t know
    what’s possible.
    I’ve come to think of this as a possibilities problem. People truly have
    no idea what is possible for them in computer science. And in my
    teaching experience in particular, women have no idea.

    View Slide

  47. make a better world!
    47
    if we spend the time to make our communities great places for
    beginners, we will definitely make a better world. A world where our
    friends and family know and appreciate our work. A world with far
    more open source software contributors than we have today.

    View Slide

  48. teach!
    <3
    48
    so go out there and teach!

    View Slide

  49. What beginners teach us
    Selena Deckelmann
    @selenamarie
    Data Architect, Mozilla

    View Slide

  50. This work is licensed under the Creative Commons Attribution-
    ShareAlike 3.0 Unported License. To view a copy of this license,
    visit http://creativecommons.org/licenses/by-sa/3.0/ or send a letter
    to Creative Commons, 444 Castro Street, Suite 900, Mountain
    View, California, 94041, USA.
    All photos are © by owners.
    PyLadies photos shared with permission.
    50

    View Slide