Upgrade to Pro — share decks privately, control downloads, hide ads and more …

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

More Decks by Selena Deckelmann

Other Decks in Education


  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  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.
  13. or... 13 But, when instead of being open to possibility

    we are overwhelmed, there’s no adventure. Just confusion.
  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.
  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.
  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.
  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.
  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.
  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.
  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?
  21. 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.
  22. 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.
  23. OSDC.tw - April 19, 2013 25 This is one example

    - lots of peaks and valleys, but in the end we have excitement for programming
  24. 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...
  25. 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.
  26. Engineering experiences 28 So what are we doing in these

    hackathons and meetups that help people get through the pits of despair in programming?
  27. “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.
  28. 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.
  29. 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.
  30. 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.
  31. 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.
  32. 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.
  33. 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.
  34. 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.
  35. and what else have I learned? or benefited? 37 So

    how else have I benefited and what have I learned from this?
  36. 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.
  37. 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.
  38. 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.
  39. 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.
  40. 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.
  41. 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.
  42. 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.
  43. 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.
  44. 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.
  45. 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.
  46. 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