I’ve been a voyeur into a discussion between teachers about how geeks drive girls out of computer science. Here are some of my thoughts on the subject and how teachers, boys, and girls themselves, can all work to help fix this problem. Please leave comments! Are you a guy or girl in the industry? Then what is your experience? Are you a guy or girl who never even thought about computer science? Why?
Disclaimer, for seven years, I taught APCS in small, all-girls, private boarding schools, so all the kids in my classes were girls. I’ve worked in the industry as a Technical Writer, in Quality Assurance, and currently as a Software Engineer. So there are jobs in the industry for computer scientists (I have a BS and an MS) that don’t involve programming constantly in an office alone.
- Start thinking for yourself.
I know it is hard to take a class that your friends think is stupid or geeky, but trust me, those friends you have in high school will be distant memories, saved in Facebook, in ten years. So where do you want to be in ten years? Bagging groceries in your hometown or having a job you can do in any coffee shop, any where in the world?
- Try everything.
You won’t know what you like until you try it. Have you ever tried programming? No? Well then how do you know you don’t like it?
- Make a difference.
Okay, okay, Computer Science is overrun with geeky boys. I won’t deny it. They are everywhere. But just a couple decades ago, a woman’s place was in the home. There were few women in any industry. So look at it this way, Computer Science is your way to help the feminist movement. Do your part!
- Be different!
You remember Elle Woods in “Legally Blonde”? I know the movie is a little old now, but the thing I like about her most is that she sticks out in the crowd and isn’t afraid to be herself. She is so confident. Be confident. Do what you want to do. Be you. And don’t be afraid to wear pink in a room of black!
- We need you!
How many times have you used an application and something has gone horribly wrong and you blamed yourself? Well, it isn’t your fault. Applications should work seamlessly. They shouldn’t allow you to feel like you screwed up. Can you do better? Can you make an application so easy that your mother could use it? Do you think about details? Do you notice when pixels aren’t aligned properly? Do you think it is important for an application to look sexy and work as advertised? This is why we need you!
- Ask a girl to try APCS.
Do you know a girl who would be really good at computer science? Have you asked her to try taking a class? She needs some convincing. She needs to know that you have her back if the geeks start picking on her. Ask her. Insist that she try it. She just needs some encouragement.
- Get a makeover
So part of that reason that the girls aren’t joining your class is that you might be a geek. Being a geek is cool, but it is even cooler to be a geek who dresses well. Girls like a smart guy who dresses smartly. Find a cool guy to give you some tips. Do something besides play video games. Music, sports, something to make you more well rounded. It will help you get some dates as well!
- Learn about design
Most programmers are just good at programming. Solving a problem. But they don’t care about how it looks. How do you feel while you are using an application? Does it make you happy? It is kind of like cars. You can drive a lamborghini or you can drive an old Ford Escort. Both will get you from point A to point B, but which one would you rather be seen driving? The same is true of computers. They should be functional, but should also be beautiful. Form & Function are both important. So learn about design. Learn about human-computer interaction. It will make you a better programmer.
- Computer science is not just programming
Although, you must be a programmer to be a computer scientist, a programmer does not have to know much about computer science. Programmers are often good at creating applications and scripts from a small set of (or one) languages. This is like building a house with only a hammer. A good computer scientist understands the concepts behind languages, the difference between language paradigms, why one language might be good to use to solve one kind of problem, and is able to quickly learn a new language when the language they need is not one already in their repertoire. One of my favorite classes in college was the study of different programming languages. To me, it is like learning a new human language without having to speak it. Computer Science is also about learning algorithms and data structures. It is about the application of those concepts in things like artificial intelligence, data mining, or networking. Programming is what you do to reinforce learning the concepts, syntax, and semantics of a language.
- IT is also not Computer Science.
And I have found the IT crowd to be much more sexist than the CS crowd. In college, I was never put down for being a woman. I was pointed out as the only girl in my Operating Systems Fundamentals class, but that just meant that everyone wanted me in their group. Whereas, when I was running a school computer system and called our service provider to get help with a denial of service attack, the guy who was supposed to help me blew me off and said it was just because I had too small an internet pipeline for a boarding school. It didn’t seem to help when I explained that it was 2 am. During spring break. I was the only one at school. That is the only time I’ve gotten so pissed off that I asked for a supervisor, who happened to be a woman. She immediately said, You are having a denial of service attack. And then she helped me configure my switches and made some changes on her end. In six years of being a software engineer, I have never had a sexist encounter.
- You don’t need a degree to start being a successful programmer.
Encourage your kids early on to start making shareware programs or iPhone apps. A number of my friends paid for college that way. Some of the most brilliant minds in the industry started as teenagers.
- Teach vocabulary.
Your girls are coming in cold. They have no words to talk about technology. One of the best things I could do was to spend a couple classes talking about how to buy a new computer. What is the difference between a Megabyte and a Gigabyte? What is a harddrive, ROM, RAM, motherboard? What is the difference between Windows, Mac OS, and Linux? What is the history of Unix? They don’t know these things. One of the most rewarding moments I had was after Christmas break when one girl came back and said she helped her grandparents buy a computer, another girl had a conversation with a stranger on the plane ride home about computers. Giving girls a vocabulary is one of the best things you can do for them. Boys won’t talk to them before they learn some basics, but once my girls learned a little, they came back from break and talked about how much they had learned from the boys they knew, now that they knew how to speak their language.
- Remove consequences.
I know this is a generalization (like everything I’ve written), but girls think about consequences, boys don’t. Every year, I would start class with the same question, “Have you ever opened your home computer and looked inside?”
Every year, the answers were the same. No girl raised her hand. So then I asked a follow-up question. How many of you have watched as a brother, male cousin, father, have opened you home computer and done something to it.
Everyone would raise their hand. They were all curious as to what was inside, but every one of them was afraid of the consequences of doing it on her own. What if it didn’t work after she opened it?
So I gave them computers that didn’t work, and I had them tear them apart. We talked about all the parts. They saw how everything was connected. And they didn’t have to worry about putting them back together because I recycled them.
Then I gave them computers and had them insert RAM and ethernet cards. I told them about electrostatic shock and gave them instructions on how to avoid it. Every computer worked afterwards.
Then we started programming. And I took away consequences there by telling them there was no way they could do something that I wouldn’t be able to fix just by erasing the hard drive and reinstalling. So they weren’t afraid.
- Form & Function are important!
- Take a class in Human Computer Interaction
Computer Scientists are notoriously good a solving problems, but bad at design. For a good example, look at a couple different websites and think about which ones you like and which ones you just tolerate. What are the differences between MySpace and Facebook? Between WordPress and Blogger? Dell and Apple? Design matters because it is humans that are using computers. Do you stress that in your class? Are the final applications so easy to use that my grandmother could understand how to use it?
- Get a makeover.
Okay, maybe you already are cool, but odds are against it, since you teach APCS. I should know. I’m still not totally stylish, but I try. This is a good time to find a cool, fashionable coworker, or your wife, to take you shopping. A couple well-fitted button-up shirts without stains on them. Pants that are tailored to the proper length and not worn two inches above your belly button, is a good start. High school is still a popularity contest. Become popular.
- Your classroom style is important too!
It isn’t just you, it is your classroom. Is it inviting for girls? Is it clean and organized? Inviting? The kind of place where girls want to hang out? If not, get a group of cool girls to redecorate it for you.
- Be involved in the school in other ways.
Coach a sport, lead a club. Do something where the students see that you are human! If you get good exposure, you will meet more kids that you can encourage to join your class.
- Do cool stuff.
One of the things that my kids liked was that we took field trips. Of course those field trips were things like the GE Computer Science Competition. I used it as a practice exam for the APCS exam, so I took my entire class of 10 girls. They were rock stars! Not because they would win, but because they were the only girls there. The girls loved it!
Do stuff in your class that will benefit the school. I can’t remember what we did, but in one class, we made an application that I then loaded onto all the computers so that the kids not in APCS could use it and think about joining.
- Take a class in Human Computer Interaction
- Don’t think that questions about quilting are going to get the girls interested.
Girls use computers to work or socialize, not usually for games. When I had my girls pick projects, they were often related to something they were doing in another class, or personal to them. For example, one class was really stressing about learning the periodic table in Chemistry, so we wrote an application that would read in a file I constructed, insert the elements into objects or a data structure, use arrays to store each element, and then write searching and sorting algorithms to get information back out. They all used the program to study for their Chemistry tests. Another class was interested in building an address book, which uses the same concepts as the periodic table application.
- Just because there aren’t girls in a field is not a good reason to think they just don’t want to be there.
These are kids. They don’t know they like writing or history, or math, or science until they try it. They may try it and not like it, but they may love it. We are missing many girls in Computer Science solely because they don’t know anything about it and aren’t trying programming on their own like some of the boys are.
- Teach kids the social part of computer science.
What is the social part of computer science? Well, truth is, in industry, you probably aren’t working on an application entirely by yourself. You probably only are responsible for one little piece of the program, but it has to work with everyone else’s little piece of the program. So design an application and break it up into a couple pieces. Make each kid responsible for their piece and that it works with everyone else’s piece. This is a good end of the year project after the exam. Everyone will be focusing on something different, but they all have to work together to get the whole application to work. They have to explain to other students the objects they are providing, what methods are public, what the inputs and expected output are, and how they can be used. And it is good practice for the guys in your class to learn they aren’t working in a bubble either.
- Talk about ethics.
Having interesting debates about what makes downloading music illegal. Ask them how they would like it if they wrote a program and asked for money but no one paid for it and downloaded it from a file sharing site. These kinds of discussions get girls interested in the class.
- Girls need encouragement.
Ask a girl to try the class. You have to do this personally. And if you don’t think she will respond to you, find a teacher she will respond positively to, and have them ask her to try it. Girls are much more likely to try something if someone else encourages them to do it. I once sat in a group of female heads (principals) of boarding schools. Each woman talked about how it was that she decided to go after the Head of School job. Out of 8 Heads of School, only one of them admitted that she had wanted the job and pursued it. The other seven all talked about having a friend, coworker, or administrator who encouraged them to apply for the job. And every one of them was more than qualified for the position, but was timid about seeking it without some encouragement.