- Imagine what it’s like to be constantly receiving these subtle messages from your colleagues, that something is wrong with the idea that you work here, that you are attending this event, that you are in this classroom. You wonder if maybe you made a mistake when you thought this profession was a good match for you, because as everyone keeps pointing out, you don’t have the expected background, or the expected personality traits, or the expected opinions about things, or the expected head start. On their own, each subtle message might simply be a harmless doubt, but at the scale with which we’re sending these messages, we might as well be brainwashing people into thinking that they don’t belong here.
Tech culture is garbage and it's always been garbage. Being a minority in tech is like getting a PhD in being ostracized as much as possible. It's like a hatred hamburger with "different than me" labeled condiments. Sometimes people forget I'm in Computer Science, both in person and on hubski. "You don't talk about it very much 8bit." Yeah that's because I fucking hate being associated with that shit so I just keep my head down, do the work, get the grade, and get on my way. Besides that, Tech conversations are so goddamn boring. "Python sucks. No, Java sucks. No, PHP sucks. No, Ruby sucks." Either that or they're talking about League of Legends. It's a culture that fosters "I know what I'm talking about better than you", even though there's no right way to handle any situation considering it's a concept that never ends. Codebros compare lines of code like its penis size in the Comp Sci help room so damn often that I started asking my professors if I could meet them outside of that room for help just so I could get away from it. The reason why the stereotype is that you have to be a white male nerd that loves videogames and programming is because you have to be a white male nerd that loves videogames and programming, or else they don't take you seriously. I've been to enough start-up meetings and "code camps" and all that other bullshit to know that I don't belong there. I wanna gag every time I walk in the room. And if I don't want to gag the minute I walk into a room, having some dude come up to me and say "what's up, my brother from another mother" not only makes me want to gag, it makes me feel like I'm in a fucking Key and Peele sketch. My brother recently asked why I don't have any friends in college. He's only half right. I do have friends, they're just not in CompSci. They're in English, Philosophy, Anthropology, hell, even Business. But it completely destroys your thoughts and trust about these people when one minute you're playing Smash with a CSCI Major one minute, and the next minute you overhear him saying that Trevyon Martin "probably deserved it." Or when they ogle at my female friend so hard that she comments on how uncomfortable she feels around them. Fuck that noise. insomniasexx ping because I remember when she took a programming class and had to take a month-long shower afterwards.
Yup. The elitism is ridiculous. I'm not in comp sci but I do a lot of stats and some ML here and there in R and Python. My code isn't the most beautiful thing in the world but it gets the job done. I know not to bring this up with computer science majors anymore because they just go crazy. From the way they talk you'd think I'm literally Hitler for programming without having a CS degree.It's a culture that fosters "I know what I'm talking about better than you", even though there's no right way to handle any situation considering it's a concept that never ends. Codebros compare lines of code like its penis size
- Bill GatesMeasuring programming progress by lines of code is like measuring aircraft building progress by weight.
I majored in CS (and am now getting a PhD in it), and guess what? Actual academics in CS also write shitty research code! Those undergrad CS majors you're talking to would be horrified by some of the code I've written, and even more by some of the code I've seen out there. The only thing I'd recommend is actually reading some good code (hopefully in your area of interest), just so you get a feel for some efficient patterns that are readable and intuitive and useful for your work.
:') I feel less alone now Wow, that's a really good idea, I hadn't thought of that. Time to creep through my labmates' and advisor's R scripts on the server...Actual academics in CS also write shitty research code!
The only thing I'd recommend is actually reading some good code (hopefully in your area of interest)
It definitely has not "always been garbage." Your expiriences are not how it was when I was in school. As there is more and more money in tech "brogrammers" are slowly taking over, pushing the nerds out and making it hard to distinguish the sincere from the greedy. The data backs up what I'm saying, women in tech were over the 30% in the 70s. I hope you hang in there, we need more people like you. It's funny, people think the lack of women in tech only effects women. But the truth is this "alpha male only" attitude hurts men too. There's tons of valuable engineers who get overlooked because they aren't hyper agressive A types. I think things are improving, but slowly. Keep trying to find other friends in your major. My study buddies ended up being friends for life, and having support in your field is invaluable. Maybe check out local hackerspaces, or volunteer with a tech nonprofit. Plenty of nice engineers are out there, just a little harder to find right now.
This has been my experience during most of my university time, too. I didn't realize it, though, until everyone was into something I wasn't, namely League of Legends. I tried to bring my wife to a group outing with some friends and we ended up just sitting at another table talking to my one friend in MBB because everyone could just not stop talking about LoL. Had some hard reflection after that.Besides that, Tech conversations are so goddamn boring. "Python sucks. No, Java sucks. No, PHP sucks. No, Ruby sucks." Either that or they're talking about League of Legends. It's a culture that fosters "I know what I'm talking about better than you", even though there's no right way to handle any situation considering it's a concept that never ends.
I used to phrase what I thought were helpful tips in this way. I thought that by phrasing it as a question, I was showing that I wasn't making assumptions about the other person's level of skill, and was leaving room for them to know better than me. What is the better way to phrase it? "You should put this in a function." - I seem presumptuous, arrogant, patronizing. "Why not put this in a function?" - Implies "the other person is somehow strange for not having arrived at the same conclusion." "If this were in a function, the code would be easier to read." - Implying that the code is hard to read. Giving advice to colleagues who lack skill is something that I have no idea how to do in a sensitive way, and no one ever tells me how they'd like me to do it. This article points out a serious problem in tech culture, but offers no solution while at the same time implying that the solution is obvious. As I write this, I realize the irony in the article: The sentence commits the very sin it criticizes. How meta! I like it for the empathy it elicits, but I churn inside with the feeling of being oh so close and yet so far. How do I phrase criticism of code as a helpful tip? I can read all the MVC articles in the world, but they don't do me a lick of good if they don't have concrete suggestions for how I should change my behavior aside from "stop doing X". I readily follow "stop doing X" advice so long as X is not essential to the job. But I can't just stop helping people improve their code.“Huh… why didn’t you just turn this into a function?” Comments that could have been phrased as helpful tips are instead often delivered in ways that imply the other person is somehow strange for not having arrived at the same conclusion.
“Huh… why didn’t you just turn this into a function?” Comments that could have been phrased as helpful tips are instead often delivered in ways that imply the other person is somehow strange for not having arrived at the same conclusion.
(Sorry, I have not read the article yet, but I DO perform a lot of code reviews)
"This logic is repeated here and here, so if it's put into a function, then if we ever need to change that, we change it in one place."
i.e. tell them why it should be in a function.
I like this. It's difficult for me to generalize from examples like this, though. I am terrible at giving code reviews to people who aren't good at receiving criticism. I hesitate before making statements, which gives the impression that I think something's bad with the code, which is TRUE, but I don't know how to soften the blow. How do you handle people who take criticism of their code as an attack on their identity?
It's a hard problem. I had an instructor at Uni that gave some advice in this regard that has stuck with me (which probably won't help you much, but there you go). People don't like their code criticised because they see it as an extension of themselves, so, if you can, try instead to think of your code more as your child - it needs to be strong to survive when you're not around; and criticism helps make your child stronger. Separate it from your identity and some of the sting goes away. This really only helps in taking criticism, though.
I find it helps (a little) to do code reviews through tools instead of face-to-face. Smart Bear software have a pretty good (and free) code review tool. And try to only criticise things that matter; resist the urge to nit-pick as much as possible. Have a coding standard, to help justify your critiques and make it less personal.
Giving helpful criticism is difficult, sometimes I think it has to do more about tone and the relationship between the people involved. Having a relationship of respect, knowing not to take criticisms of your work personally, and being able to make mistakes without being made to feel humiliated are all important, IMO. If you have all that, "Huh... why didn't you just turn this into a function?" might be an acceptable comment (personally I'd probably phrase it "This could probably be a function.")
It's great to help people improve their code, and to think about how advice can be delivered respectfully. It's subtle, but "just" is loaded. I'm sure you've written code under a crazy deadline that could have been better. I can imagine either asking "Is there a reason this isn't in a function?" or saying, "Hm. That could be in a function." I think the difference is that in those cases, you're attempting to understand where the person you're helping is coming from (maybe she is in a hurry and hasn't refactored, maybe she has some cool new grand plan for how the code should work, maybe she didn't notice the code could be reused, or maybe a function actually didn't occur to her), instead of assuming she doesn't know or doesn't care. It is subtle, I agree.
This is your best option. Code is usually hard to read, and anything you can do to alleviate that is good! If you focus on what you think would be a positive outcome of your advice (without phrasing it to emphasize the current negatives, i.e. that their code is unreadable), then your advice will be less embarrassing to hear and more likely to be followed."If this were in a function, the code would be easier to read."
I've worked with dogmatists and I ignored their advice for a long time because I didn't see the value of it in the code they produced. Then I read the original source material of their dogma, saw that it was good, and saw how wrongly they were applying it. Then I became a better programmer and quit. THE MORAL OF THE STORY IS: Make sure I understand an idea before I dismiss it because someone I don't like misunderstands the idea themselves. This is a variant of strawman fallacy.
Why It's Dangerous to Label People https://www.psychologytoday.com/blog/alternative-truths/201005/why-its-dangerous-label-people
Sad to say, I've observed that people who are drawn to this profession tend to be less adept at interactions with humans in general, and moreso with humans unlike themselves.
It's got to be tough to not be a white male in my profession. It's a damn dirty shame too, because women in general make better programmers, most of the time - more careful, less cowboy. I see it all the time, and I try to knock it back when I can, but there's no doubt it's a huge problem.
A lot of men I work with are questioning their assumptions about women who code, and I am so happy to see that progress. But not everyone is there yet, and given their underrepresentation, I think the assumptions may be even worse for people who aren't white or straight. So, articles like these.
I'd imagine math should be attracting the same types of people, but there seems to be a much higher participation of women (at least from what I see at my university) than there is with computer science, and far less discouragement to others in the discipline (though I should note, only to people in the discipline). I think a lot of it really does have to do with a reinforced culture than just the standard social ineptitude. I also see some similar kinds of behavior among engineering disciplines, so perhaps that's where it started, but I don't want to jump to that conclusion instantly.
The thing that attracted me to computing as a career rather than just a hobby was how at home I felt among programmers. They were about the only people who got all my jokes, and were having conversations about things I too was interested in. I can see that driving away anyone who doesn't share the culture, but I would be very sad to see it go.
If in some parallel universe all programmers cared about indie music, craft beer, Pinterest, and potty training woes, I might not want anything to change. But if marginalized people said they felt excluded because they don't looooove glitter, I hope I would be decent enough to shut up about craft projects for five seconds and try to find common ground.
My region's annual linux convention has a list of craft beers that will be available that's much longer than the list of events. I made a point of not saying that we shouldn't alter our behavior to be more inclusive, just that I'd be sad if the only common ground we could assume is knowing how to write software. It'd be a small price to pay for progress, maybe, but it would be a price I would regret paying.