This has nothing to do with women in tech. It has to do with specialization vs. generalist.
The image of the ultimate hacker assumes a specialist. 100% focused on their expertise. It could lead to a great coder. but a company will also need someone with a decent technical background who can also relate to the end-user for instance, or align more than one sentence when a customer calls. That would be more a generalist.
I don't think it's a specialist/generalist thing. I think it's a "do you have interests outside of programming" thing. In my experience, the image of the ultimate hacker is someone who eats, breathes, and drinks programming (which used to be me). As I've grown older, I've learned to appreciate the value of learning things outside of programming.
'value' to who? You yourself and your direct environment, presumably. How much did your other interests contribute to your software skills? Maybe a bit, but not as much as other skills would have that you could (with directed effort) have learned in the time you spend on other things.
I'm not saying it's wrong, I too live my life for myself, not for others, and not to be the very best developer I could potentially be at the exclusion of everything else. I like to do things outside of software as well, every now and then. But that doesn't take away from the fact that I could have been better if I'd spend the time on it.
So, 'the ultimate hacker' (as in, 'the theoretical ideal of the very best developer') is someone who eats, breathes and drinks programming (or at least 'software development' in the broad sense). Socializing, a family, learning macrame - all of those things do not add to being the ultimate hacker.
> Socializing, a family, learning macrame - all of those things do not add to being the ultimate hacker.
When you build stuff for the outside world to use (software, architecture etc.) then knowledge of the "outside world" is of extreme importance. You being the "ultimate hacker" or the greatest architect since Phidias has no importance whatsoever.
I agree. But your point is not at odds with my point. Just taking a macrame class to 'learn about the outside world' is not the most efficient use of time. What I meant was (it was implied my 'with directed effort' sideline) that there are ways to learn about what you need to build from specific focus on those things. You don't have to have family picnics each Sunday to learn how to best design something for 'the outside world'. When you recognize you need to know something for the audience you're building for, you can study that specifically, you don't need the rest.
Of course it's much nicer to go on Sunday picnics and solve cognitive dissonance between 'I want a personal life' and 'I want to be the best at XYZ' by rationalizing it as 'oh but these non-specific activities will make me a more well-rounded person, which will make me better at 'XYZ'. In itself that's OK, humans need such rationalizations otherwise we'd go crazy in no time. BUT, just because we use those rationalizations, that doesn't mean we shouldn't recognize them as such.
So, after this detour ;), my point is: having a family, socializing etc. are not necessary to know what you need to know about the outside world to be the best at anything.
Sure they do. Because if you don't socialize, have a family, and learn macrame, then you'll have a nervous breakdown before you get to be a great hacker.
I agree, it's not a roadblock specifically for women. I did software engineering (not cs) but the 4 year course is basically strictly engineering (with a large overlap with doing cs as science). There's no scope for electives. You want that particular degree, that's the road you have to travel.
There are other options, like CS could be done as an arts degree which would give you more scope to choose other electives, and presumably socialise with people who do likewise.
The year I did eng, there were a lot of women in the class. Other years, not so much.
The image of the ultimate hacker assumes a specialist. 100% focused on their expertise. It could lead to a great coder. but a company will also need someone with a decent technical background who can also relate to the end-user for instance, or align more than one sentence when a customer calls. That would be more a generalist.
It's ok not to want to be a domain expert.