Programming isn't a question of gender. There isn't a way that a man writes code versus a way a woman writes code. But there are differences in how we learn to program, to the point that, for women programmers, it's crucial to have a community of other women to learn from. The same, by the way, can hold true for anyone, but I can only adequately speak to my own experience — I don't have the right to speak for anyone else.
In this article, I will recount my own experiences as a programmer, which have shown me that there's a difference in a woman's ability to learn a technical topic when she is learning it from a group of other women, especially when she's used to being one of the only women in the room. There's a clear improvement, both in our comfort in discussing a topic and in using our new knowledge.
Creating a Comfort Level
My first programming class was in college; I took Intro to Java with thirty male classmates. The professor and TA were also both guys. I didn't think much of the situation; my hobbies and interests meant that I was already used to being the only woman in the room. But, looking back, I didn't go to the professor or the teaching assistant or even my classmates for help with the class. I went to a female friend of mine who was a few classes ahead of me.
Of course, one-on-one tutoring is bound to help with any class. But I also felt more comfortable asking questions of my friend or talking through the underlying concepts. I'm not prepared to analyze exactly why; in the years since, I've formed some new opinions that color how I remember that class. I do know, however, that being comfortable with the person teaching you is critical to actually learning the material in front of you.
For many women, a room full of guys isn't comfortable. Even when the number of men and women are close to equal, not everyone will be comfortable raising their hands. Having someone that you can go to with questions is critical to success in most fields — not just in computer science. Finding a mentor who you are comfortable with is often a subconscious process of looking for an advisor who you share characteristics with or who you feel similar to. I went to another student because I did not feel as comfortable asking questions in class or going to the professor privately.
Programming isn't an easy skill to learn. For every coder who is proficient in a matter of days, there are ten more who take at least a month to move past "Hello world!" Finding a way to help students feel comfortable asking questions isn't going to automatically make it easier for everyone to learn how to code, but it does remove a major stumbling block. It's the low-hanging fruit that clears the way to tackle harder pedagogical questions.
Understanding the Larger Community
I've found that workshops are incredibly helpful when learning a new programming language. I'm not one of those people who can work through a few tutorials and magically connect all the dots on her own. But all workshops are not created equal, in part because of who is available to run those learning experiences.
Even among workshops run specifically for women, there's significant variation. The most successful workshops depend on having mentors scattered throughout the room to help learners try out the material being taught, as well as workshop leaders who are responsible for guiding the group as a whole through the tutorial.
I had the less-than-ideal experience of attending a workshop where the leaders and learners were all women, but the mentors were local experts who happened to be men. There were several incidents of the mentors countermanding the leaders or the workshop materials (which had been written by another set of women and had been thoroughly tested), without even realizing that they were doing so. The changes these members suggested were generally too advanced for the workshop attendees and — at least once — seemed to serve no purpose beyond one mentor wanting to prove that he knew more about the topic of the workshop than the leader.
There are some arguments about whether the community around one language or another is more welcoming in terms of diversity, but I've attended similar workshops on the same language where those kinds of problems were not present. The factors involved in both local communities and the larger communities that evolve around a particular programming language or technology are too complicated to say for sure that a given group is more welcoming to women.
But there is clearly a value in a learning environment where it's possible to staff an entire workshop — mentors and all — with women. In my own experiences, such workshops have been more effective. At the very least, I come away feeling that I've had a chance to work through new material without having to deal with conflicting explanations from the workshop leader and a mentor. Of course, conflicts can occur independent of gender, but they do seem to happen more often with female leaders and male mentors.
I'm an active member of PyLadies, which is a Python community specifically for women. The overall organization is international, but each local group can choose how to operate. The local group in Portland (where I live) regularly holds our own workshops, relying on our own community to provide experts and only occasionally bringing in help from the larger Python community in Portland. I've been present for some discussions on who can and should be involved with PyLadies — such as at which meetings or workshops anyone who does not identify as female should be welcome. It's not a simple decision, but I think that the commitment to a women-only policy can be beneficial.
Using the Right Language and Examples
In addition to learning directly from other women, the actual materials we depend on to teach programming and related topics is an important factor as well. In order to be able to understand concepts, explanations must use language and examples that we're already familiar with — no matter our gender. But there are some differences in the explanations you'll hear for key concepts in programming, depending on the background of the person teaching the concept.
One of the benefits of having access to a community of women programmers, at least for me, has been that I'm more likely to talk to someone with a somewhat similar background to my own, who can explain a concept in a way that I find more accessible. Something as simple as changing the metaphor with which you explain an idea can have a major impact.
If you're familiar with the reversion control tool git, for instance, you may have used rebase, which allows you to roll back changes made to your code, add in a different layer of edits and then roll those changes out again, combining updates to make a new version of your code. When I was first learning git, I kept running into descriptions of rebase that compared it to a knife or a cleaver, in that it allowed you to cut things apart and put them back together again. That explanation just didn't make a lot of sense for me. It wasn't until a discussion with a few other PyLadies members about how rebase is more of a seam ripper — you can pull out the stitches holding changes together and sew the pieces back together again in a different pattern — that the concept made sense to me. That's not a comparison that you would get from anyone without some familiarity with sewing, of course, making it far less likely to come up in a group of men.
There are plenty of ways to find other programmers who you may have common ground with and who you can learn from, without using gender as a filter. But it’s hard to argue against turning to other women for this part of your technical education — especially since some programming communities are unwelcoming to anyone who seems different and doesn’t already know how to code.
Planning for the Future
In an ideal world, I wouldn't be writing this post. There'd be no need for organizations like PyLadies or separate learning opportunities for women. Everyone would get along, without any assumptions about who can learn, share and use technical skills. But we live in the real world, where gender plays a role in our interactions — even when dealing with organizations and individuals with a stated goal of bringing more diversity to programming.
Having access to communities that we are comfortable in is crucial to learning how to program, as well as for keeping those skills active. Whether you're contributing to open source, building your own product or otherwise working in a technical field, having support makes the difference in whether you can keep moving forward.
There are already established communities of women around many programming languages. Consider becoming a member, whether you're new to programming or you're at the top of your game. After all, these communities require top-notch programmers to provide mentorship and training if they're to provide newer coders with useful help.