Saturday, January 5, 2008

Alpha Geek mentality

Dear Jenn,

I've talked with you before about how strange it is that only a small minority of computer programmers are women, whereas more than half of the mathematics majors in college are female. (Remember how the Talmage was just filled with women, until you crossed the line dividing math labs from computer labs, and they all suddenly disappeared?) I tend to think it has a lot to do with the competitive, alpha-geek mentality in some segments of the programmer culture, where social status is determined by how much you know and how esoteric that knowledge is, etc.

I read a couple of news stories recently that contrast the alpha-geek mentality with an inclusive mentality. I think you might find them interesting.

1.) This one is from Michael Tiemann, author of g++ (the GNU C++ compiler, although not the author of gcc). He tells of helping his daughter to explore her new OLPC laptop:

[quote] But the real fun began after we started to explore the XO's games. I told her to open Pippy and we played the "guess the number" game. In Pippy, the source code appears on the top half of the screen, and the interaction window (where you enter your name and guess the number) appears on the bottom half. She played the game three times, averaging about 7 guesses per try, and then said "I want to play another game." I suggested she try playing a different game by modifying the parameters to guess a number between 1 and 1,000,000, instead of between 1 and 100. She looked at me with wide eyes. I explained that on the top was a program, the program of the game, and that if she changed a single number in two places, she could change the game itself. She went from a look of "no way" to a look of "OK! What are we waiting for!" in about 200 milliseconds. She started to enter a million, decided that was just a little too large, and changed it to 1,000. She hit "run" and sure enough, the prompt asked for a guess between 1 and 1,000. She looked at me excitedly. I told her to guess, and after 11 guesses, she got it. She looked at me again, somewhat amazed. I told her she had just programmed the computer. I might as well have told her we were going to spend a week in Cinderella's castle--she jumped up, shrieked, and yelled "HEY MOMMY! GUESS WHAT!? I JUST PROGRAMMED THE COMPUTER!" Needless to say there was much excitement. She tried other modifications, including a version of the game she could win every time on the first try. She got her syntax errors, run-time errors, all the other scrapes and bruises one gets on the way to learning how to program, but she was excited, elated, and became confident! [end quote]

2.) In contrast, this post is entitled " Could You Explain Programming Please."

[quote] Being a programmer and the only computer literate person in my family, I get tech support calls from my family all the time. I got a phone call from a brother-in-law today:

Him: Hey, you're good with computers right?

Me: Yes.

Him: And you know how to program computers?

Me: Yes, that's my job actually.

Him: Could you explain programming please?

Me: I'm sorry, what do you mean?

Him: I want to make a game like Halo, but I don't know how to start. Could you explain what I need to do?

Me: You should probably go to the library and get a book.

Him: Can you just tell me what I need to do?

Me: Wait a minute. Are you asking me to explain how to program computers?

Him: Yeah.

Me: Over the phone?

Him: Yeah.

My brother in law apparently made several unsuccessful attempt to "learn programming" by opening up exes in Notepad. He created a text file with the words "Morph the screen into something cool" and couldn't figure out how to run it, even had the [nerve] to ask me "how do I install my program? Do I just put a shortcut on the desktop".

My dad, a programmer, lent him an unfortunately titled book called "Teach Yourself Java in 24 hours". He immediately flipped to the back of the book and reading sections on server and Swing development, and was very excited to see that he could write his own server after just one day.

In the end, I was unable to teach my brother in law how to make his own Halo over the phone, and he decided that I wasn't a very good programmer. [end quote]

Now to be fair, this second poster appears to have been caught flat-footed, and perhaps if he were given a second chance he'd have done a bit better. Nevertheless, there seems to be an air of disdain and incredulity here, as if to say, "This fellow has no business trying to learn the High Art of programming. It takes years of dedication to master, and he wants me to teach him over the phone! What an imbecile." As it turns out, this attitude isn't even true--Python is an excellent language for teaching novices to make their computer do useful things, as the first example illustrates--but it's pretty hostile and, in my opinion, immature. To paraphrase Mark 2:27, "Computers were made for man, and not man for computers." To the extent that regular people can't make computers do something useful, it's a failure or at least a limitation of those who provided the computer; making computers easy to program is just an extension of providing useful built-in programs.

One thing I like about the Open Source movement is that it fosters this inclusive attitude. Not perfectly, probably, but I see a lot of good attitudes out there. Oddly enough, that makes them allies of Microsoft, although with a radically different approach. My understanding is that Microsoft was founded specifically because its founders wanted to get computers into the hands of regular people (as opposed to corporations with mainframes and minicomputers) so they could do cool stuff. Jerry Pournelle contrasts Windows with Unix: "Unix is a full-employment act for Unix programmers." Windows has tried to be a user-managed system that doesn't *need* you to be a professional Windows programmer to manage and use it. Perhaps that's an intrinsically difficult goal, and you can argue about how well it has accomplished that, but I think it's a laudable goal.

Give it ten years, and we'll see if Microsoft, Open Source, and their assorted unlikely allies have managed to bring the real potential of computers to regular people. But I suppose that's a topic for another day.



"The presentation or 'gift' of the Holy Ghost simply confers upon a man the right to receive at any time, when he is worthy of it and desires it, the power and light of truth of the Holy Ghost, although he may often be left to his own spirit and judgment." --Joseph F. Smith (manual, p. 69)

Be pretty if you are,
Be witty if you can,
But be cheerful if it kills you.

No comments: