Boston Python Workshop logo

Lessons learned from the Boston Python Workshop, an outreach event for women

This is a guest post by Jessica McKellar. Jessica is a software engineer and an organizer for the Boston Python Meetup.

This entry originally appeared at the blog.

My name is Jessica, and I’m an organizer, curriculum developer, and lecturer for the Boston Python Workshop, a free, 1.5 day project-driven introduction to Python for women and their friends. The workshop has run twice, in March and May, and the third run is happening in July at Google Cambridge.

I’d like to share some of the lessons the Boston Python Workshop staff have learned about organizing outreach workshops and our goal of bringing more gender diversity to the local Python community.

First, the structure of the Boston Python Workshop

Boston Python Workshop logo

The Boston Python Workshop is for women and their friends who have no or limited programming experience (I’ll talk more about “women and their friends” in a bit).

The workshop is held on a Friday evening and all day Saturday. On Friday, attendees set up their development environments and start learning Python through a self-directed tutorial and practice problems.

On Saturday, attendees continue learning Python with a 2 hour interactive lecture. Attendees and staff socialize over a sponsored, on-site lunch. In the afternoon, we break out into groups to practice Python while rotating through three short projects on a variety of fun and practical topics. Our projects have included writing parts of a Twitter client, how to cheat at Words with Friends, writing a basic web app in Django, and writing graphical effects for a ColorWall. Our material is all online, so check it out.

This comes to a solid 10 hours of learning and practicing Python, with support from a strong group of volunteers from the local programming and open source communities. The workshop is run under the auspices of the Boston Python Meetup (I’m one of the Meetup organizers) and we hold follow-up events like an open Project Night through the Meetup.

Lessons learned about teaching Python to beginners

Boston Python Workshop attendees watch a presentation

There is a huge difference between teaching Python to people with programming experience in another language and people with absolutely no prior programming experience. The biggest lesson we learned is that if you are going to teach absolute beginners, you have to commit to really starting at the beginning:

  • Make getting your environment set up a part of the event. If you say that attendees need to install Python and dependencies before the event, you will scare off some beginners. For us, environment setup includes:

    • installing Python
    • on Windows: adding Python to your PATH
    • practicing starting and exiting a Python prompt
    • installing a code-friendly text editor
    • practicing running Python code from a file
    • installing dependencies for the Saturday projects

    We provide step-by-step instructions for Windows, OS X, and Linux. We want people to leave Friday confident in their ability to create and navigate a Python development environment.

  • Introduce programming vocabulary before you use it. It’s easy to toss around words like ‘variable’, ‘parameter’, ‘string’, or ‘syntax’ without thinking about it. Define these words as you use them, and tell other staff and attendees to call you out if you start using jargon. Consider having a glossary to which attendees can refer.

  • Make it clear that experimenting is okay. This isn’t a sculpture or glassblowing class; there is no physical or expensive resource “wasted” on mistakes, so don’t be afraid of making them. Get attendees in the habit of answering their own questions by testing and tinkering. As much as you can, give answers at a Python prompt instead of saying them. We also introduce tracebacks very early and strip away any intimidation or sense of having done something “wrong” when attendees encounter them.

  • Have clear, bite-sized goals. Completing a task, no matter how small, is encouraging and lets you know that you are on the right track. Our Friday night material has explicit steps for each bit of environment setup and ends in a check-off of a handful of key lessons with a staff member.

  • Give attendees opportunities to practice thinking about and solving problems in code. It is a huge leap from following along with an instructor or tutorial to solving a problem on your own in code, and it’s a leap that is often neglected in intro material. We have attendees practice with and some staff-written exercises.

  • Motivate the experience. Start and end the workshop with why programming is useful, empowering, and fun. Our Saturday projects are an opportunity to experience this first hand. Have the staff share their programming stories.

Lessons learned about outreach workshops focused on women

An instructor looks at a student's laptop at the Boston Python Workshop

It is always important to keep a positive, inclusive tone, even when you are focusing on a particular demographic:

  • Make it clear that trans women are welcome. I had a tough time coming up with language that I liked, so I asked some trans women I knew for help.

  • Make the situation for men clear. Our rule, adopted from RailsBridge, is that men can come as guests of women.

    Here’s how we describe our audience in the Meetup event blurb:

    Audience: Women and their friends who have no or limited programming experience. This event is welcoming and respectful of trans women. Men are welcome as guests of women who are attending.

    Friendly and to the point.

  • Talk about childcare. Childcare responsibilities are often overlooked at events like this. Maybe you can afford childcare; maybe you can get a volunteer to watch kids on-site. Even if you can’t provide any help, acknowledging that childcare is a concern for some women who’d like to attend goes a long way towards cultivating an inclusive environment.

  • Have female instructors. Studies show that female instructors can substantially impact the confidence and performance of women pursuing science and engineering [1][2][3]. It’s also an opportunity for attendees and the general Python programming community to see more examples of smart, confident, capable women programmers. Need help finding staff? Ask around your local user group, universities, and tech companies.

Lessons learned about sponsorship and publicity

A tweet reading 'RSVP now for the 3rd Boston Python Workshop: a project-driven Python intro for women & their friends, July 8&9 at Google'

You can’t run a workshop without a venue, food (for all-day events), and attendees. The Boston Python Workshop is a free event run by volunteers, so we have to handle space, food, and publicity through donations, grants, and a lot of on-the-ground effort. Here’s how we do it, from a women’s outreach perspective:

  • Ask local businesses and universities for space and food. Don’t underestimate the ability of local businesses and universities to help you with space and food donations. Often all it takes is asking. A lot of bigger companies have budgets for community relations or diversity outreach that they are dying to use on events like this.

  • Ask the Python Software Foundation for help. Apply for funding through the PSF grant and sprint programs. PyLadies in LA received a PSF grant for their outreach events earlier this year.

  • Short on attendees? Send an e-mail blast. Advertise the event with your local user group (better yet, make it a user group event). Still not full? How about contacting:

    These are all also great communities for recruiting workshop staff.

  • Play the social media game. Get on Twitter, pick a hashtag, and promote the event. Write blog posts and encourage attendees to do the same. Invite famous local tech women to attend the event and blog about it.

Lessons learned about goals and iteration


What are the long-term goals for these outreach workshops, and are we achieving them?

In Boston, our goal is sustained involvement in the local Python community. For us, it’s important to:

  • Have a roadmap. An intro workshop is a great first step, but what’s next? We end the workshop with explicit suggestions for next steps and reiterate them on our wiki and in a follow-up e-mail. We also specifically invite workshop attendees to a pre-scheduled follow-up Project Night, and since attendees joined the Boston Python Meetup to register for the workshop, they’ll get information about all future Meetup events.

  • Be data-driven. We run detailed exit surveys and use that data to iterate on the curriculum and projects. We hold a staff wrap-up shortly after the workshop where we dissect every part of the event from the instructor perspective and identify parts that can be improved. We also track attendance at general Meetup events.

Prior to our outreach workshops, Meetup events were under 5% women. I can happily report that the 6 general Meetup events (which typically bring in 40 – 70 people) held since running our first workshop have all had at least 15% women attending, and we have some fantastic workshop alums who have become Project Night regulars.

Your turn logo

There is a huge, unmet demand for programming events for women, across the US and globally. Our workshops fill up within hours, and we plan on running the Boston Python Workshop every 2 months for the foreseeable future.

You can read more about the Boston Python Workshop on our wiki. We are #bospythonworkshop on Twitter, and we run under the auspices of the Boston Python Meetup (@bostonpython) and the OpenHatch project (@openhatchery). We plan events and share strategies with other outreach events on the OpenHatch Events list.

It’s your turn! What programming or open source communities are you passionate about? What kinds of outreach are important to you, and what are the biggest barriers to running a workshop in your city? We want to see more outreach events across the globe, so tell us what you need and we’ll help make it happen!

Already a veteran event organizer? We want to hear about your experiences!

Leave a comment with your story and join in the discussion on the Events list.

[1] GÃ¼rer, D. & Camp, T. (2001). Investigating the incredible shrinking pipeline for women in computer science (Final Report — NSF Project 9812016).

[2] Sonnert, G., Fox, M. F. and Adkins, K. (2007). Undergraduate Women in Science and Engineering: Effects of Faculty, Fields, and Institutions Over Time. Social Science Quarterly, 88: 1333–1356. doi: 10.1111/j.1540-6237.2007.00505.x

[3] Bettinger, Eric P. & Long, Bridget Terry. (2005). Do Faculty Serve as Role Models? The Impact of Instructor Gender on Female Students. The American Economic Review
Vol. 95, No. 2, Papers and Proceedings of the One Hundred Seventeenth Annual Meeting of the American Economic Association, Philadelphia, PA, pp. 152-157

For an excellent introduction to the gender gap in computer science, see:
Margolis, J. and Fisher, A. (2002). Unlocking the Clubhouse: Women in Computing. Cambridge, MA: MIT Press.

13 thoughts on “Lessons learned from the Boston Python Workshop, an outreach event for women

  1. Jay Gischer

    I want to share with you one idea for dealing with situations such as your workshop where one is dealing with a “stereotype threat”. It has been shown that a simple writing exercise done at the beginning of class will pretty much completely eliminate differences in performance between men and women in a college physics class, among other results.

    1. Lindsey Kuper

      Yeah, this was a good one — it was mentioned in a GF post last November, but I’m glad it came up again because it gives me a chance to call out this paragraph:

      Miyake’s achievement is doubly impressive because the physics course had already tried to introduce ways of reducing the gender gap, including extra tutorials. But all of these methods involved more of the same – more teaching, or more problems to solve. Miyake’s exercise, by contrast, had nothing whatsoever to do with physics; it worked because it improved the environment in which women learn physics. Put it this way: if someone can’t hammer in a tricky nail, it might not be because their arm isn’t strong enough. It might be that they constantly have to look over their shoulders while they work.

  2. K00kyKelly

    Any particular reason for Python? Is it good for beginners? versatile? widely used? My programming background is limited to C++ and assembly and I’m unfamiliar with the pros and cons of what I think of as the web languages.

    Thanks to Jessica for organizing such an awesome event and sharing it with us!!

    1. Dave

      I think Python’s a great language for beginners and explorers! Garbage collection, clean syntax and lack of variable declarations or a separate compile stage all help. Simple programs can be made simple, and there are great libraries, so moving to more useful programs isn’t too hard. It’s not restricted to web programming, either: it’s commonly used to write GUI apps, scientific apps, and even games.

      The only hard bits are that it’s expected that users of Python have at least a very basic familiarity with the terminal, and there aren’t such great IDEs. Thankfully Jessica’s instructions look like they’d help a lot with that!

    2. Ingrid Jakobsen

      Yes, we had pretty good success teaching Python to beginners, although not as a web language, but a computational science language. And some of the non-beginners became Python converts, including one who convinced his workplace (!) to switch to Python.

    3. Jessica

      Other commenters left great reasons, so I’ll just add one more that is important for everyone, not just new programmers:

      Community. Python has a great, welcoming community stewarded by the Python Software Foundation: Diversity and outreach are so important to the PSF that they are a part of its mission statement:


  3. Jackie

    Thanks for this post — I really enjoyed it, love that this event happened, and appreciate the resources! I’ve emailed my local chapter of the Association for Women in Computing about making something happen like this where I live (before I move to the Boston area in Fall 2012..!). It’s just at the beginning of the process and everything, putting together ideas and so on. I was curious whether you’re okay with people using those step-by-step instructions as a baseline for…step-by-step instructions? I’ve noticed already how easy it is to miss something while trying to explain basics or first steps because of taking things for granted re: what I already knew about computing when I started programming.

    In terms of languages — this should maybe be a separate comment but how to help people beginning is interesting to me and I am curious if there are other thoughts —

    I was starting to use Python for NLP (parsing stuff with NLTK, actually) when I took my first intro programming class in my CS department, which was in C++. A year later, I took an introductory programming course using Python and spent the entire semester (a) not especially challenged but (b) astonished at how much better the building blocks we were given were. That’s about particular classes, in large part, but maybe not entirely.

    I agree that Python is fantastic for beginners and exploring for a lot of reasons, many already mentioned. Including because there is so much variety within what you can do with Python and what has been done with it, and I think it’s easy to learn other things ‘through’ it (like terminal usage and various widely-applicable programming concepts); it’s awesome to feel like you understand how to learn more.

    I am a bit torn sometimes because I personally am glad that the first experience/s I had were in C++ as well as Python. I actually thought that the C++ made it a lot easier for me to learn Python, although it confused me occasionally too, in terms of structure especially. I usually recommend that people really interested in doing CS at my school take one of our C++ intros first, and then the Python if they still want to learn Python through a class. (My school doesn’t offer Java as a cold-intro language; the Python class is our Informatics intro technically, which is a separate track that can be very close or only somewhat close to the CS, as you choose.)

    For a supportive environment/a kind (in the sense of personal-kindness) introduction to programming/if someone is really worried about beginning programming, though, I’d switch the Python and the C++ around in my recommendation, and I’m not completely sure what that means — it’s something I keep thinking about. My programming experience is still shallow enough that I am not 100% certain which of these and other things I enjoy most myself, but I suspect (perhaps wrongly) that which language is the best bridge for you to learning other languages depends on what sort of learner you are.

    1. Jessica

      > I’ve emailed my local chapter of the Association for Women in Computing about making
      > something happen like this where I live

      Awesome! If I or OpenHatch can help at all, don’t hesitate to get in touch. And yes: you can definitely use and copy any of the material on the wiki. The material is all under a Creative Commons license (, so you can share and remix it so long as there is attribution. We’d love to hear about improvements to the instructions.

  4. Catherine

    Don’t forget libraries (both academic and public) as possible partners for both space and publicity!

    1. Dorothea

      This. Please. College students: go to the reference desk at the library and ask whoever’s on duty who’s in charge of library events or event spaces. Members of the public: ditto, for your nearest public library.

Comments are closed.