Hacker News new | ask | show | jobs
by stilkov 4471 days ago
"The trope of 'software as a highly abstract, intellectually demanding, nearly mathematical activity' contributes to a myth of software development as a profession 'naturally' dominated by males: math is the subject of its own interlocking system of tropes, myths and stereotypes that paint it as a manly pursuit."

That logic seems to be all backwards to me. Of course developing software is a highly abstract, intellectually demanding activity. Claiming it’s not is as absurd as claiming women are somehow incapable of doing exactly that.

1 comments

> Of course developing software is a highly abstract, intellectually demanding activity

I don't mean to sound harsh, but "of course" and "it's absurd" aren't much of an argument.

My advice is to dig into this a bit deeper. What do you think makes software "a highly abstract, intellectually demanding activity"? What would the world look like if that were NOT the case, what would it look like if it WERE the case?

How does this claim coexist with that, which has been bandied about for decades, that software programming is on the brink of being automated away?

How does this claim square with sites like the Daily WTF, which provide evidence that many gainfully employed programmers do not, in fact, use their brains very much? With the more or less weekly announcements of "security breaches" caused by people ignoring basic best practice, for instance storing passwords in plain text?

How much mathematical(ish) ability is actually needed to put together a Web page, a bunch of CRUD fields, and some backend database template?

Why is it so easy to get a job writing software even if you have no formal credentials at all? How is it that some people can get these jobs even if all they can do is write a Web page, and that badly?

It's possible that our experiences differ: that for you software has been abstract and demanding. (I can see people who write kernels for a living getting the "of course" reaction.) Whereas I've often rubbed shoulders with the world of "IT programming", with self-taught games programmers and Web programmers and people who turned a half-baked idea and their gift for the gab into multimillion dollar businesses.

Whenever I did my homework and dug into the facts, I found that things that "of course" held true weren't all that obvious. I'm trying to encourage people in the profession to get into that habit.

> as absurd as claiming women are somehow incapable of doing exactly that

Yes, I too see that as a false claim. Do you deny that there are people out there who are in fact making that claim?

>How does this claim square with sites like the Daily WTF, which provide evidence that many gainfully employed programmers do not, in fact, use their brains very much? With the more or less weekly announcements of "security breaches" caused by people ignoring basic best practice, for instance storing passwords in plain text?

I take many people being bad at programming as evidence that programming is hard, not that it's easy. Maybe it's evidence that getting a programing job is easy, but that's not the same thing.

> I take many people being bad at programming as evidence that programming is hard, not that it's easy.

We are in violent agreement. Note that "hard" is not the same as "abstract and intellectually demanding". Running a marathon is hard. Becoming a US Marine is hard. Many things are hard that do not primarily require quasi-mathematical skills.

For that matter, finding gravitational waves is hard but may be just as much about investing enough money (think space-based laser interferometry) or just plain luck.

The ways in which people suck at programming are much more diverse than just a failure of abstraction, otherwise we would all be writing Haskell.

These ways include failure to ask what the user or sponsor wants, failure to make sure we've understood what the user or sponsor said, failure to communicate with other members of the team, failure to question the things we learned in school and always took for granted. All of these are common failure modes in the biz, none of them are a failure of abstraction.

In fact excessive or premature abstraction is a widely recognized failure mode of software engineers, and the myth is responsible in good part for that.

You didn't just say "highly abstract", you also said "intellectually demanding". You only seem to be addressing the "highly abstract" part now. All of the failure modes you mention sound like failures of intellect to me.

Also, common failure modes of people working as programmers != common failure modes of people trying to become programmers. Even if most people working as programmers understand the abstractions involved well enough to function (and I'm not certain that's actually true), the abstractions may still be too much for many other people.

>In fact excessive or premature abstraction is a widely recognized failure mode of software engineers, and the myth is responsible in good part for that.

Part of really understanding abstractions is knowing when not to use them. And since, as you say, many people have trouble with that, understanding abstractions must be tough.

I take it as evidence that we are doing it wrong. I can only hope that in 50 years time people will look back and wonder how we managed to get it so wrong.
> How does this claim coexist with that, which has been bandied about for decades, that software programming is on the brink of being automated away?

Now there's a good myth. Unless you really think programming could be "on the brink of being automated away" for over half the time its been around?

In which case, where can I bet against this theory?

Not all of programming is CRUD web apps.
I honestly think a lot of you have gone plainly insane from years of Internet arguing, and can now write verbose devil's advocate arguments for absolutely anything.