someone get me a command line

Over on the Diversity in Python list (on which I am largely lurking, for reasons both various AND sundry), the question was raised: What brought you to Python? When you got to the fork in the road, what made the The Python Way more attractive than all those other ways? The people? The projects? The Django pony at the end of the rainbow? The assumption was that there was, somewhere, at some point, a decision that had to be made, and we pythonistas at least have that decision in common. After all, here we are.

Me, though, I never really made that decision. I went to journalism school (for what I believe is one of the only reasons people go to journalism school, which is to save the world). Yeah, while I was there, I built some websites and enjoyed it, but it was always a means to an end, always just another thing I could put on my resume for when I had to go out and get a real job. One of the almost-real jobs I had was at Playboy. I fell in with the programmer types on the pay site, and we stayed in touch, and when that internship was over, I went off to save the world.

Except that I didn’t have the stomach for world-saving. Working as a reporter in a courthouse on Chicago’s south side was grindingly, soul-crushingly depressing, and sometimes I still marvel that I came out of that alive. Illinois has the death penalty, and so I sat through murder trials that I still can’t talk about, and then sat through them all over again as people took the stand to explain why more death would make everything better. I realized that I could do it, if I wanted to; I could shut down the part of myself that threw up in the courthouse bathroom before calling the newsroom with my story. But I didn’t really like the person I would have had to become to do that, and so I walked away from hard-news journalism.

So then I thought, okay! Maybe science! Science can totally save the world! And anyway, mainstream reporting of the sciences often isn’t very good. So I did that for a while, working as a writer and editor for various scientific institutions and publications. It was fun and it was interesting and I loved going to work every day and learning new things and talking to amazing people and looking at experiments.

But in the end, I realized that I can’t write for a living. I can’t do it. It makes me insane, hollows out all the parts of myself I need to get through my day, leaves me empty and aching and scraped raw. Other people can do it — thank god — but I can’t. I can’t do deadlines, and I can’t do regular contributions to anything, and if I am to write, I have to do it on my own time and my own terms. I do, however, have to do it.

So, there I was, 20-something and lost, and those guys I’d fallen in with at Playboy (remember them?) had gone to a different company, and there was a part-time job opening for a contractor to come in and do straight black-box manual testing of websites. Okay, sure. I can totally click links, and I can blow my paycheck on ice cream and comic books, and everything will be super. Two things became clear quite quickly: One, they needed someone full-time, and two, clicking links is stupid. There must be a way to automate this. And there is! It’s called twill, and it’s written in python; what else do I need to know? Quick! Someone get me a command line.

And that gets me back to the beginning of this post: There wasn’t really a decision. I got a job, and I needed this tool to do my job, and here I am. It’s pretty nice here. I have the good fortune to work with many great pythonistas at my job, people to keep me interested and motivated and tell me when my ideas or code (or both) are full of shit. Many of them are active and involved with The Python Community.

When I put my roll-call for women in python, I really wasn’t sure what to expect. But the comments on that post, and conversations I’ve had about it have led me to believe that there are a lot more women using python than people think. But are we in python? Are we active and involved members of the community? Known and respected and liked (or, I suppose, loathed)? A few, yes, but not many. Why is that?

Me, I’m on the fringes. I could certainly become more involved if I were so inclined (and sometimes I am). But there are a few things keeping me where I am.

Communities are hard work. Participating is emotionally exhausting, and dev communities are largely based in mediums I don’t really enjoy all that much. I hate mailing lists. I swore off IRC sometime in the 90s. It drives me crazy to have to follow 270 different blogs and subscribe to RSS feeds for comments so I can follow conversations, or constantly refresh pages having discussions that I care about. Being in The Python Community (or, I assume, any dev community) is incredibly time-consuming, and I don’t have a lot of time. The Second Shift phenomenon is well-known, but for me, it’s more like my Fifth Shift.

And so, if I’m going to get involved, there need to be rewards. And there totally are. Support and encouragement for my projects. Answers to my questions. New friends. New ideas. New, better technologies. Cool software. Exciting travel opportunities and informative conferences. Possible job opportunities. The sheer joy of the thing itself, of a single, elegant line of code, of starting from nothing and building something cool, building something that works and that people can use and love and share.

I don’t know what other people get out of it. I assume others have similar reasons. (My straw poll on twitter largely confirmed this for me.)

But because I’m a woman, I get other stuff, too: Constant questions about where the other women are, sexist comments on this blog any time I post, demands on my patience and my time to answer questions about what I’m doing, how and why I’m doing it, what is this whole “feminism” thing all about anyway, what about the mens, and on and on and on. For me, wading into the python community ends up being only a little about python, and a lot about women — whether I want it that way or not.

Usually, I don’t. I announced at the last pycon that the first dude who asked me where were all the women was going to get punched in the face. I managed to largely avoid the conversation, but it was hard work, and it kept me pretty cut off. I stuck with the guys I already knew, and I didn’t go to any parties or meet many new people or do much of the social stuff that makes pycon so awesome. I still had a good time, but it was a very controlled good time.

To be an active part of any community, python included, you have to want it. You have to love it and sometimes you have to hate it, but mostly, you have to want whatever it is you get out of it. And if you’re part of an under-represented group and you want to play, you’d better also want to save the world, because that’s the assumption everyone is going to make. You’re going to be the token, the anomaly, the exception to the rule, and people are going to ask you about it, and heaven help you if you don’t want to discuss it. They’ll call you names under their breath (affectionately) and roll their eyes (fondly) and pat you on the head (sweetly) and ask why you’re so emotional (seriously).

It’s hard, is what I’m saying.

Is it worth it? I don’t know. I cannot and will not speak for other women. For me, sometimes, yes, it’s worth it. I’m not opposed to work, and I neither expect nor want everything to be easy. But sometimes it’s not worth it. Sometimes I tell all my mailing lists to stop sending me mail and I quit out of my RSS reader and I pause twitter until I can breathe again. Maybe I knit a hat or read a book or study French or write a story or go to a play or hang out with my friends. Sometimes I pull back for a day, sometimes for a month. There’s no shortage of activity or community in my life, just a shortage of sleep.

I keep losing track of the point of this post. What am I even trying to say? I’m not sure I know. Communities are difficult. Being actively involved with python is a lot of work, all those lists and feeds and conferences and blog posts to write and conversations to have. It’s not remotely surprising to me that there are so many women using python without engaging with the community, awesome as it is. Maybe they use it at work, like I do, and they can get support and encouragement and help from coworkers. They can read everyone else’s blog posts for fresh ideas and new technologies. They use python like they use Firefox, as just another tool to get the job done, whatever the job may be. Maybe they have all the friends they need. Maybe they’d rather spend their time writing software than answering questions about feminism (or any other *ism). Maybe they don’t want it badly enough. I can’t hold that against anyone; I’m often in that boat. I’m sure everyone is, about something.

So if my point is (and I am pretty sure this is my point!) that dev communities are difficult and time-consuming, and moreso for under-represented groups, what can we do about it? [Please note that I am completely uninterested in explaining why we should care, and I’m not going to engage with anyone who thinks under-represented groups should just stay under-represented.] And that’s where, I’m afraid, I’m out of words. The diversity list is kicking around some pretty good ideas about this, like Python Open Mike for people who don’t want to (or can’t) maintain their own blogs. So that’s awesome. Is the wiki useful enough? Should there be better newbie guides? Is there some kind of This Week In Python thing that people can subscribe to for an idea of what’s going on in the community without drowning in Planet Python? Would that even be useful? Are there community-building and maintaining technologies out there that are better than mailing lists and irc channels and far-flung blogs? What else can we do to make engaging less of a pain in the ass?


, ,

2 Responses to someone get me a command line

  1. Catherine Jones 2009-09-16 at 1323 #

    In a code-based community people participate, largely, by sharing and discussing code. But there can be quite a gap between hacking together something that solves a problem and writing code that feels pretty enough to share. People sensitive to criticism – and I count myself among that group – may hold back from sharing what they do until they’ve had time to polish it, document it, and establish its value in solving some real-world problem. That may not be the way community and open source are supposed to work; ideally we’d all be generous and fearless in the release-early-and-often tradition. But we all come to Python (and other languages) in our
    own ways dragging our own life experience with us.

    As a person who uses Python in a solitary way (i.e., for my own projects but not as an employee or member of a team), I get feedback from the machine about whether my code works but not about whether it’s readable, appropriately commented, sufficiently “Pythonic,” etc. My notion of how other people write Python comes from books, from the baypiggies mailing list (where I lurk), and from snippets of code that I find online when I have a problem and go googling for a solution. Maybe this code is not representative; maybe it’s skewed toward the good stuff that others have found useful or worthy of publication. Maybe I’d be less intimidated by high standards if I worked on a team or had personal contact with other Python programmers.

    I wonder, also, whether the Python community (admittedly a vague amorphous concept) differs from other programming language communities in its emphasis on style and elegance and whether this emphasis, however understandable and justified, may not contribute to the intimidation factor. In my (also solitary and not very extensive) experience with other languages (Turbo Pascal, C++, Java, Scheme, Emacs Lisp, PHP) I don’t recall reading much about style. Does anyone praise a piece of Java code as being particularly Java-esque? Sometimes it’s a joy just to get code (in any language) to run and do what you want it to do. But, if elegance matters to the community and if elegance means significant extra work, the joy may well remain a solitary one.

    There also a kind of chicken-and-egg issue having to do with the problems to which Python gets applied. One of my longstanding interests is textile design. That’s what got me into Python in the first place: Python was the designated scripting language for Skencil, a vector graphics editor/generator that I wanted to apply to textile design. But an interest in textile design doesn’t connect me with the Python community (or any programming community) in the way that an equivalent interest in 2D game design would. Textile design and game design may call upon some of the same graphics libraries, but the demographics of the end-users are different. Game design is a viable entry point into the Python community, because a reasonable number of gamers have an interest in programming and some of those who do program know Python. The same doesn’t hold true for textile design. Until Python gets applied more broadly to problems of interest to different demographic groups…

    Finally, I should add that I have enormous gratitude to the Python community for the wealth of free code and information it makes available. I may be a lurker and (lightweight) parasite for now, but I do intent to participate and give back eventually.

    • pam 2009-09-17 at 1740 #

      This is such a great, thought-provoking comment! I’ve been hesitant to respond because I’m still thinking about it, and responding with “yes, this!” always seems like a cop-out.

      But I think you’re very right about Python’s focus on style and elegance. I love that there’s a style guide (I think journalism will do that to a person; I pretty much slept with the AP stylebook under my pillow for years) but I do think it can be discouraging, especially for new people and those used to working on their own.

      I’m still thinking about the chicken-and-egg point, and probably need to do some poking around. But I definitely think python is used to solve all kinds of problems; whether anyone knows that is a different story, and one well worth exploring.

      Thanks again for your comment!

say something...

Powered by WordPress. Designed by Woo Themes