Skip to content

Comment on Tech's Gender and Race Gap Starts in High School

Comments

I had a bad experience with my high school computer science classes (both the AP Java curriculum and a teacher-designed curriculum). No one learned anything in that class: You either already had some experience with programming and were thus far beyond the scope of the curriculum, or didn't know anything and were introduced to difficult new ideas by a horribly designed curriculum and ineffectual teacher. `What does "public static void main (String []args)"[1] mean? Why do I have to write all that?` `It's what you put at the start.` `This is stupid, I'm going to play Quake and copy someone's work later.`

It was a pointless and discouraging experience all around. The only people who came out of those classes and actually did anything related to technology were already learning on their own in the first place. A neutral effect at best, more likely negative.

I'd explain further, but instead of complaining more about my specific experience, I'll just get to the point: the problem is not that the high school compsci curricula are somehow biased against people that aren't white and male, it's that the curricula are totally fucking useless and aren't teaching anyone anything. The only way to do "well" in them is to have preexisting programming knowledge, which just happens to mostly exist in middle class boys privileged enough to own a personal computer.[2] The whiteness and maleness of the kids in these classes is not the problem, it is a symptom of a greater problem.

I think to fix the gap, you have to introduce some level of computer science education in elementary school. If you just leave it to kids to discover the magic of computers on their own, it shouldn't be surprising that most kids won't, and the ones with opportunities to use computers at home get a huge head start.

The other thing: We need people in "tech" to be selfless and sacrifice their cushy salaries to contribute to education. My teacher barely knew how to program, and couldn't teach worth a damn either. One memorable moment that stunted my growth as a programmer for a while: She actually, I shit you not, told us that all the programming jobs were being offshored to India and that we shouldn't bother. We believed her. If that is the kind of teacher that we have introducing kids to computer science, there is clearly a problem, because just about any CS undergrad could have done a better job. Given enough freedom (that is sadly nowhere to be found in our bureaucratic education system), they could easily design a curriculum that goes far further than the AP curriculum while being more approachable and more exciting. Here's a start: Ditch Java for Python, Lua, or even (barf) Javascript. Here's another idea that can start as early as elementary school: Give kids ~50 megabytes on a web server and teach them to make their own personal static web pages by hand in HTML, Geocities-style. And another: either ditch Windows XP, or configure the systems so that they aren't completely locked down and impossible to do anything on.

I think you see my point here: These are ideas that should be totally obvious to anyone who cares about education and has basic programming experience, that could make a big difference with very little effort, yet no one is doing anything like them at all. This suggests that there are systemic problems that will not be easy to correct: the early education system is hopelessly bureaucratic, the tech industry has no voice in it, that smart programmers aren't altruistic enough to give up relatively large salaries to work for education...

If I seem bitter about this, it's because I am. My education system (and I suspect many others) only focused on improving the racial divide, barely making any effort to improve curricula, hire better teachers, or think outside of the box in any way, to the detriment of everyone.

[1] I don't speak Java, did I get that right?

[2] It's not just about middle class privilege, though: When I was in school, I think it was actually more common for girls to have personal laptops than boys, probably because parents believe that "if you give a boy a computer, he'll just look at porn all day." Yet still there were very few girls truly interested in computers or taking the computer science classes.

From what I saw in high school and college, the biggest factor in determining whether someone stayed with CS was the quality of the first class in CS. I had a kickass high school CS teacher and he got me off to a great start. In college, some of the 100 level professors were shit, and as a result I knew of a lot of people who decided CS was not for them.

I think improving high school CS classes will make a big impact on students going into the profession.

I think we as professional developers could probably help a lot by volunteering at schools to help give kids exposure to the practical applications of Computer Science, which I think it's far more compelling than just trudging through textbooks. I also think that could give kids access to internships and mentors they wouldn't normally have.

I agree with you 100%. As a former teacher and now professional programmer and volunteer tutor, I have some advice for anyone interested in getting involved: Just show up.

Go to the front desk of the nearest high school and explain you are interested in volunteering as a tutor. They will be very confused and ask what group you are with. They will want to know who you expect to sign off so you can get your "service credits". Just smile and explain again that you are simply interested in volunteering as a tutor. Ask if there is a math, physics, or chemistry teacher you could speak to. Such faculty are usually technical enough that they will at least understand the value of what you are offering. Expect to have to wait and put in a great deal of work before you can even start. Expect to fill out a "CORI" form to check for criminal background. Expect every new person you encounter to be somewhat baffled by the fact that you are not with a group. Expect some to think you are some kind of auditor and be very wary of you. And then, when you are finally sanctioned and scheduled for an afternoon or two a week, expect absolutely no students to show up. Don't quit. After three weeks, if kids still aren't showing up... don't worry, that's normal. Somewhere around a month and a half in, you will be normal enough that you may get some takers. But still you will have to be very outgoing and sell the free service you are offering. Eventually, if you are absolutely consistent, you can get a core group of kids that work with you every time, and it's a hoot.

I love my time tutoring. You should do it too.

The computers at my school are also locked down to the point of uselessness. I have to bring my own laptop every day I need to do any sort of programming, which isn't an option for a lot of people.

Fortunately, not all high schools are like this.

Mine had 1 classroom devoted to computer classes. These computers were Windows NT workstations. Students logged in with normal accounts (not administrators) but there were no other restrictions.

That isn't to say that they didn't lock down any computers. They did. The library computers were essentially chrome books. All you could do was run IE and Word.

I think that starting kids earlier would be a massive improvement. A kid's first exposure to any interesting subject shouldn't have to be a college level course. Would we teach math that way?

Teaching programming in grade school would be so much better. If kids are 10+ years away from hitting the job market, in an area where technology turns over every 5 years, then we don't have to pretend that we're teaching them a job skill. This gives teachers the freedom to teach things within their own limited skill sets, and to have fun with it.

A kid's first exposure to any interesting subject shouldn't have to be a college level course. Would we teach math that way?

University was when the fun math started for me. :)

A kid's first exposure to any interesting subject shouldn't have to be a college level course. Would we teach math that way?

I don't get it. We do teach math that way (unless you think that all math classes are just blobs of an undifferentiated "math" whole).

We don't completely ignore math until high school, suddenly say "so there are these things called numbers," expect to get along to algebra in one semester, and then throw our hands up in the air when that doesn't work out.

At first they are. This is different than the way I learned math as a kid. Today (at least at the elementary school that my kids attended), math starts out with relatively undifferentiated exploration, and hops around from one topic to another. It gains rigor more gradually.

AboutSource Built by g1lg1l

Hackerly is an independent reader for Hacker News, built on the public HN API. Not affiliated with Y Combinator.