Hacker News new | ask | show | jobs
by Falling3 1865 days ago
I felt very out of place in my college CS classes. I picked up programming my freshman year and switched to CS from my original major. I was completely green while so many other students - what felt like a majority - had been programming for years and were already extremely familiar with many of the concepts and tools that I was just being introduced to. It was rough for me to feel like I was starting out at such a disadvantage.
2 comments

I was just thinking about this more, and CS programs kinda remind me more of college sports programs than traditional college majors: if you haven't spent years playing the sport before going to college, you're probably gonna have a bad time. Can you still do it? Maybe, but... damn, it's going to be hard, and take some unusual levels of determination.

Of course some of the problem is that CS programs use computers so much. Which I know may seem like a silly complaint, but I think the fundamental issue is CS-the-science being mashed together with what's really a vocational program (which is what 99+% of students and employers actually want out of it, and its being "real" CS is mostly just an IQ filter). I imagine if you go into, say, a junior college HVAC program not knowing which is the business end of a screwdriver, you'd also be at a big disadvantage compared with most of your peers, and probably feel really out-of-place for quite a while.

Sports or the arts. You probably don't major in music in college if you've never touched a musical instrument.

I took MIT's "Intro" to Programming and Algorithms I think it was called (6.001). I'm not a professional developer but I've written a fair bit of code including Python which is what the class used. I'm pretty sure that, as an undergraduate, had I never seriously used a computer command line before, there is no way I could have gotten through that course.

The same dynamic is largely missing from other engineering courses, as well as the sciences, which don't really expect more than high school classroom work, an interest, and general aptitude.

And it's certainly true that CS (the math degree) gets munged with CS (the engineering degree). MIT's a bit more engineering focused (the degree is in the engineering school). There are also some variants of the degree that are more or less engineering-centric.

To dip my toe into somewhat-dangerous waters, I suspect that if there's a major and highly effective filter other than simple interest (as some data re: more- and less-restrictive societies suggests) keeping women out of CS, it's mainly this preference (by CS programs) for experienced long-time computer geeks in CS freshmen classes, and hostility to those who aren't. Which is still, kind-of, an interest-related filter, but a bit of an odd and harsh one that punishes not having taken a strong interest very early.

You're not going to meet that kind of abrupt and early resistance on the path to becoming a doctor because you didn't spend tons of your free time as far back as junior high reading anatomy books or practicing dissection, for instance.

I don't think it's the only factor but it's been my belief for a long time that it's one factor. If you assume 18 year olds entering CS programs started to widely use computers and game consoles as kids in the mid to late 80s, that lines up well with the decline in women entering CS. [1]

Again, there are almost certainly other factors, and correlation is not causation, but there is at least logical correlation.

To your broader point, a lot of kids enter college with only a broad idea of what they want to do. And high school courses don't really offer much guidance. High school science classes have very little to do with their counterparts at good colleges.

[1] https://www.aei.org/carpe-diem/chart-of-the-day-the-declinin...

Right, agreed on that not being the only factor, but I do think it's suspiciously-sufficient-looking to explain why CS was becoming a boys' club even as women were reaching parity with men in terms of proportion-of-the-sexes in medicine and law, and to some extent business more generally. "Computer nerds are so remarkably and uniquely sexist that they not only avoided this trend, but sharply reversed it" has never... quite rung true to me. Again (because you have to over-specify on this topic or risk angering people) not because there's no sexism among computer nerds or computer companies, but just because I don't get why programming/CS would be uniquely afflicted with that, to such an apparently huge—in order to explain the sharp difference—degree.

Meanwhile there are definitely a lot of gatekeeping-assumptions about childhood interests in modern CS programs, which one would expect to have gotten stronger as more and more freshmen actually could have had experience with computers on their own—so, starting with late-80s freshmen, mostly, with the effect getting stronger fast after that. That lines up so well with the data on CS-program-enrollment-by-sex that it seems to me like the factor to examine before we go looking for other explanations. Again, to be excessively explicit due to the topic, I mean this in terms of accounting for the gender gap in programming, not in terms of addressing any other issues of sexism in the industry, which I am not denying exist.

There are some fields--notably within engineering, mechanical engineering--where women have historically had low participation. But one probably doesn't need to examine gender stereotypes too deeply to see why that might be the case. But there haven't been the large shifts there we've seen with CS.
> You're not going to meet that kind of abrupt and early resistance on the path to becoming a doctor

It's much more inclusive indeed. If you can afford the mandatory completely unrelated undergrad you need to have completed to even apply to med school and the travel fees to attend your in-person interviews of course.

Yeah, the educational commitment is definitely much higher. I just mean they don't expect you to have put hundreds of evenings, Saturdays, and Summer afternoons into wholly-self-motivated learning about the field by the time you're 18, or else have a very rough first couple years.
> I just mean they don't expect you to have put hundreds of evenings, Saturdays, and Summer afternoons into wholly-self-motivated learning about the field

No, instead it's unrelated to the field so you can grind fractions of GPAs against other applicants. At least, CS is kind enough to let everyone try the real thing.

> I'm pretty sure that, as an undergraduate, had I never seriously used a computer command line before, there is no way I could have gotten through that course.

They don't call it the firehose for nothing. [0]

[0] http://hacks.mit.edu/Hacks/by_year/1991/fire_hydrant/

I'm very well familiar with the firehose :-) But mechanical engineering there, for example, did not require anything more than 1.) The ability to get into MIT and 2.) The normal high school curriculum. It didn't require years of experience in stripping down engines and rebuilding them. and, OK, 3.) Dealing with the firehose. :-)
> I picked up programming my freshman year and switched to CS from my original major. I was completely green while so many other students - what felt like a majority - had been programming for years

There's been some research on this and places like Harvey Mudd solve this basically by dividing the incoming freshmen into 'has any experience at all programming' and 'completely new', which was like 50-50 if I recall. And then tweaking assignments to not be video game focused -- pulling in problems & themes from bioinformatics and other fields instead.

>And then tweaking assignments to not be video game focused

Our only program of any significance in CS101 was a space invaders clone, but because we were so inexperienced, they provided a project template where we really just had to fill in some methods with a bunch of for-loops. When we got to the later courses and had to write our programs from scratch, we really had no idea where to begin because the 101 coursework had done all of that for us.

The video game assignments were asinine because they were beyond our skill level to do from scratch, so their templates handled all the I/O for us and that part of the program was treated like a bunch of magical incantations. As a result, we never fully internalized how all the moving parts fit together, and it kept us from learning useful stuff like how to read/write from files or execute system commands.