Slide 1

Slide 1 text

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.

Slide 2

Slide 2 text

“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.

Slide 3

Slide 3 text

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.

Slide 4

Slide 4 text

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.

Slide 5

Slide 5 text

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.

Slide 6

Slide 6 text

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.

Slide 7

Slide 7 text

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.

Slide 8

Slide 8 text

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.

Slide 9

Slide 9 text

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.

Slide 10

Slide 10 text

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.

Slide 11

Slide 11 text

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.

Slide 12

Slide 12 text

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.

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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.

Slide 15

Slide 15 text

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.

Slide 16

Slide 16 text

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.

Slide 17

Slide 17 text

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.

Slide 18

Slide 18 text

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.

Slide 19

Slide 19 text

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.

Slide 20

Slide 20 text

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?

Slide 21

Slide 21 text

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

Slide 22

Slide 22 text

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.

Slide 23

Slide 23 text

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.

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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

Slide 26

Slide 26 text

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...

Slide 27

Slide 27 text

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.

Slide 28

Slide 28 text

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

Slide 29

Slide 29 text

“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.

Slide 30

Slide 30 text

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.

Slide 31

Slide 31 text

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.

Slide 32

Slide 32 text

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.

Slide 33

Slide 33 text

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.

Slide 34

Slide 34 text

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.

Slide 35

Slide 35 text

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.

Slide 36

Slide 36 text

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.

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

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.

Slide 39

Slide 39 text

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.

Slide 40

Slide 40 text

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.

Slide 41

Slide 41 text

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.

Slide 42

Slide 42 text

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.

Slide 43

Slide 43 text

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.

Slide 44

Slide 44 text

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.

Slide 45

Slide 45 text

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.

Slide 46

Slide 46 text

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.

Slide 47

Slide 47 text

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.

Slide 48

Slide 48 text

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

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

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