Me and my poster!
My first PyCon was a struggle and I wasn't sure I wanted to go again. My second PyCon was a blast and I couldn't imagine it being any more amazing. I think my experiences were so different for a couple reasons; the first is that I was more intentional about what I wanted to get out of the conference, and the second is that over the past year I have changed the way I think about what it means to “be a programmer”.
Last year, I spent a lot of time thinking about whether I belonged at PyCon and questioning whether it was my thing or not. I felt overwhelmed because most of the content was way over my head, making me think it was not the place for me. I wondered what I could possibly get out of a conference on a thing I barely know how to use and I would decide it was a waste of time and resources. But then I would connect with individuals about the challenges of learning to program, or learning something new in general, and I would change my mind, feeling reassured that I was in the right place.
Because of that, this year I decided that if I were to go to PyCon again that I would have to go for a reason. So I proposed a poster on a project I hadn't started yet to give myself a little kick in the pants to actually do it. It got accepted, and then I rushed around to figure out how to make it happen. My goals became first to present a prototype of my project and get feedback from others in the broader Python community, and second to make connections with others with similar interests.
I've recently been making a shift in how I identify or think about myself. I started by choosing to get rid of labels – I now prefer to think about the things I do instead of the things I am. Instead of “I am a programmer, a cyclist, a whatever”, I think “I program, I ride my bike, I DO whatever”. This allows me to avoid letting other people define my identity (“you're not a nerd!”) and frees me from imposter syndrome – I may do a thing poorly or for a short time, but I'm doing it! This way I don't have to ask how much of a thing I need to do or be able to do before I can identify as that thing. This perspective also encourages me to ask myself how I want to participate in any given event so I can be intentional about why I'm going and what I want to get out of it. It feels liberating and purposeful.
So this year I asked myself: what do I want to get out of PyCon? What can I contribute with my unique background and skills? I talked to people specifically about my poster topic, leading to the most amazing conversations with others about teaching and learning Python. My unique background and skills allowed me to look at the learning process I've gone through, abstract what some of the challenges are, then identify what tools could potentially help others who deal with similar challenges. People were really interested in that and saw value in sharing it with friends and colleagues. Yay!
I was also intentional about how I wanted to do PyCon in order to meet my goal. I like Al Sweigart's How to Do PyCon (or any tech conference), but I think it's missing the initial step, which is deciding on your goal. How you conference will depend on a combination of what you want to get out of it, your personality and preferences, and the energy level you can sustain. Because my goal was to share my project and meet people with similar interests, I chose to prioritize talks where I might want to talk to the speaker, the hallway track, and especially the open spaces (I put one on the board). I didn't prioritize seeking out random people to meet, but I didn't close myself off to that either. I will echo Al's recommendation to use twitter; I love live-tweeting events and using twitter to stalk/follow up with people after the conference.
Framing, Our Ability to Answer Questions, Diversity, and Community
Here are some notes that led me to some interesting thoughts; I promise they come together in the end.
I really like studying formats of things – the affordances and constraints and what different formats allow you to do well or poorly. This was reinforced in the closing keynotes where K Lars Lohn talked about how programming languages influence the way you are able to think about a problem and constrain the available solutions. I thought about this when I proposed my poster project as a “Choose Your Own Adventure” which became a zine prototype and then transformed into a flowchart for my poster. I'm still thinking about what format makes sense for the next iteration of the tool. A book? A website? An online interactive flowchart thing?
I loved the focus on the community this year; it seemed like many of the talks I went to at least touched on it and Guido van Rossum talked about how the community has made Python what it is today. I also really enjoyed Naomi Cedar's session on anti-patterns of diversity; particularly her discussion of the value of diverse thoughts, backgrounds, and opinions (if you read my blog on last year's PyCon this was my most favoritest thing!) and the distinction between diversity and inclusion. The goal shouldn't be to have a crowd that looks diverse, the goal should be that all kinds of people feel welcome, feel like they belong in the community, and that they have something of value to contribute (my perspective has been deeply influenced by Grease Rag Ride & Wrench, a Twin Cities women/trans/femme cyclist space that is very intentionally inclusive for WTFs).
At one point during the poster session I talked to someone who will be giving an interesting upcoming talk (now I don't remember what exactly it was on!) butthey mentioned that the next big group of upcoming programmers won't be developers, they will be researchers and others who benefit from learning some programming for their job in a different field. People like me and the audience I have in mind for my poster project!
Bringing it all together… The Python community makes us all stronger, smarter, and more resourceful than we could be alone. As Brandon talked about in the closing, our community is growing. The more different types of ideas we have – that come from people with differing backgrounds – the better we all get to be because this influences what we are able to think up, what we are able to do, and the solutions available to us. For me, this means that as we are joined by more non-developers like scientists, artists, data analysts, all kinds of people who use Python for things we don't even know about, our community benefits. As we are intentionally inclusive and support people from different backgrounds, our community benefits. My project is one small piece of this, but as we each work on our small piece, we make Python what it is together. <3
Some neat things I learned about:
- I discovered The Recompiler, a feminist hacker magazine, and I got to meet its editor Audrey Eschright herself. In person!! And get cat stickers.
- Adventure Docs on GitHub: like a choose your own adventure for navigating documentation based on what you want to do
- Metacademy: “Your package manager for knowledge”. You put in what you want to learn, it gives you a summary of the thing, some context, and then recommends resources (free and paid) like text to read, video to watch, or classes to take.
- Columbia University Graduate School of Architecture, Planning, and Preservation Skilltree: a visualization of skills learned in he program that allows you to see how the skills are interconnected and then learn about each one. You can also follow a path which (I think) ensures that you would obtain any prerequisites for learning as you go in the order in which the path takes you.
- Katie Cunningham is planning a talk on teaching and empathy that involves teaching programmers to knit using specialized knitting words. I CAN'T WAIT TO SEE IT.
TL;DR about my project
Non-programmers interested in learning programming as a tool to help them work with data need a way to identify appropriate learning resources because there’s so much out there it can be daunting.
My solution is an interactive tool like a “Choose Your Own Adventure” book that uses information on why a learner wants to learn Python for data analysis and what specific task they want to work on to recommend ways to search for resources. It will also direct the learner to some actual resources for learning Python. My first iteration was a “Choose Your Own Adventure” zine. My second iteration was a poster flowchart that might help you plan how to get from where you are to where you want to go.
You can find both of these in a documents repo in my GitHub.
My process of learning Python looks like this. Chart below is from the Viking Code School article Why Learning to Code is So Damn Hard.