Author Archives: brainwane

NAND and NOR gate sketch, coincidentally in the shape of a heart

Hacker School Gets an A on the Bechdel Test

NAND and NOR gate sketch, coincidentally in the shape of a heart

NAND and NOR gate sketch, coincidentally in the shape of a heart – by me this week

cross-posted from Cogito, Ergo Sumana

When part of the joy of a place is that gender doesn’t matter, it’s hard to write about that joy, because calling attention to gender is the opposite of that. I want to illustrate this facet of my Hacker School experience: mostly, Hacker Schoolers of all genders talk about mostly the same things. And we talk about them in all gender combinations — including, just by chance, among women.

The “Bechdel Test” asks whether a work of fiction includes at least two women with names who talk to each other about something other than a man. Thus in my blog I have an occasional series listing topics I’ve discussed with other women. My life passes the Bechdel Test! ;-)

So here is an list of some things I’ve discussed with Hacker School women. (About half the facilitators, cofounders, participants, and residents are women.)

Some Things Hacker School Women Talk About

  • why LVars and set operations relate to current work in distributed systems
  • The Kids Are All Right
  • IRC etiquette, and when to use IRC instead of a mailing list, videocall or wiki
  • troubleshooting git-review
  • the Haiku operating system’s key features (many of them similar to BeOS)
  • refactoring a function a guy wrote so it doesn’t do everything in main() (technically breaks Bechdel?)
  • whether to work at a nonprofit or for-profit
  • where is that maple syrup smell coming from? (answer: someone was making oatmeal)
  • our GitHub report cards
  • how to use machine learning techniques to train a Markov chain to generate funnier sentences
  • how the hell Makefiles work
  • what the hell a cuticle is
  • binary search and Huffman coding
  • saving time with useful Python standard library modules (string, time, os, etc.) and packages, e.g., requests
  • Too Much Light Makes the Baby Go Blind
  • where pip gets its info (PyPI)
  • the Pythonic convention for reading from a file, with open('file','r') as f, and the fact that it’s a context manager
  • when and how to use list comprehensions and dictionary comprehensions, generators and decorators, ord and chr
  • why we use pass for stub functions or classes instead of return
  • birth control amortization
  • how you would override Python’s default behavior to raise an exception when slicing a list with a negative int
  • how to write a hill-climbing algorithm and why
  • G.K. Chesterton’s use of the mystery genre
  • what the #! (hashbang) line at the beginning of a script actually does
  • song currently stuck in one’s head (“Gettin’ Jiggy Wid’ It”) and confusing “Wild Wild West” with “Back To The Future III”
  • what it takes to work remotely
  • security issues inherent in creating a sandboxed version of an interactive Python interpreter
  • who put this post-it note on the fridge saying “No Java on Monday”? When? Did the author mean the beverage or the language? Was it descriptive or imperative? Why did they never take it down?
  • an awesome 1982 Bell Labs video about UNIX featuring Lorinda Cherry

I could make this list probably ten times longer. My point is, if you don’t care about gender, Hacker School is awesome. If you’re irritated by the tech industry’s usual gender crap, Hacker School is blissfully free of it and you can — if you want — turn into someone who doesn’t care about gender for three months.*

You can apply now for the next batch — apply by Saturday night, December 14th.

* an oversimplification! But you get what I mean.

someone using a backscratcher

From “sit still” to “scratch your own itch”

When I started off in open source, I believed that bit of “The Cathedral and the Bazaar” that said:

Every good work of software starts by scratching a developer’s personal itch.

Regardless of the truth of this assertion, somewhere along the way I got the impression that people usually get into open source via “scratching their own itch,” and I mixed up prescriptive and descriptive to boot. Personally, I started dabbling in open source testing hoping to learn a bit of Python, and then really got stuck in when I saw a clear unmet need for documentation even though I wasn’t personally going to use it. Sometimes I thought I was inferior — surely I ought to have been thinking up my own projects, improving my work environment, and writing things that would help me out, thus getting me into a virtuous circle of learning?

I’ve since learned more about how I learn (see previous posts on beating certain learning anxieties). And I’ve found it helpful to talk with other newbies and see the patterns.

Here’s one: the newbie who finds it frustrating that they “don’t have ideas.” This person, like me, has heard the message that a REAL programmer or a REAL open source contributor is supposed to be a self-starter who comes up with their own project ideas from the start and uses them to learn. Or the newbie knows they learn best by doing, but they feel a discouraging malaise whenever they attempt to think of an idea to pursue.

This affects people of all backgrounds, but I wonder — is it harder to reflexively “scratch your own itch” when you’ve been taught, as so many women have, to stop scratching and sit like a good girl? If you’re part of an oppressed group, and parents, schools, peers, mass media, and bosses have all consistently punished you when you speak up about a missing stair, then is it any surprise that you’d be slow to start picking up the saw and hammer?

metaphortunate articulated that youthful indoctrination:

I had finally learned that whenever I got angry and I tried to do something about my anger to the source of my anger, everything just got worse for me.

So in the long run one answer to this is that we have to work to make sure everyone has agency and feels it, their whole lives. But, given that some of us struggle with remembering our agency, and that it’s fine to have different learning styles, here are some ideas for priming the idea pump, or for alternate pathways into learning and getting into open stuff.

  1. Embrace boringness. Look at other fields, like sewing, where it is totally fine to start off by making a simple handbag off a common pattern. In open stuff this might be the “same old same old” LED clock or blog platform. If an idea appeals to you but there’s an inner censor saying “that’s too boring” or “what’s the use,” you can tell that inner voice that Sumana says “shut up.” For me, it’s Skud saying “shut up” to that inner censor.
  2. Embrace silliness. Perhaps the equivalent of embroidering a happy face onto an oven mitt. Again, if you think it would make you a scintilla happier, go ahead.  And again, I have a Skud in my head telling the naysayer to buzz off.
  3. Find someone else’s pain point. It is perfectly legit to work to improve shared tools. Look around at places online or in your local community where people are asking for help. Maybe you can find a ridiculously tedious data entry job that you can help with a corner of, or it would be nice if a light over here lit up when such-and-such happened. In a sense, this is what Outreach Program for Women, OpenHatch, and Developers For Good offer: the organizers have already curated the TODO lists so you can pick out the tasks that interest you. It is fine to simply piggyback on existing projects and drift around a bit learning lots of little things that way, and the more you learn and do, the more needs and opportunities you’ll discover.
  4. It’s fine to take a class. Different people at different times learn differently. If you think you’d benefit from structure, encouragement, sociability, and exercises, opportunities from edX to Hacker School to your local community college are worth checking out.
  5. Work with scraps. I get anxious over wasting food or cloth or paper, so when I cook or sew or write stand-up comedy or poetry, I feel more comfortable working with scraps, with leftovers. When I am scribbling ideas for stand-up bits, I prefer to use textfiles that already have miscellaneous jottings in them, or little half-full notebooks, or odd-shaped scratch paper. No doubt my preference for pre-ruined materials reflects my perfectionism and anxiety over worth. I can be creative more easily if the materials were just going to go to waste anyway. I think the trick to addressing this mindset, in the long run, includes habits of deemphasizing and subtlety, tricking oneself into not making a big production out of any given attempt. I’m not good at that. But in the short term: scraps. Find patterns in datasets you already have. Look through old academic papers to find citations to add to Wikipedia. If you have a web presence you barely use, repurpose it as a CSS playground. I’d love more ideas around this theme.
  6. The examined life. What do I actually want? Is there a thing that could make my life better? Honestly I find this question really hard to answer; it requires that I address the pain of unfulfilled desire instead of just accepting my world as it is. But if I have conquered some of the ways the kyriarchy has colonized my brain, then it’s possible to hear the “$foo would make my life better” signals and perhaps address them through technology.

What have you found useful in overcoming the myth of boundless ideation, or in learning to listen to your own itch?

Hiking boots on sand

Makeup, mobility and choice: the things you don’t have to do

Cross-posted from my personal blog, originally titled “The Kind of Feminist I Am”.

I don’t use makeup. I put lotion on my skin and balm on my lips if they feel uncomfortably dry, if you want to call that cosmetic. If someone wants to film me then they’ll have to find some powders or whatever that suit my skin tone, because I don’t have any. I don’t shave my legs. I don’t own “heels.” I think a few of my shoes may have, like, a quarter-inch rise in the heel compared to the toe. I usually keep my hair so short that combs barely affect anything; if bangs start existing, an old headband keeps them out of my eyes. A barber shears my head every few months.

Also: I’m still not on Facebook. That’s right, I’m an online community manager, have been for two years, and I can get along fine without Facebook. I don’t eat red meat, and rarely have sustainable fish or organic free-range poultry. “Vegetarian” is basically right. I don’t imbibe massmedia about the visual appearance of famous people. I didn’t watch most of the Matrix or Lord of the Rings movies, and I don’t read TechCrunch or Gawker or that ycombinator news site.

I post this as part of the project to normalize diversity. If you think “everyone” is on Facebook, well, no, because I’m not. If you think every woman shaves her legs, no, I don’t. I am a successful person who has given influential speeches and mentored others, and I don’t have to do any of these things, so you don’t either. It’s all of a piece.

Caitlin Moran recently wrote a very good feminist book, How To Be a Woman. She discusses some sexist expectations (that women should wear uncomfortable shoes and epilate ourselves all over and so on). It’s unpaid labor and it’s nonsense and I say to hell with it. Some sexist expectations still get in my way. For instance, men interrupt me more often than they interrupt other men. And if I run a meeting efficiently, I’m less likely (compared to a man) to get thought of as a “strong leader,” and more likely to get thought of as a “bitch.” It’s annoying enough to have to spend any thought on avoiding that crap, so I skip all the other, more optional crap as much as possible.

It saves big chunks of time and money to omit “oh but everyone does it” junk. It’s pretty easy for me to just go with my own inertia — I never started wearing makeup, wearing pointy heels, or using Facebook, or smoking pot. I tried out leg-shaving and longish hair and earring-wearing and tens-of-thousands-of-people conferences, and they just don’t deliver ROI for me, so I stopped.

I know not everyone can just say “screw it” and walk away from this crap with no consequences. Intersectionality exists. Thank all goodness that I can dismiss as much of the crap as I can.

Mobility’s one part of that privilege. I move around a lot and have had a bunch of jobs, and sometimes that’s annoying, but a cool thing about it is that I’m not as stuck with one small consistent group of authority figures who might be jerks about my choices or reinventions. I can be blithe about other people disapproving of my choices, because I have a great job, certifications of a good education, a sensible spouse, a lucrative career, reasonably good health, and various convenient privileges. It also helps to be a bit socially oblivious, and specifically to have a tough time making out soft voices in crowds; if anyone’s gossiping about me in whispers, I won’t hear it! It’s great! (For me.)

So this is one reason why I’m in favor of good government-sponsored education and healthcare that levels the playing field for everyone, and reproductive rights, and easy border-crossings, and public transit. I love mobility. I love the means by which people can get away from their old selves and the people who thought they knew them. I love the fact that I get to choose whether I care about my high school classmates. (Make your own Facebook-related joke here!)

Exit, voice, and loyalty. Forking. For adults, the most fundamental freedom is the freedom to leave, to vote with your feet.

But right near that is the freedom to walk around in public without having to slather paint or a smile on your face. If you want to, cool! Performing femininity, like playing the guitar, ought to be a choice.

Quick hit: Apply for paid internships in open source, running Jan-March 2013

GNOME Outreach Program for Women

Máirín Duffy’s GNOME Outreach Program for Women logo

You might have heard about GNOME’s Outreach Program for Women, which pays USD$5000 stipends for three-month internships for women to work on GNOME. There are opportunities for work in coding, marketing, design, documentation, testing, and more, and you don’t have to have any open source experience or programming experience to apply.

Well, in the upcoming round of internships, there are eight mentoring projects offering at least 17 internship placements in total, and I’m proud to say that one of them is Wikimedia, the project that supports Wikipedia. (I’m the Engineering Community Manager for Wikimedia and basically buttonholed GNOME’s Marina Zhurakhinskaya at a conference in October specifically to ask whether Wikimedia could participate in this program, and I am delighted that we are taking part.) Other projects participating include Deltacloud, Fedora, GNOME, JBoss, Mozilla, OpenStack and Tor.

Any woman interested in working on these projects is welcome to apply, provided she is available for a full-time internship during this time period (more details). This program is open to anyone who identifies herself as a woman.

Please take a look and start the application process as soon as you can, since the application process includes getting in touch with a mentor and completing a small task. And help us spread the word!

Quick Hit: a GF approach to events

I help plan technical events at the Wikimedia Foundation. I think we’ve improved in making them more welcoming and inclusive over the course of my time there. We just recently filled to capacity on registration for an upcoming event, and I thought I’d share a few things we’ve done:

  • A friendly space policy
  • Event info page shows photos of people of different genders, allows people to opt in to sharing their names/attendance
  • Registration form doesn’t ask for sex or gender; instead, it asks what kind of t-shirt we should provide (including a “None, thank you” option) and “If you need accommodation: would you prefer to share a room with a woman or with a man?” (options: “women’s rooms”, “men’s rooms”, “either will be fine”)
  • We’ll aim to document as much of the event as possible in realtime text
  • We’re ensuring that at least one of the social events is not booze-oriented
  • I’m working to ensure people can put whatever names they prefer on their badges, including handles/nicks for those who don’t want to share their wallet names
  • Free to attend, and we provide travel sponsorships to encourage participants from far away
  • Hostel very near the venue

I failed at:

  • childcare – just didn’t put in the time to ensure we could provide this
  • ensuring our venue is accessible to those with disabilities (I’m not sure, and didn’t emphasize this as a key criterion when my contact in Berlin was scouting venues)
  • clarifying many of the points above to prospective attendees
  • and probably more

What have you done to make your geek events more welcoming?

A breakout group at the Boston Python Workshop work at laptops around a table

– the anxiety of learning and how I am beating it

Beating learn-to-program anxiety with good gamification and courses

I have anxiety about learning technical skills. I wrote about this a little while back. But now I know more about how I learn, and, in bits and snatches, I am gaining proficiency and confidence. Here’s a summary of my journey over the last several months with learning more programming skills (in this case, mostly in Python), with links to some resources in case you’re like me.

I get anxious when learning skills that I think I should already know; I feel behind and guilty. Structure, little rewards, friendly sociability, and encouragement from other women help tremendously. Tedra Osell writes about this in the context of writer’s block, and FlyLady and Cheryl Mendelson’s Home Comforts speak to that problem in learning to keep a comfortable home; the people and resources I mention (CodeLesson, OpenHatch’s Boston Python Workshop for women and their friends, CodingBat, and the Python Challenge) provide many of the stimuli I need. Also, my anxiety spikes if I think I am supposed to compare my speed or quality of work with others (hence my post’s title), but cools down if I see evidence that someone else wants to patiently help me. These resources helped me learn without pushing my “argh everyone’s better than me” buttons.

So, first: CodeLesson. The vintage and handmade store Etsy ran a free four-week online course in HTML, CSS, JavaScript, and the Etsy API. Hundreds of people signed up; I got on the waitlist, and eventually did three of the weeks in September and October. (I then had a big crunch week at work and didn’t finish, but I intend to finish that last week’s work anyway, to learn animation and pagination in jQuery.) It was exactly what I wanted — well-written tutorials and exercises to get me over the initial hump. I now know a little CSS, JavaScript, and jQuery, which is infinity percent more than I knew before. I had lots of fist-pump “Yay, I made it work!” moments. And the instructor’s praise of my work helped; I’m a social animal, and recognition and praise from instructors helps reassure me that I’m on the right track.

Thanks to Etsy for the free class. And I liked the CodeLesson interface and infrastructure enough that I may pay for additional CodeLesson classes, or get my organization to follow Etsy’s lead and offer classes through them to increase our users’ skills.

A couple months later, I had a chance to attend OpenHatch’s intro-to-Python workshop specifically meant for women and their friends. I’d read about these before, on GeekFeminism and elsewhere, and it sounded like it would fit how I learn as well as help me plan to hold similar events in my community. So, on a Friday in December, I took the bus from New York City to Boston.

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

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

It’s a good thing that the Friday night prep part was three hours and that I already knew a bunch of stuff that other people were new to (familiarity with the command line & the Python prompt, etc.) since I was an hour late! It was good to fix the syntax-y bits in my mind. The CodingBat exercises were great practice and I got a big triumphant fist-raised feeling when all those unit tests passed.

In between sessions, I chatted with some of the people who run the program. It sounds like each individual run of it costs about $300 for lunch for everyone and that’s practically it, since they use volunteers and the venue time is donated (and then like $10 total for pens/sticky nametags/laser-printed “here’s the workshop” signs/etc.). That’s practically out-of-pocket for a tech community, and they get grants. So it’s totally replicable. I’ve been reminded that it’s important to treat these kinds of workshops more like a community introduction than as standalone events; local user groups and communities should be the teachers, and email blasts and encouragement should integrate participants into their local hobbyist groups.

Saturday morning’s lecture included some review of stuff I knew, but it went fast enough that I was still learning most of the time — like, how to ask for the nth character in a string, or how for-loops quite work, some subtleties of scope, etc.

Then the project bits — the teachers and their presentations weren’t quite as polished as Jessica McKellar, who had led the earlier parts of the workshop. But I still learned a lot and got to make cool things happen using, say, the Twitter API, and that was very neat. As designed, the workshop led me through small, basic exercises first (the equivalent of finger exercises in piano), then showed off visually satisfying things we could do with Python and its ecosystem.

Aside from tiny minor delays, the workshop basically ran like a Swiss watch the whole time. I was impressed. It takes a lot of preparation, skill, and practice to make an event like that go so smoothly and teach so many people; congrats to the workshop volunteers! And I’m glad I went, learned and remembered Python, and got more confidence to attempt projects.  On a community management level, I’m also massively grateful that I’ve seen firsthand an example of how we can construct and maintain these parts of the pipeline, to help more girls and women get into STEM.

The workshop so excited me that I then did all the Python exercises on CodingBat, and started Python Challenge (I’m at step 4 or 5 right now). They’re complementary. They both gamify learning, and you don’t have to look at how other people are doing, and they both have somewhat granular ways of kindly telling you when you’ve done something slightly wrong. With CodingBat it’s the unit tests, which go from red to green when you cover another edge case. In Python Challenge, for example, at one point I went to a URL where I had transformed the filename from the previous URL per a transformation hinted at in the challenge. The URL had ended in .html, and after the decryption, it ended in the extension (making this up to avoid spoilers) “.ywnb”. At that address was a text file that the server signalled you should download. I downloaded and opened it and it just said, “have you ever heard of .ywnb files?!” or something like that, implying basically that I shouldn’t have transformed the file extension, just the filename. So, it didn’t just fail, it gave me a nicely furnished dead end, signalling kindly but playfully that I had done something understandably wrong.

Screenshot of two progress graphs from CodingBat

Progress graphs from CodingBat, showing my attempts to solve two problems; the green portions are unit tests that passed, and the red and pink portions are unit tests failing. The exercise "String-2 end_other" took me a while, but I got it.

There’s probably some game design term for this kind of compassionate railroading, but it makes me think of the caring side of the caring-to-combative community spectrum. And in both cases I got that feeling of being nurtured by someone who cared, even if that someone else is Nick Parlante (CodingBat’s author), years ago and a continent away.

Also, CodingBat is pretty clear about how you solve any given problem (declaring that this set of problems is about lists and only 1 layer of for-loops, or what have you), whereas in the Python Challenge you have a puzzle that you know you can solve with Python but that you can hit a bunch of different ways. If you want an experience with arguably more realistic exercises, the author of CodingBat also made the Google intro to Python, which includes exercises along the lines of “munge the semistructured data in this file with these guidelines.” I intend on doing that this year.

Python Challenge logo

Python Challenge is mysterious, yet friendly.

It was good to have my spouse Leonard nearby to help me when I was working on the Python Challenge, to (for example) help see that I had called a variable inconsistently, to notice that I couldn’t import a file as a module because I’d named it “1″ instead of something starting with a letter, to remind me how to learn of (“dir(filename)”) and then use (“filename.function”) the functions within it, to tell me about string.replace, and to tell me how to use the interactive prompt properly to investigate how you call a method on an object of whatever type. But I did nearly all the work myself. And as of today I feel a lot more comfortable using for-loops, knowing what data structures to use for a problem (I decided to use a dictionary datatype the other day! And it worked! So exciting!), getting stuff in and out of dictionaries, and generally thinking “I can learn this!” Data structures and algorithms had felt mystifying to me. Now data structures no longer do. I remember the moment in Python challenge when I thought, “I’ll use a dictionary!” and I was right! It’s great.

CodeLesson, CodingBat, the Python Challenge, Leonard available for occasional consultation, and the Boston workshop are the dance partners I needed.

I’ve just begun CodeAcademy and stalled (as with all the rest of my learning-to-code endeavors) due to lack of time, as my job is pretty absorbing right now. (Worth a skim: Scott Gray’s thoughts on CodeAcademy.) I also haven’t tried Philip Guo’s online Python tutor which may suit me better since I’m more interested in Python than JavaScript right now. But I thought it might help others to talk about my journey so far.

Google Summer of Code 2012

My goal: inform women’s colleges about Google Summer of Code

Google Summer of Code 2012

Google Summer of Code 2012 - help me publicize this to college women!

If you have contacts at women’s colleges, let’s work to get a GSoC presentation there before March 20th. I’ll help.

Google’s open source team has now announced that Google Summer of Code 2012 will happen. Undergraduate and grad students at accredited colleges/universities around the world can get paid USD 5000 to work on open source projects as a full-time three-month internship.

Upcoming deadlines: 9 March, mentoring organizations need to submit their applications to participate. 6 April, student application deadline.

Open source software development is a rewarding and educational way for students to learn real-world software engineering skills, build portfolios, and network with industry and academe. Women coders especially find GSoC a good entry point because they can work from home with flexible hours, they get guaranteed personal mentorship, and the stipend lets them focus on their project for three solid months.

The best way to get in good applications is for organizers and students to start early, like, now. Students who download source code, learn how to hang out in IRC and submit patches in early March, and apply in late March are way more likely to get in (and to have a good experience) than those who start on April 2nd. So I want students to hear about GSoC (and hopefully about MediaWiki, my project) now. I’m willing to work to publicize GSoC this year and even if my project doesn’t get accepted, the other projects will benefit.

I successfully got multiple good proposals from women for my project last year, and this year I’d like to double that number. To that aim, I want to ensure that every women’s college in North America that has a CS department or a computer club gets informed about GSoC between now and March 20th, preferably with an in-person presentation. I started this effort in February and have already gotten some momentum; I spoke at Wellesley last week to much interest, and Scripps College held an info session today. But I need your help.

If your college isn’t on the list I set up, add it. If you can find contact information for one college listed on the wiki page, send them a note, and update the wiki page, that would be a huge help.

If you want goodies to hand out at a meetup, you can contact Google’s team. Let them know when you decide on a date, time, and location for a meetup so they can put it on the calendar. People have already prepared resources you can use: flyers, sample presentations, an email template, a list of projects that already have mentors listed, and more.

And of course, if you’re interested in applying, feel free to ask questions in the comments!

P.S. I’m only concentrating on North America because I figure that’s a limited and achievable goal; there are only about 50 women’s colleges with STEM curricula.  But GSoC caters to students worldwide. If you know of accredited women’s colleges outside North America that have CS curricula or programming clubs, please inform them and add them to the page. Thanks!

Amar Chitra Katha panel

Yet Another List (Comics with Women of Color)

This past weekend I caught up a bit on comic books. I went to Midtown Comics, my usual haunt, and got the most recent trades of DMZ and The Unwritten. The staff weren’t that helpful in my explorations, though — for example, when I asked about what Alison Bechdel’s been up to, I got basically a shrug.

The next day, I visited Forbidden Planet south of Union Square, and the staff seemed far more helpful and sympathetic. When I got up the nerve to ask, “What comics have people who look like me?” they were actually interested in figuring it out and loading up my arms.  “OMG you haven’t read Love And Rockets?!”

(Doesn’t it suck that so much of the Virgin India line is just crap?)

So, since it’s on my mind, some comics that feature women of color as interesting characters:

  • Amar Chitra Katha series — the comics I grew up with, telling Indian history, myths, legends, and fables. Draupadi! Savitri! Parvati! Sati! And so on.  (That panel is the image on this post, photo taken by Satish Krishnamurthy.)

    Amar Chitra Katha panel

    Amar Chitra Katha panel:
    The Rakshasi opened her mouth wide as Hanuman
    was drawn into her jaws by a mysterious force.

  • Y: The Last Man by Brian K. Vaughan and Pia Guerra. I read the whole thing, I loved it, it’s what got me back into comics a decade ago. Most of the characters are women, and I’m thinking especially of 355 (African-American), Dr. Mann (American of Chinese and Japanese ancestry), and You (Japanese).
  • DMZ by Brian Wood, which I read avidly. Volunteer medic Zee Hernandez isn’t the main character but she’s in there and important.
  • Persepolis by Marjane Satrapi, her autobiography about a childhood in Iran. A modern classic, and can you believe I’m only reading this now?
  • Love and Rockets by the Hernandez brothers. Ditto. (I’m a Philistine!)
  • Ayaseries by Marguerite Abouet and Clément Oubrerie, about a family in the Ivory Coast. I haven’t read it yet but it’s come recommended.
  • Lots of stuff by Lynda Barry. I like her stories (but find her art style a little overwhelming).
  • Patrick Farley’s The Spiders stars the African-American soldier Lt. Celicia Miller, and The Jain’s Death is about Anuradha, a South Asian woman.
  • I hear very good things about Carla Speed McNeil’s Finder but haven’t started it yet.

I don’t much care about superhero comics so I’m leaving out Storm from X-Men, etc. Should I read Frank Miller’s Martha Washington stuff? I should also sweep through my household’s shelves, especially our three binders of indie stuff we’ve bought at MoCCA, to find more recommendation-worthy books and one-offs, especially by women and people of color.

(Random shout-out: Mel Chua’s engineering education comics “What is Engineering?” and “What is Education?”)

Three women in Dalek costumes attacking an inflatable Tardis

Re-post: On competence, confidence, pernicious socialization, recursion, and tricking yourself

During the December/January slowdown, Geek Feminism is re-publishing some of our highlights from earlier in the year. This post originally appeared on January 20, 2011.

The other night I went to a hacking meetup for the first time in months. It’s usually an informal Python learnfest, and as I’m refreshing my Python basics, I went with the assumption that I’d be the least technically skilled person there. Like, of course, right?

The hacking meetup that night was, as it turns out, an installfest, so I ended up generally poking around at the software being demonstrated, and conversing with strangers. One in particular caught my attention with a fairly ill-formed question: what meetups should he visit to learn how to make websites?

Over the next hour, as I answered his questions, it became clear that he just didn’t know much, compared to me, about software engineering, or about the wider world of technology or the web. He’s in the second year of a computer information systems bachelor’s degree, and knows his way around a little Java (of which I am wholly illiterate). He didn’t know about the LAMP stack, or about Drupal or Rails or Django (or why one might choose PHP versus Ruby versus Python versus Java versus pick-your-web-friendly-language). He didn’t know that these tools exist, or why one would use a framework or pre-existing CMS rather than coding “everything” oneself. He has never heard of bug trackers, or source control, or diff. He said he did not know what a wiki was (I scarcely believed this, and told him that Wikipedia is a wiki).

As a side note: I gathered that his entire career trajectory and curriculum comes not even from conventional wisdom, but from “I once heard someone say.” Examples: “Why are you doing CIS instead of CS?” “Someone told me that CS majors get outsourced.” Or, more boggling: “Someone told me Python is useless.”

From one perspective, this guy has more technical merit than I do. He has taken an algorithms class. He can probably do a job interview coding question better than I can (reverse the characters in this string, etc.). But I have a fair amount of wisdom he lacks, full stop.

Then there was the guy who was interviewing me to work at his startup. As we walked, he offhandedly mentioned his current project at his day job: a PHP web app needed to be able to turn user markup into HTML. “And you’ve already checked whether MediaWiki has something you can grab, right?” I asked. He stopped in his tracks. No, he had not thought of that.

I need to stop assuming that everyone else knows more about the tech than I do.

We’ve talked a fair amount here at Geek Feminism about impostor syndrome and sexism (my past post). I’m just going to start with a few postulates:

  • In sexist societies, women get especially socialized to think we’re not as intellectually capable as we are, and to act self-deprecating about our abilities
  • In technical spaces where women are the minority, sexists dismiss our successes and concentrate on our missteps

Regarding the latter, I recently reread Abi Sutherland’s “Permission to Suck”, which included a moment of a familiar self-flagellation:

…every achievement is just a mitigation of the disservice I’m doing womankind.

It’s as though my goalposts came on casters to make them easier to move

But of course that is an error in judgment. Our sense of our own merit gets calibrated by feedback from the outside world, but sexism and impostor syndrome get in the way of that calibration. All the tentacles of this issue — the prejudice, the tokenization, the distorted self-perception, the discounting of one’s achievements and comparative lionization of others’ — bother me because they mess with proper judgment.

On an emotional level, I especially hate that anything is interfering with my data-collection and judgment. I am the kind of person who delayed drinking alcohol and took notes the first time she drank, to record any degradation in perceptions and prudence. I delayed getting a credit card till I’d supported myself for more than a year, partially to ensure that I had the correct attitude to judging purchases & debt. And here is this thing, clogging and fogging my mind, which I know is a lie, but which does not go away even when I speak its true name and snap three times.

Recursion Dinosaur

RECURSION DINOSAUR

And a poisonous effect of the socialization is that it turns women’s conversations about the problem into yet another self-deprecation exercise.

“I hate myself for hating myself so much”

“oh god you’re awesome, I have worse impostor syndrome than you”

“No way, your self-confidence is admirable”

“I’m meta-shit”

RECURSION DINOSAUR rawwwrrraaaawr

So I seek lessons and tactics on how to become a less irritating person to my friends, and a more useful and capable person going forward. Some assorted thoughts and ideas:

Five ways you can feel as competent as you really are

  1. Everything in Terri’s earlier advice, especially a shield of arrogance.

    I’m not saying you need a thick skin. That’s maybe true, but it won’t help your confidence nearly as much as the ability to say, “screw you; I’m awesome.” Shield of arrogance it is.

    If you are worried about being confidently wrong sometimes, note that a small increase in confident wrong assertions is a small price to pay for a big increase in capability, correct assertions, momentum, and achievement.

  2. Know that sometimes thoughts come from feelings, not the other way around. The “I suck” feeling does not necessarily have a basis, just as good weather and ephemeral physiology can put you on top of the world. Instead of looking for reasons that you feel mildly down or incapable, consider disregarding them, acting, and seeing if your feelings dissipate.
  3. If you feel compelled to go from success to success, you may not be risking enough. As these entrepreneurs do, try assuming that you will fail the first time you try something.
  4. Every endeavor that anyone has ever done is therefore in some sense No Big Deal, that is, doable. Some people make the hard look easy, but experience and effort make for far greater variation than does innate ability — or, at least, isn’t it more useful to assume so? Watch other people succeed, and watch other people fail. Mere life experience helped me out here, but so did Project Runway, where I saw good people trying and failing every single week. And so did seeing these guys, at the meetup, at the job interview, being dumber than me. I just had to keep my eyes open and it happened, because I am smarter than the average bear.
  5. Notice the things you know. A friend of mine recently mentioned to me that she worries that people perceive her as incompetent if she asks more than two questions about a hard problem via her company’s internal IRC channel. I asked her to compare how many questions she asks and answers on IRC each day. She hadn’t even been considering that ratio, because she’d unthinkingly assumed that what she knew must be basic, and blabbing about the stuff she already knows is easy and natural and unremarkable. But upon consideration, she’s a good peer in that informational ecology, seeding more than she leeches.

This is all corollary to my earlier injunction to make irrationality work for you. We are all monkeys, seizing on narratives and any status signals we can find. Don’t keep the default sexist irrational assumptions get in the way of your confidence-competence virtuous circle. Make your own recursion dinosaur of win.

Google, gossip, and gamification: comparing and contrasting technical learning styles

I just ran across Karen Rustad’s “How to teach programming: shy, practical people edition.” She cared more about making practical things than about what she perceived as “coding,” so her early technical life centered on HyperCard and making webpages, rather than boring faffing about with “mathematical curiosities.” Finally she came across a project she wanted to help, and scratching that itch meant learning more programming:

Basically what revived my interest was having the opportunity to work on OpenHatch. Getting thrown into web app development and all the associated languages and tools — Python, Django, git, Agile, bash and other command line nonsense — all at once? Yeah, it was a lot. But Python out of context is just a toy. Django out of context is plausible, but hard. Git out of context … wouldn’t’ve made any dang sense. So sure, I couldn’t remember half the git commands (Asheesh eventually made a wiki page for me :P) and I had to look up how to restart the Django development server practically every dang time. But I made do, and I learned it, because the context totally freaking motivated me to. Because *finally* code had a purpose — it was clear, finally, how it could be self-expressive and useful to me. Learning these tools meant I could help make OpenHatch exist. Like, fuck yes.

Different people learn in different ways, and for different reasons.

I figure I learn how to tinker in software, especially in open source, via three methods:

  • Google
  • gossip
  • gamification

I learn to search the Net well, iterating on keywords and site: and so on; I fall into or develop a network of folks who won’t think I’m stupid for asking questions; and I play little games with myself, or write them, feeling the thrill of the challenge, leveling up little by little.

I was missing all of these when I tried to Learn To Program.

Continue reading