Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Why do so few people major in computer science? (2017) (danwang.co)
130 points by ptr on June 29, 2020 | hide | past | favorite | 423 comments


I don't think CS is a high social status field at all. You're deluding yourselves. Outside of our peers also in the industry nobody cares that you're a staff engineer at Google. Absolutely nobody. They'll assume you're doing IT work like the characters in the IT Crowd if they even bother to think about it at all and haven't already walked away.

Here's a concrete example to make it really obvious.

How many computer scientists are there in the Lords in the UK? I'm not sure there's any. There are nearly 800 lawyers, doctors, religious ministers, biologists, physicist, mathematicians, philosophers, business people, politicians, authors, composers. A computer scientist who defines the field for half a century is lucky to get knight bachelor.

Look at similar establishment institutions elsewhere. Are there any computer scientists in the Senate in the US? Are computer scientists often invited to lead major public bodies? How many computer scientists become deans of universities compared to other fields?

The social status of computer scientists is zero.


> I don't think CS is a high social status field at all.

This really struck home for me about 15 or so years ago. I was a "principal architect" at Travelocity, which meant that I was involved in driving the most complex technical decisions of the site. I felt like I was really doing well for myself - it was the top of the "tech track" there. One day, corporate asked people who had graduated from a set of local universities to speak to graduates of those universities - since I had graduated from one, I told them I'd be interested. The woman I talked to actually seemed shocked and said (no exaggeration), "Oh, I'm sorry, I should have been more clear, we were looking for people further along in their careers".


What the hell? How did you respond to that?


I guess there's a lot I could have said, but what I actually said was "oh", and left.


I'll admit, I was hoping for a heroic story of how that person was made aware of their mistake and begged for forgiveness :D


and that's why we are a low status profession...

Instead of digging your heels, and telling her your speech will be much more beneficial to both the students and the company, you did the typical nerdy thing and avoided confrontation and just left


What kind of confrontation could that be? "Oh but come on! I am important!" or "But I have moderately high salary!"?

I think OP did the smart decision.


I would have started by asking what position she was looking for, and if she started all the way at the top like CEO, I’d whittle it down by starting with “don’t you think encouraging your entire class to aim only for the top, that you’ll be setting lots of them up for failure?” And if she didn’t relent, follow it up with “people who are on a CEO track need to know what life is like for those who build their products.” Or ask her whether she’s running a CS or MBA program for a cheeky jab.

You’ll never know if you don’t ask, and there are no stupid questions.


Its easy to come up with that after having thought it over for 30 seconds but on the spot, when what the person just told you comes as a shock, you're unlikely to muster up such a response.


Oh I have plenty of that too. But it's usually the case that saying _anything_ reasonable is enough of a foot in the door to a wider conversation. And it's a lot like creativity, or math, or music... the more you do it, the better you get at it.

It's like when you learn a new language, one of the first things you learn is how to say "I don't speak X well, please slow down" in that language. Same with debate: learn how to say "I'm trying to better understand" to prime the other person for a conversation. Sometimes they'll start talking for you–that's even a common negotiation tactic, to let the other person talk to basically give you a few points to think about questioning/rebutting, or look for contradictions.


That assumes plenty of time to think about what happened and formulate the best response. That's rarely possible in the roughly 1200 milliseconds available for a timely reply to a perceived insult.

I think I'd only be able to do that if I'd had the same conversation previously. Come to think of it, sounds like just about every tech interview I've ever had.


Do you still work there?


No, I left nearly 10 years ago, but it wasn't related to that incident.


Who were they looking for to speak? The C-Suite? If so, why even send emails to everyone in the first place?


A colleague of mine referred to software engineering as a stepping stone for her. She never saw it as something she would do until retirement.

It took years until I came around to the same realization for myself. It's significantly harder to coordinate and architect "layer 8" bullshit than it is to write apps or lay networks. And there's infinite layers of complexity in it as well.

You don't hear a whole lot of people in management claiming it's fun like you do in software engineering. That is probably a clue. Well, it was for me anyways.


Wish I had more than one upvote. This is a great story, one I wish more people would read who value "prestige" and "importance" in their careers. Being L9 Super Senior Software Engineer does not really give you any more credibility or prestige among the general public than you had as Entry Level Code Monkey. Nobody is going to ask you to so much as speak at a high school graduation or Rotary Club meeting just because you solely did the high level architecture for your company's suite of accounting apps.


I am not even mad that the social status is zero to be honest, but I think you are completely correct. People do think that I am rich and can do math though, but that is about it. I think my education was horizontal enough to have an opinion to things outside my field too, but it is generally disregarded because I am just the computer guy.

I know more about medicine than the common doctor knows about computers though. Seriously, doctors in my country are selected from the best pupils and the result is mixed at best.

Judging the knowledge and context of amateurs is where most professionals fail regardless of occupation, but if you see a doctor in front of a computer you might quickly loose all faith in humanity.

That said, I don't think you need formal education in computer science, since knowledge is broadly available online. It doesn't hurt to be nudged in certain directions for a semester or two though. My university always paired physics or electrical engineering with CS. there is also a less popular option of philosophy. The latter was historically a popular combination when CS wasn't its own degree.


I think you hit the nail on the head. On one hand so many successful IT people have no formal CS training or related degrees, which is less likely in other fields. This is exactly how a lot of people end up being good in this field. The barrier for entry is low so people get to hone their skills while doing the work. Compare this to medical doctors where the barrier for entry is years and years of study, making it more exclusive, even if not completely related to actual skill.

So it's easy to assume IT requires less skill, it's accessible to anyone. Since everybody has some knowledge of computers, they keep their computer chugging along, they assume IT is that just at a slightly higher level. They know enough to form an opinion but not enough for a good opinion. This leads to plenty of misconceptions like thinking game testers spend their days playing games and having fun, sysadmins reboot machines and reinstall some software, etc. (some, in all honesty, aren't that far from the truth :D).

An IT job is probably seen like a mechanic's, the kind of job people can't live without, can't do themselves, and will never really appreciate or hold in high regard. IT is the blue-collar of white-collar working.


Back in late 90s early 2000’s the best hires were the college dropouts. People who went to college to learn CS, got the basics. Then got frustrated and left.

I used to compete with people who got masters at same college I dropped out of. I won easily, I was forced to hire various graduates and they were nearly useless.


> the best hires were the college dropouts

I think this is survivor and selection bias. There were thousands of dropouts in every cycle and you'd never hear of most. For the ones that ended up being the best, school was probably the limiting factor rather than an enabler.

I see some kids these days doing the same, justifying dropping out of school because Steve Jobs, Bill Gates, Mark Zuckerberg dropped out and they're billionaires, ignoring that they dropped out because they could do better than what their universities could offer them, and they dropped out of Stanford or Harvard not community college or small town high-school.

I went to a good school and from my generation a single drop out was successful in his career. He dropped out because he wanted to develop his company and he did. I have friends who still finished their studies even while building companies with tens of millions of Euros yearly revenue. Everyone else who dropped out ended up in menial jobs. Car dealership salesman, cashiers, etc. I'm not going to argue the value of a career but the point is they were certainly not the best. I think you are the exception, not the rule.


100%. Bill Gate and Mark Zuckerberg both grew up fantastically wealthy. Their decision making process should be different than the average person.

Gate's parents had friends in high places, went to high quality schools, and he was a trust fund kid. He was in no danger of failing and didn't need to worry about money. He could always just go back.

Zuckerberg had a private tutor. They had basically already had a college education by the time they graduated high school.

Jobs was a smart, hard working dude who was in the right place at the right time. America in the 70s is a VERY different place than America now. The ladder has been pulled up.

Trying to emulate that is foolish.

Also, since we are throwing around anecdotes like "I find my untrained co-workers to be better than my trained co-workers": I have never worked with someone who does not have a college degree that I was happy with. It does not have to be in CS. I am well aware there are counter examples, but that has been my observation.


It was a very common opinion amongst the startup crowd at that time.

Now I would hear stories about MIT, and be impressed, but many schools had very out dated programs.

Breadboards were cool, but I wanted to learn software.

Assembly was neat, made me a better programmer. I’ve Never once used it.

Whole series of interesting but not practical skills. I ended up running school newspaper. That was super useful for getting career launched.


That's a good perspective actually. I myself have been critical of University computer science programs for not teaching practical skills.

I always forget because I went to DePaul University which focus is on practical software development as opposed to making me take organic chem for no apparent reason.


This myth that dropouts / bootcamp grads / self-taught people form some hallowed overachieving group needs to stop.

There are plenty of talented people from many walks of life, but statistically speaking, higher education is correlated with higher achievement and productivity in computer science. I can’t even believe it would be controversial. More advanced training and more network effects obviously lead to more opportunities and more productivity, in an aggregate sense.

There’s no mythical “diamond in the rough” formula for scouting amazing talent among dropouts.

And to be honest, a ton of real, actual value for society comes from workers fitting into standardized workplace systems, spending time on anti-harassment training, going through project management exercises that elucidate business value, and trying to absolutely get rid of false “Steve Jobs” like mentality of playing the lottery on hunches about user desires. Many people for whom university education was too structured and “too much bullshit” also lack skills and talents required to navigate that stuff in real workplaces.


That's why they excel in the pure programming roles but have a harder time in a corporate environment.

In the early 2000s there was a big need for skilled developers with strong personalies. Now they prefer developers who follow orders vs skill.

In some places doing less will earn more credit. They don't fit in well in those environments.


The diamond in the rough formula can work if scouting from lower tier universities, especially in countries where competition to get into top tier universities is fierce (eg China).


I think this is a really good summary. You do often get some kind of kudos when people say they're rubbish at computers/IT but then they bring you down to earth by asking you for help with their bluetooth or some random app on their smartphone :-)


> I don't think CS is a high social status field at all.

I totally agree with you. I believe this is one of the factors why women hesitate to enter the field. They are more socially aware than we are.

Also, even in IT areas, technical capable people are relegated. We get good salaries but we don't get fancy titles. We are the only profession that allows to be managed by outsiders. Financial firms(and finance departments) are always headed by a experts in the field, same with lawyers, architects and finance. But we are managed by people that are not experts.


> I believe this is one of the factors why women hesitate to enter the field. They are more socially aware than we are.

Totally agree. I remember talking to a girl in math class, who, while she liked the idea of using Python to solve problems, when I tried to extoll the virtues of CS to her so that maybe she'd take more courses, she regaled to me how her dad is a programmer and how miserable his job appeared to her.


>we don't get fancy titles

Some people get titles like "code ninja", although I suppose "fancy" isn't really the right word for that.


Yes we make ourselves look like clowns rather than professionals. It's terrible I don't know why we're doing this to ourselves.


It seems deeply embedded historically. The "Traitorous Eight" split off over petty discontent like starting hours and suit requirements as opposed to a desire for more money or something higher minded like their projects with potential being ignored.

The entrepreneurial disruption mentality historically has been a "we are sick of your bullcrap and trappings, you idiots haven't been listening so we'll start our own".

That it has worked repeatedly and utterly devestated many titans corporations run by "professional" men in suits effectively validated their iconoclasm and rejection of the standards of old. It may be arrogance but there were enough validating moments to understand why.

Suits have taken on a negative connotation. It is implicitly seen as hidebound dinosaurdom and an admission of form over function. Sort of an assumption that if they are wearing a fancy suit then they are an empty suit.


Immature is the word that comes to my mind. And yes, that generally doesn't produce much respect (or attraction from other sex), does it


Right, a lot of FAANG companies' offices look like kindergartens. I get that all of the perks are "cool" to someone, but to me it's just embarrassing.


It also doesn't help that the perceived uniform of the programmer is a hoodie or an ironic t-shirt and chinos style of pants or similar regalia.

Like, that just doesn't look cool. I've been saying this for years. It's no wonder it doesn't look sexy nor command much respect. Especially not compared to a guy wearing a well tailored suit.

Sure, it feels good, but that's the same rationale for wearing crocs. You feel great until you look down and realize you're wearing crocs.


"Especially not compared to a guy wearing a well tailored suit."

I think you got it wrong. That suit guy has to wear it, because his trade demands it, most likely for that image which has to be conveyed. That programmer can afford to wear that hoodie and still to demand his salary, yet nothing limits him to the hoodie outfit, you see?


Fair enough, but the topic at hand are the potential reasons why programming, as a whole, not only doesn't command must prestige/ respect, but in some sense kinda seems like a joke to outsiders.

And my contention was that programmers choosing to dress in hoodies and casual pants doesn't seem to help, whether they have a choice to wear it or not nor whether it has any bearing on their salary.

To put it in other words, person might see a programmer guy in a hoodie on his way to the office, and that guy might very well command a six figure salary, but that's not the observer's perception or first thought.

I'm not arguing about which is right or just, I'm just arguing about the reasons of why things are the way they are.

And maybe, you might think: who cares? Let them think that. Which, again, fair enough. But in the overall grand picture, if a lot of people have similar perceptions, it might not bode well for our profession overall. I mean, it's not just about attracting the opposite sex, it's also, as some already stated, inspiring more people to do take up computer science.


I get the digs at the other clothes, but what exactly is wrong with khaki pants? Which is what I assume you mean by "chinos."


Oh yeah. Even when I was in my mid twenties, when I visited a Google office during some software event, I felt that the decoration was too childish and frankly ugly.

The testing or whatever tips on the toilets also felt a little invasive.


They're trying to attract young kids who haven't made the connection that forgoing ping pong table real estate and "cool" office perks would mean larger compensation packages for themselves.


Titles like that are hardly common though. I never encountered anyone who called themselves a "code ninja" at the FAANG I worked at. That term seems to be a kind of recruiter stereotype/cliche rather than one professionals actually use.


My job title, as it was printed on my employment offer and paycheck, at a start up that was located a few blocks away from the Google HQ in Mountain View in 2014 and staffed by plenty of xooglers, was "Front End Hacker". Six figure job.

Not that it disproves your statement that the titles are uncommon, but hey, I just want to stand up and say "Hey, us professional hackers and ninjas and cowboys are REAL!"


The same people that don't consider the tech industry professional are the same people that wouldn't hire Tavis Ormandy because he has a tattoo on his lower arm or doesn't wanna wear a suit every day. Yea so I'd rather wait out the boomers and be comfortable.


Because there is no 'we' doing it to 'ourselves' :)

If you want there to be a 'we', that would be called a workers' union.

'Professional' is when you have a strong union that forces companies to treat you as a human being, something they'd much rather not bother with.


True, though I'd say the main reason there are practically no women in CS is because women tend to be more social, and software engineering is one of the least social professions in existence. I would never recommend this profession to anyone who doesn't have the personality to be in front of a computer alone all day working on tedious puzzles.


Manufacturing firms (e.g. auto manufacturers) are very often managed by outsiders.


Please don't assume everyone on HN is male.


> They are more socially aware than we are

Sorry for the confusion. We as in "We men" not as in "We HN readers". I was just speaking as a man.


Making baseless complaints like this doesn't help your crusade.


I don't think anyone are assuming everyone is, but assuming a specific reader is male is gonna be correct more often than not


Yawn


>They are more socially aware than we are.

Is there any evidence that women are more likely to choose careers with high social prestige?

I find this doubtful, since in North America at least the traditionally female-dominated job sectors seem to be the ones with lower social prestige. Compare the prestige of a nurse with a cardiac surgeon: which is more stereotypically male?


This also isn't true in places other than North America. In countries like India, Pakistan, Bangladesh, Sri Lanka, there is way more gender parity in IT than in the USA.


Are we really sure? China was said to be different, and yet when I worked there, we were called out for having worse gender diversity than our stateside counterparts. It turned out that while China produced many more female CS graduates, they didn’t stay in technical positions long enough to solve gender diversity problems after graduation.

India also has problems it seems, eg http://bwsmartcities.businessworld.in/article/Is-India-Inc-C.... I wouldn’t say any country has really solved this problem.


In poorer countries like the ones you listed, the benefits of a higher paying job are more likely to outweigh the social costs than they would be in a more wealthy country. So the social aspect becomes less important.


In India its not, lot more males compared to females.


You are saying nurses, teachers and social workers have “low social prestige”? People worship the ground these folks walk on for their “selfless sacrifice” and what-not.


>People worship the ground these folks walk on for their “selfless sacrifice” and what-not.

People in Canada at least don't do more than pay lip service to those professions. They're remunerated poorly and yes, they have low social prestige.

If you wanna pick up a girl at a bar, do you lie and tell her you're a nurse? No, you tell her you're a cardiologist.

Nobody really respects nurses and teachers. Not saying I like it, but that's how it is.


> I believe this is one of the factors why women hesitate to enter the field.

That's assuming women are after social status, which is a strong claim.


[flagged]


That's a big leap - is it supported by anything?

Primary school teaching and nursing are low status professions, and they're both dominated by women. If you're going to try and explain gender imbalances exclusively via reference to status you need to explain why it's not universally predictive.

Lots of people have spent lots of time looking at this. What's predictive is working with systems vs people. Jobs that involve tinkering with machines all day = men. Jobs that involve people and especially with a caring aspect to it = women. Finance is largely about abstract "machines" like markets, where you never see the faces of the people you're trading with = men.

Not many jobs are totally balanced 50/50 men/women, but those that are tend to be perceived as having a blend of systems/people work e.g. sales (where sales includes jobs like tele-sales or travelling sales).


I found this out the hard way (that the social status of computer scientists outside of the Valley is nearly zero) in my late twenties, when I was starting to look to get married. I'm now changing careers. I realized that women (and society in general) cared absolutely zero about my profession except for the fact that it made good money. Even if you do become obscenely wealthy, you rarely garner any real respect in mature society -- you are viewed only slightly above oil princes and gold-laden rappers -- rich people with no taste. That's really unfortunate because computer science is such an intellectually stimulating profession, but that is not how people see it.

[Spoiler Alert] There's a great scene at the end of Silicon Valley's last episode where Gavin Belson, the failed tech CEO, leaves tech to become a more artsy-fartsy writer with a passion for the arts. Only then does he actually start to be noticed by organizations outside the Valley. Even the stars of the show, Richard Hendricks and gang fade into obscurity at the end of their startup journey - not even future generations of tech people have heard about Pied Piper. I think that is a brilliant portrayal of the reality of most people in tech - they have almost zero historical significance, ride on the waves of economic cycles, and even if they are obscenely rich (like Bezos), they just don't matter to progression of human culture. Even Elon Musk gets much less respect outside of technocrat circles than we think. On the other hand, everyone respects the like of Margaret Atwood, JK Rowling, or Barack Obama.


> On the other hand, everyone respects the like of Margaret Atwood, JK Rowling, or Barack Obama.

Caring about what everyone else thinks is a sure way to be miserable in life... The masses in general are poorly informed and understand nearly nothing out of the world that surrounds them, it's no wonder they give more respect to the author of the book that they liked or to an insanely hyped president than to someone who made a big contribution to technological progress. In other words - do good work, but don't expect people to praise you for it. It's perhaps good enough if they don't burn you at the stake...


Programmers have a bad reputation with Feminists. Hanging out in any online Feminist space is very illuminating - they have gone on many dates with people who do what we do, and they're contemptuously familiar with "us" as a class. If you're trying to date in a tech city, I think you pretty much have to do this - there are a lot of "tech bro" memes out there for you to step in on the first date.

This prejudice seems largely absent from health-care workers, for what it's worth.

(Nurses and nurse-adjacent professionals seem to think of doctors as much bigger jerks and sexists than programmers, whereas I think a lot of creative professionals now view programmers and various kinds of scientist / engineer as pretty much the ur-sexist-jerk).


What did the programmers commonly do that these females found revolting?

I've never lived in SF so maybe it's different there, but in my experience in the industry the "tech bro" thing is a complete myth. Most software engineers are just quiet nerds/geeks, mostly Asian + Indian, and are the absolute last thing from being "bros" (unless the word "bro" has been redefined and I never got the memo).


I'd say it's definitely very possible to be a quiet nerd who also has not the best attitude towards women so I don't think the bad rep just comes from the "bro" side of things.

As an aside, calling women 'females' is definitely something that can set off alarms cause it resembles the kind of language that certain sexist men use. Not saying that using it makes someone sexist, but that it can make someone sound like other people who are.


> it's definitely very possible to be a quiet nerd who also has not the best attitude towards women

Of course, but that doesn't mean that "sexist quiet software engineer nerd" is a common personality type. In my experience the "quiet nerds" tend to be the most kind people.

Also I've found in America that most women seem to prefer dating outgoing men, so I'd guess that most of these women aren't dating these "quiet nerds".

> As an aside, calling women 'females' is definitely something that can set off alarms

Never realized the word had that connotation to some people. Sounds overly sensitive, but I'll use "women" if that's preferred.


I mean, it’s not hard to see why feminists think that: just read any thread on Hacker News about gender.


Although I agree with the sentiment here, you picked some pretty extreme examples. OF course a famous author and ex-president is going to have more respect than some anonymous corporate drone at Google. It'd be more weird if that wasn't the case.


Popular actors or writers or wrestlers or sport figures are more popular and make more money.

But not so popular writer not much respect, no name wrestler even less.

Brand is status.


Musk is a physicist though, and i m pretty sure Musk is a frequent subject even when politicians speak. They have not reached out to the public in ways that Rowling or Obama have, so it's natural that the public feels them distant. Bill gates earns some respect for his low-key activism but he s not too prominent either. Scientists who reach out can garner respect, Thatcher was a Chemist, Merkel is a physicist. It's true however that the non-rich comp.scientists are virtually unknown or known for unrelated reasons (e.g. Turing).

A lot of it is just grooming: Lawyers (and doctors) are groomed and almost expected to have socially prominent aspirations. Programmers have not but it's not like they really asked for it, most tend(ed) to be politically aloof.


Musk isn't a physicist. He's a programmer who retrained as a rocket engine specialist and business leader. Rockets involve physics but only in the sense that computers involve physics, they're applications of fairly basic physical theories. I mean, he's not doing string theory in his corporate offices.

Angela Merkel is also not a physicist. She studied physics and then published a few papers in 'quantum chemistry' but for basically her whole adult life she's been in politics. She's as close to a professional politician as you'll find.

I know it wasn't you but Rowling and Obama are odd picks for high status individuals. Rowling is well known but is currently having her reputation blown up and being stabbed in the back by the starlets she birthed, because she's not on board with "people can pick their own gender at will". Obama was high status when he was POTUS; where is he now? Does anyone know what he's up to these days? It's not Obama himself that had high status but the position.

In my experience Musk gets a lot of respect. I know a totally non-technical financial CEO who always cites Musk as his inspiration. The guy even likes to see himself as kind of like Musk which is hilarious to me, as he is slightly more likely to be struck by lightning than sit down with a pile of textbooks to learn a new technical skill. That's just not who he is.


> Rowling is well known but is currently having her reputation blown up and being stabbed in the back by the starlets she birthed, because she's not on board with "people can pick their own gender at will".

Wow. So much to unpack here. I’m getting the impression that you sympathize with Rowling’s views. I’m a little more immersed in trans issues than most on HN, so let me assure you that Rowling is flat out wrong. For example, in her essay she alluded to (but didn’t cite) studies that have been discredited. A lot of her central points are easily dismantled when faced with reality. Her arguments are only convincing if you aren’t familiar with the issues.

You also echoed the idea that trans people casually picked their gender. If you ever talked to a trans person I’m sure you’d realize just how wrong that idea is. All the trans people I know report feeling like they had little choice. I can’t tell you how many times I’ve head trans people say things like “I would give anything to be a cis X”. By portraying it as a casual choice you’re belittling the daily struggle trans people endure. It’s not “just a choice” if transitioning is the only way to suppress suicidal urges, and suicide is rampant among trans people. The 2015 survey found that 41% of trans people had attempted suicide during their life. The percentage of people who had considered it was MUCH higher, but I don’t remember the exact number. It’s not a choice when your options are live or die.

I’m speaking not only from the experience of participating in trans groups, but also as a trans person myself.


I don't take a position on Rowling's views one way or another, as I haven't really investigated them. I believe the quote is a reasonably accurate summary of her position but it's based on second hand accounts I've read in the press; can well believe it's somewhat garbled. My understanding is the argument is about whether people can pick a new gender without any biological changes/surgery, but who knows, maybe she's against hormone therapies too.

At any rate, my point isn't about the topic of trans people. It merely illustrates that Rowling's social status, such that it is, doesn't seem especially helpful to her right now, leading to the question of whether she truly has any. Elon Musk can get high in interviews, make tweets so controversial he gets literally gets fined by the government for them and he just keeps on trucking: apparently his status is far higher than hers.


> I believe the quote is a reasonably accurate summary of her position but it's based on second hand accounts I've read in the press

It isn't. At all. It is word for word what I'd expect from a malicious misrepresentation of what transgender activists believe and want to achieve. You may not be malicious here, but you are repeating phraseology that has been planted in the public consciousness by those who are.


> My understanding is the argument is about whether people can pick a new gender without any biological changes/surgery, but who knows, maybe she's against hormone therapies too.

There's at least three different arguments happening at the same time, all using the word "trans", making it really hard to pick apart which one any given person is using and making it really really easy for their opponents to paint them in a terrible light.


musk studied physics though. and you cant be a phd chemist without being a physicist at some point. of course all politicians are primarily politicians at the time when they do politics but we 're talking about background here. Background matters because it creates a culture and a set of ethics. Popular figures are generally freeloaders riding on democracy's bias for popularity.

It's just that for lawyers , politics is almost part of their normal career progression: you go from law-student to law-maker. Political scientists or economists becoming politicians is similarly easy to grasp. Medical doctors and engineers less so, but what matters here is they are both regulated professions, regulated by lawmakers so there's a long-standing relationship.


Even if Rowling is currently getting torn to pieces, and Obama is not making the front page every day, they leave behind a legacy in history and culture. What they say matters, even to their enemies, as the Rowling case shows.


What are you going to pivot to?


Not the OP but I got a CS undergrad degree and am now in a top economics graduate program. Finance/Consulting is still seen as high status by many.


I'm not sure I agree. Either you are conflating vocation, field of academic study, political power, socioeconomic class and status, or things are just different in the UK.

Here in the US, you rarely study computer science to become a computer scientist but rather to be a highly paid engineer or eventually obscenely wealthy founder. The same is true for philosophers, authors, politicians and composers; increasingly, the same is true for biology, physics and even law. You study these (or any of these fields) to show some ability for abstract thought to get you into the career of your choosing.

In the US, notably, the field you actually study increasingly seems to have little to do with what you do later on in life; that all seems to do with your socioeconomic class, who you make buddies with in early schooling, who your parents know. It doesn't matter if you study law at Harvard if you don't come from wealth; and likewise, it doesn't matter if you study CS if you come from wealth. And inside the middle class to upper middle class, studying either field isn't very likely to break you into the upper class; only starting/scaling a business will.

Looking at members of the senate is also not very useful. Sure, "computer scientists" may not be represented in the Senate. But wealthy "applied computer scientists" who started companies (Bezos, Gates, etc) hire lobbying firms that essentially purchase the behavior of these senators wholesale. They have more clout than entire nation states.

Still, with that said, there's a difference between clout and high social status. But I observe that high social status is something that pertains to caste and heredity, not necessarily field of study.


Anyone with money can have clout.

Are computer scientists invited into the club before they have money? No. Do they get offered the opportunities that money doesn't buy? No. That's the difference.


Thank you for the thoughtful reply! I think that clarifies your viewpoint considerably. If you don't mind me asking, could you elaborate on the kinds of opportunities that money doesn't buy? And furthermore, to what extent have you seen vocation give access to that which is not given by heredity or caste? I think that would help elucidate the subtle distinction between high clout and high social status.


For example... I have a friend who is a barrister in London. He makes a lot less money than I do, and works a lot longer hours, so sounds like he has the lower status job, right?

No, because he's getting invited to join elite private social clubs and organisations. He's going to dinner parties with politicians and could use that network to start a political career if he wanted. He's meeting people with capital to invest. He's on the sports team with influential people. Etc.

There's a whole real-life social network out there, and they definitely aren't inviting the programmers.


That's true but it cuts both ways. I think social respect is entirely relative. It doesn't make sense to talk about status as if there's a universal ranking.

Your examples are all from the perspective of someone inside the British political system. Are these jobs high status? Not from my viewpoint - there's no way I'd want to be e.g. a civil servant, a Sir or even a politician in the existing parties. A whole lot of people hold this class in contempt, really. If a senior British civil servant turned up at a social gathering that happened to be mostly software engineers and successful company founders, do you think they'd get much respect? People would be polite, certainly, but I don't think they'd have a circle around them hanging on to their every word.

I've visited the elite London social clubs. I've also had dinners in the back rooms of fancy London restaurants with investors, journalists and other members of the British 'elites', invited there specifically to talk to them. So I guess I find that world a bit less impressive than normal. Actually I've repeatedly visited two private clubs, both closed to programmers normally: one is for people in the arts and one is for people in finance. I've close relationships with someone in the arts and someone in finance, both of whom make lots of money and thus purchased these memberships. They can take guests, so, that's how I got in.

There are some perks. They have nice facilities in good locations. The receptionists, waitresses and many of the guests are very good looking, they must find them in modelling agencies or something. Would I pay to join one if I could? No way. They're ripoffs: you can get nice bars and hotels anywhere, and there are far easier ways to make business contacts in our world than going to those and hoping you bump into someone.

For example, if you want to meet investors in the UK I can hook you up in ten minutes. It's way easier for people like us to get meetings with investors than basically any other group. People know computer scientists can multiply money like nobody else. I'm actually surprised a lawyer would get the time of day from serious investors, it's certainly not an advantage of his social status.

In the end it's all relative.


Great points. I think your points are especially salient given GP's points earlier above:

> There's a whole real-life social network out there, and they definitely aren't inviting the programmers.

Is that really the case? Or is it just the case that they're not inviting the kind of "programmers" that GP knows/is (and for what it's worth, I consider myself an engineer, not a programmer)? For what it's worth, as a 30 year old "just an IC" in tech, I know a lot more HNI individuals and "high status" people (supermodels, executives, musicians, scions) /and/ find it way easier to get meetings with folks in /their/ network if I want to than my peers from university who were just as ambitious as I was and who went into law, management consulting, banking, or academia.

While I wouldn't say my experience is necessarily indicative of the average IC in my field or world, it is certainly not unique; indeed, my managers at previous firms took very similar trajectories. But then again, this is based on my experience in NYC. As the world is changing, I do think there is an increasingly accelerating understanding that the wheels of power are increasingly being seized by technology, and that those who utilize it to do so have the world as their oyster.


> There's a whole real-life social network out there, and they definitely aren't inviting the programmers.

I'm not sure if someone in your position is in the right position to be making this conclusion, if only because your lack of experience of social status (or those of people who you know who share your vocation) doesn't prove the vocation has any causality on social status. If there is a real-life "social network" out there, and "the programmers" (of which you are one, presumably) aren't getting invited, what is the inference to draw there? That programming is inherently low status, or that many low status people are in the vocation?

To give a counterexample, much of my career has been "just a programmer", but I have never had issues building close friendships with investors, executives, musicians, actors, and other well connected people. But elite private social clubs and organizations? Dinner parties with politicians? That's all passé. That's what people who _want_ to signal high status but actually can't do. And all of the politicians and investors follow the trailblazers who are scaling creative collectives and entrepreneurship federations who are in...you guessed it, my friend group.

As I have gotten older, I have become increasingly annoyed with the "programming is a low status" vocation trope. It's incredibly naive and simplistic. You think other vocations are higher status? Your friend who is a barrister isn't high status. He looks high status to you because you've never seen what truly high status is. That isn't a dig at you; rather, it's an invitation. Reserve your judgment of the world and how it works until you actually meet and party with these billionaires, politicians, and inheritors of nobility/trust fund wealth.

Having gone to college with these folks and having made friends with them, I'll tell you that the way they work is a lot different than what you think. They are almost allergic to these vocations that you would think of as "high-status" because they think these people are upper-middle class try-hards who are simply lame. They want cool artists, musicians, photographers, club promoters, entrepreneurs and other exploration minded folks as friends. Money and vocation can't buy cool. And programmers can be very cool. But you'd have to try and figure out what that means. It usually means you have to follow more of the hacker ethos than the academia ethos. You have to have a little bit of a piratical penchant for creative destruction.


> I'm not sure if someone in your position is in the right position to be making this conclusion

I disagree I think I have a unique ability to make it. I have two simultaneous careers - I'm a programmer and an Army officer. I can see what parties, clubs, dinners, social events, social connections the two versions of myself are invited to, and how both are treated socially.

I can directly compare the two experiences with all other variables controlled - background, education, accent, cultural awareness, where I live - just by changing the hat I'm wearing.

How can you make a better experiment than that?


> How can you make a better experiment than that?

You would need to make real, deep friendships with high status individuals over a long period of time and observe how they behave, what motivates them, what they have access to and what constrains them. And you'd need to do it while you're both still young and formative life experiences are still being made. It might be too late for you to do this because the best time to do this is as early in life as possible, through formative social experiences: high school, then college (not as ideal), then early career (under 25 -- even less ideal). At each of these points, people and their social groups are progressively more crystallized, and your likelihood of making friends with someone outside of your class decreases precipitously.

Your "experiment" (I would hesitate to call it that) is really just two separate experiences held by one person. In all likelihood, the things that are held invariant there (you, the person) including strengths, weaknesses, formative social bonds, socioeconomic class that you were born into -- all those have much more of an effect on your outcomes than anything else, and even if you do see slightly higher social status as an army officer, it's not truly high status, the way examples I gave (billionaires, investors, children of nobility, famous artists and musicians) indicate. They live differently. They inherited their already high status, and continue moving savvily to increase it further. They are the results of many generations of this. If you're not friends with them, you won't get invited to their parties and you won't see their world. You won't understand. Their world is /completely/ different than yours. Theirs is ruled by tradition. They have obscene amounts of resources. They can do whatever they want. They maintain their position. You cannot experiment in any way possible that would imply anything about the way they live their lives; to think otherwise would be very naive and simply at odds at reality.

If it seems like that's unfair and that makes it tough or impossible for you to experimentally verify: I'd say I agree with you, but that it was designed that way on purpose over thousands of years.

And don't take my word for it. Make friends with these people, if you can. See how they see their world and move inside of it. Your priors might change. I know mine did.


> You would need to make real, deep friendships with high status individuals over a long period of time

This is backwards - in order to see how people treat people based on their profession, you can't make friends with them... because then they aren't judging you on your profession any more, are they?

If the exact same person is treated in two different ways, and absolutely nothing changes except their profession, then the profession is the only possible cause of the difference.

You try it! Go into an environment presenting with one profession, then another, and see the difference! Book into a hotel describing yourself as 'doctor' and you'll get treated differently than when you book in as 'mister'. You can try it yourself and it's plainly obvious that society sees a difference.

> it's not truly high status

I think you're possibly lost track of where this started - I said A was lower than the B. You're trying to argue with me that B isn't the highest, but I never said that - you're arguing against something nobody said in the first place.


[flagged]


> The reason you think that [...] has anything to do with it is

This is already bad, but

> you lack charisma to such a degree that

...crosses into personal attack. That's not allowed on HN, and we ban accounts that do it, so please don't. You can easily make your substantive points without it anyhow. If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and sticking to the rules when posting here, we'd be grateful.

Edit: we've had to ask you this twice before. That's not cool:

https://news.ycombinator.com/item?id=20954954

https://news.ycombinator.com/item?id=19051452

Worse, you got involved in another personal flamewar just a few days ago: https://news.ycombinator.com/item?id=23646853.

There's clearly a pattern here. I'm not going to ban you now because you've also posted good comments, but please don't post any more personal attacks to HN, and please avoid tedious tit-for-tat entanglements with other users where the argument slides further to the right of the page as it slides further down in quality.


> You can easily make your substantive points without it anyhow.

How would you have phrased it, then? Genuinely curious here.


I don't know, because I don't understand what you were trying to say there, making it hard to extract a substantive point.

That's secondary though. Please don't miss the main point: personal attacks are not ok.


I totally agree with you. They would have high profile influential people in there circle such as Investment Banker lawyers bureaucrats and etc


Why would I want to hang out with vapid, shallow people?


I don't know I can't answer for you why you'd want to do something or not, or how you've managed to get a beef with people you've never met.


Legal profession - a senior judge or attorney will have social status and influence far beyond one simply granted by their wealth. University professors likewise. Doctors, especially the kind that work on diseases typical for wealthy old men; they will have status, social connections and influence beyond their profession. Politicians - town mayors generally aren't rich, but have influence and social status.

In essence, it's about the professions that work closely with other people. If you're high-ranking in a profession that provides an personal service that matters to socially important people, you'll have influence. Does your profession bring you into personal contacts with important people, where they are motivated (or forced) to rely on your specific personal competence? That will buy you their respect.


I don't see how you two disagree. Yes, computer science people (degree or not) can become influential through economic success. That's the same way construction company tycoons occasionally become influential. But there's a family of careers were wealth is more a consequence of status and influence than the reverse and those are almost as devoid of computer scientists as they are devoid of excavator operators.


> there's a family of careers were wealth is more a consequence of status and influence than the reverse

That's I think where I disagree. I would say that wealth is almost always a consequence of status and influence than the reverse, with maybe the express exception of CS/tech because of US entrepreneur/startup culture -- even that is debatable, but we can at least come up with examples, in large part because tech is so young as a field. If tech is, say, 50 years old compared to common law which is 2000+ years old, to what extent should we really be drawing comparisons and to what extent should we be saying "well, the /field/ is up in the air even if human socioeconomic relations are not"?


> In the US, notably, the field you actually study increasingly seems to have little to do with what you do later on in life

Not sure that this is US specific, I think this has more to do with people studying things the economy doesn’t really have a need for (which while inefficient is fine by me)


Is the social status of computer scientists zero, or do computer scientists choose not to go into politics or other leadership positions? I suspect it's the latter [anecdotal; opinion; citation needed].

CS people are a tribe on their own (if I may generalize); I've not met anyone with an interest in participating in politics. They have strong opinions on politics, but not to the point where they're willing to represent.


Scientists - not just CS, but biologists, chemists, etc. - are not in elected leadership positions very much. I agree they are frequently not willing to represent. But again - why?

A few opinions:

* scientists (computer, life, or otherwise) do not think their talents are best used in making public policy. There are so many other ways those talents and intelligence could be used

* perhaps worse pay (though the benefits, and opportunity for jobs after elected office, are certainly stellar)

* the process seems toxic compared to other ways to make a living

The first and last bullets seem the most important to me. Business and academia have some similarities with government, since in both cases they involve:

* writing, with the intent to better the world somehow

* raising money, whether from selling a product, grants, or donors

* using evidence to decide what to do next

The day-to-day work seems reasonably desirable, but the way that work must be done is, I think, the dealbreaker for many scientists.

At a company, everyone you work with on a daily basis is generally in step with the overall vision. Some teammates may differ on details - which language or data store, how to architect something - but the goal of the finished solution is mostly in agreement.

In government, there are at least two groups of people who publicly profess to have VERY different ideas about what the finished solution should accomplish. And even if you get elected on the team you think has the best goals, you may no get to work towards those goals directly, since the other team might have the majority of seats.

I have so many more thoughts on this, but I'll save that for a blog post. I'm curious what others think of this though.


I remember reading somewhere that the Chinese government is full of engineers/STEM degree holders, Physics, Civil, etc as opposed to lawyers in the U.S.

Assuming that's true, it makes sense from a 30,000ft level. CCP requires leaders to meet some socio-economic goal and that requires competency and a loose ability to apply scientific methodology.

In the U.S. it's much more important to argue your case, sound good and wiggle your way through the rules of law to get your way.

The above is an obviously charitable view of the Chinese system, but I can't help but feel that the U.S. has become too comfortable and apart from reality which this pandemic is now checking us for.


I'm afraid the good old day of engineer/STEM leadership in CCP has long gone due to Culture Revolution. Most of the current CCP leaders grew up during that time, when the education system of the whole country was basically destroyed.

As a result, the education level of the current Politburo members is shockingly low. For example, Xi Jinping barely finished his middle school, then went to Tsinghua as a Worker-Peasant-Soldier student[1]. Apparently he was not well-educated, as he makes so many illiterate mistakes [2] in public speeches.

[1] https://en.m.wikipedia.org/wiki/Worker-Peasant-Soldier_stude... [2] https://zh.m.wikipedia.org/wiki/%E5%AF%B9%E4%B9%A0%E8%BF%91%...


It's likely that these same people would have studied political science, law, or economics had they been born Americans. I think a healthy amount of this is inertia. Future Western bureaucrats tend to study those fields because current Western bureaucrats tend to have degrees in those fields. So when prospects are researching how to break into said field, they discover that those majors are a proven means of achieving that goal.


Another relevant factor I think, is the kind of challenges you must overcome in politics vs technology.

A scientist probably finds the challenges to overcome in technology much more intellectually stimulating than she finds the challenges in politics. Which makes sense because people tend to get good at things they enjoy, and scientists need to get good at overcoming challenges much like technological challenges.


Bingo. Thanks for writing this more clearly and succinctly than I could!

Even though making laws or doing science both require writing and documentation, the challenge in a lab or on a computer is very different than coalition building amongst hundreds of very different people.


Bad pay + toxic process + bad usage of talents. Are you sure you are not talking about academy? (half joking)


An honest scientist abhors it, but those who fudge results have their place in politics.


As an engineer many political compromises make no sense to me to the extent I cannot support it. Compromising between, say, quality of a solution and the available resources to implement said solution makes sense to me and it is clear what the trade-offs are beforehand. A political compromise to keep all parties involved happy that mixes parts of totally different solutions and creates a system you know beforehand it is going to perform significantly worse than either solution, is difficult to accept let alone support for me.


I think you hit the nail on the head and that this is one of the primary psychological reasons many programmers don't pursue politics.

I studied psychology and communications and so much of my studies and to an extent my aspiration were in the political/communications/leadership/management field, where in my earlier teens I was I more focused on programming and anything nerdy.

After university, I realized that I didn't (yet?) want to professionally go in the direction of my studies, so I dusted off my PHP knowledge and started 'doing websites'.

Since then, it's become clear to me that I generally prefer and thrive in this world, much as I sometimes miss the 'attending x meetings, being involved with y projects, going to z meetups' side of things just a little bit.

What I've noticed is a few things: 1) these two 'worlds' seem very distinct and I can't switch between the two easily, 2) the more time I spend in 'programmer mode', the harder it is to draw from the 'political compromise' / meetings well, not just in ability but also in patience. I've had to learn to 'manage' and make sure to feed both these separate energies to do my job as a freelancer/consultant.

For example, if I know that I have a meeting with a client on Tuesday afternoon and it's preceded by a few days of serious, focused programming, I make sure to at the very least keep Tuesday empty until the meeting, and ideally some of Monday. When I don't do this the world won't end, but I notice that I'm much worse at handling the improvisational nature of a meeting. I also need more time to prepare for the various permutations of the conversation I imagine might become true.

On the other hand, if I haven't done much programming for a while, I tend to be much better at handling the vague, suboptimal, compromise-focused stuff. And perhaps I get sloppier with my code too, but I'm not sure if that is true and it strikes me as a bit too neat to be true. Still.


> Is the social status of computer scientists zero, or do computer scientists choose not to go into politics or other leadership positions?

Well the outcome is the same either way. And if none of the institutions have any computer scientists in them now good luck to the first few people trying because they work on social connections.

There's a social ceiling to computer scientists. I won't call it a glass ceiling even because everyone can see it.

Take an institution like the NSA - where probably some of the best computer scientists and mathematicians are working doing some of the most cutting edge work with the best resources. Who leads them? A low social status computer scientist? Of course not. They get in a high social status military officer to do that job - can't trust the computer scientists and can you blame them because they won't have any influence in society to get anything done anyway!


General Nakasone is a lifelong intelligence officer with degrees in the field of intelligence, and he’s been in the intelligence and cyber warfare fields for decades.

He’s not a computer scientist, but he’s also not an English teacher they just stuck in charge because he has a star. He’s highly qualified for that job, as are most people who have been assigned there. NSA does a lot of things that are not computer science, and many senior people there do come out of the engineering and CS fields.


> He’s highly qualified for that job

He is, yes. And one of his essential qualifications needed for the job is being respected by the establishment because he's come through the establishment institutions and a profession respected by society with a combat action badge, rather than a technical contributor, which society does not respect.


One of those essential qualifications is being technically competent, which he clearly is.

Having a CAB is not one of those qualifications, most NSA directors have not had one or had any combat experience.

Just as most CEOs are hired for their business expertise, not only their technical abilities.


It turns out that nobody cares about scientists and engineers going into politics because they have more or less the same spectrum of political preferences as everyone else. We have an MIT electrical engineer that founded and sold a 3D modeling/haptics startup in Congress. You never hear about him among tech people because he’s a Tea Party Republican.

Whatever value we assign to that background plainly weighs less, even among people who might be a natural constituency, than agreement on various issues. Which is fine, but that means we believe the background just isn’t very valuable.


I live in a country in Latin America, where I attended public university for a CS degree. Some computer scientists there, some even with PhDs, got involved in politics later. Some even at the national level.

Not sure there's any conclusion to draw here, just wanted to share my personal experience.


What is someone's status as a chess player if they never play? If computer scientists have no social status - a position I am not necessarily backing - whether it is because they have not sought it or because nobody cares that somebody is a computer scientist would be moot.


The creator of PHP's Xdebug (Derick Rethans) unsuccessfully stood for local elections recently.

I can't think of many others though!


We need "proportional representatives". So people who are known national but not locally can gain access to congress.

It also helps against gerrymandering.

https://en.wikipedia.org/wiki/Proportional_representation


I care about politics and participate, just not electorally. ^_^;


You’re right. I went to a slightly posh school and my parents actually got commiserations that I was going on to study comp sci. “I.T.” is still not a high status field in the LEAST in the UK. It went down like telling people I was going to drop out and become a mechanic (not that there’s anything wrong with that either, but it’s all about the perceived status of the field).


The UK - especially the UK Establishment - is spectacularly clueless about STEM.

When I did my EE degree a friend of the family was pleased that I'd be able to use my Honours Degree and mathematical insight into Maxwell's Equations to get a good job as a TV repairman.

There's a strong class bias against people who do things. The class ideal is someone who owns things and tells others what to do in broad terms ("business strategy") and then leaves the little people to fill in the details.

One of these people asked me to contribute to a course in iOS app development. There was a lot of fluff about work ethic and marketing, and then I was supposed to come in for half a day at the end and explain to a room full of teenagers who had never done any programming of any kind how to build a complete working iOS app - "Something simple, like a map of house prices in the UK, or something like that."


I think it's because they can't relate. If I had a degree in English, then there could be a conversation about all sorts of things.

But I work "in computers", and the only thing to talk about is "so, my computer has started making this funny noise..."

I find the same bias against people who do things in work life too. I have an MBA, but routinely find myself marginalised in meetings because I code. Somehow the guy from Sales who doesn't understand how the product works has a more respected opinion on our market strategy than the guy with the MBA who literally understands everything about both the market and the product (because I designed the product to meet the market). It's frustrating.


Right - I get exactly the same thing. I have a PhD and am a senior staff engineer and people in UK society still assume I'm very low paid and very low status, and that I work in a cubicle as an underclass troll. I have my feet in two camps because I'm also an Army officer. As soon as I put that hat on (literally) my social status goes up by an order of magnitude. I think a lot of people in CS don't know what it's like in other fields and they assume they're relatively well regarded and respected by society. They aren't!


Of course, status is multidimensional, so to say it's "zero" is a bit immoderate. I studied CS in the UK (Cambridge) and I'd agree that it's not a prestigious field. Having said that, CS academics are generally fairly well off, some being posher than others. I think a major factor in the low status is their lack of cultural knowledge (cultural capital), even if they know or are related to others who do have it.

Much of what can be said about CS in the UK is true of the "technical middle class" in general.

https://en.wikipedia.org/wiki/Great_British_Class_Survey#Tec...

"The technical middle class, about 6 percent of British society, shows high economic capital, very high status of social contacts, but relatively few contacts reported, and moderate cultural capital. Occupations represented include medical radiographers, aircraft pilots, pharmacists, natural and social science professionals and physical scientists, senior professionals in education establishments, and business, research, and administrative positions.[17]

The technical middle class is relatively well to do, with an average household incomes of £38,000, average savings of £66,000 and houses worth an average of £163,000. Members of the class report the lowest number of social contacts of any of the classes, though these do tend to be high status, probably mostly other professional experts. It is relatively culturally disengaged with both highbrow and emerging culture. Women comprise about 59 percent of this class. Many of technical middle class do research or scientific and technical work; a portion of the graduates are from established and prestigious universities with strong reputations for science, such as University of Birmingham, University of Warwick, University of Cambridge, University College London, University of Southampton, and Imperial College London with degrees in science and technology. Many of the technical middle class live in South East England where scientific and technical jobs are to be found. If they live in an urban area they live in the suburbs. Many of them have middle-class origins but are less engaged socially and culturally with the arts and humanities."


> Much of what can be said about CS in the UK is true of the "technical middle class" in general.

Going on a tangent here, but I observed the same thing while reading Proust's "In Search of Lost Time" when I was in high-school (20+ years ago), i.e. that the "technical middle class" and even the "technical upper class" of late 19th century France were way below the aristocracy of that time.

A respected engineer who had graduated from the "École des mines" and who might have even held a job as a Government minister had no chance to attend the parties hosted by the duchesse de Guermantes. Things might have changed in the meantime, though.


> Outside of our peers also in the industry nobody cares that you're a staff engineer at Google. Absolutely nobody.

Not true at all. They get excited because you can build their amazing app idea. It's just like facebook but for... Oh no, you won't? Oh okay. Well let me give you my card in case you change your mind.


I've had this encounter so many times in the wild, it's insane. "Well, what can you build?" is typically the question after mentioning you write software.


Or specializing in Nuclear Physics: "So could you build an atomic bomb?". It was a fun party topic, though.


I get that some portion of the population cares about social status when selecting a degree, but a lot of people do want steady, enjoyable jobs that pays well, regardless of the social status it confers. Doesn't really explain why the percentage of CS majors went down.

I do know CS majors went through a huge boom in the 90s and then a shakeout happened after the dot com bust.

As for CS majors in Congress, well, I would not expect them to start popping up until another decade or two goes by, given the average age of a Congressperson and the relatively young age of CS as a discipline.


I don’t know how old you are but this is not the case at all among my age group, recent college grads. If you say you work at Google, to continue your example, people are definitely impressed and think you’re very smart. Pretty much all of my friends and their friends are not in software engineering and that’s still the case.


I think people are impressed by the big names, but not so much if you work for an enterprise SaaS provider.


People have heard of and will probably be at least mildly impressed by the big consumer-facing FAANGs plus maybe a few others like Microsoft, IBM, etc.. But Oracle, Salesforce, SAP (to say nothing of a myriad of other software and hardware companies)? The average person hasn't even heard of most of them.


And if they have heard of them it’ll be like “oh, [software], that thing the data entry guy uses? Cool, I guess...” I mean, how impressed would you be meeting a guy who works at a big office supply company? Most software, to the users, is equivalent to other basic office tools like pens and staplers (except more frustrating to use). It doesn’t exactly have that wow factor.


Hah that's if you're lucky.

Most of the time when someone says they work at SAP or Oracle they get a "God I hate SAP" because they're using a GUI from 1990 that looks like ass and is not intuitive.


My suspicion is that people don't hate SAP because of bad looking GUI, but because it implements rigid, hard-to-discover business processes that make everyone miserable (but make the company as a whole efficient).


Have you seen the SAP GUI?

But you are also right as well - and you'd be surprised at how inefficient it really can be.


That is my first reaction...


If you make comparisons to Google people will have no way of telling the difference.


I guess they might think 'that sounds like a good office job they just be smart and they must appreciate those free massages'. But they aren't going to second you to join the Pacific-Union are they?


> Outside of our peers also in the industry nobody cares that you're a staff engineer at Google.

Nonsense. I was talking to my office furniture dealer tenant about a fellow hacker. This man doesn't know a computer from an air conditioner. After I said "he previously worked for Google and Facebook" his face lit up and replied with something like "Wow, he must be good then." Never underestimate the layman.


Agreed, and it goes beyond that. We have a pretty poor reputation when it comes to dating (as heterosexual/bi men). Obviously, it's not "real" - a lot of us end up married or in relationships, but of all of the high paying office jobs out there, tech guys are probably the lowest in the ladder.


I dunno, the news of exorbitant salaries of SV programmers slowly make it into the mainstream media and those jobs are sometimes mentioned next to other traditionally highly desirable career choices, such as a doctor or a lawyer. Given how much America equates human worth with money, it should translate into increase in social status.

Another take: CS is in no small part just an obscure field of mathematics with only tangential contact with the real world. No wonder people don't care about it. Software engineering, on the other hand, should have higher social status.


So true.

Most people equate Computer Science major to code monkey / grunt. And, to be fair, in many places, that may not be far from the truth. Many CS graduates are simply working on building CRUD web apps.

And, even worse, sometimes you got the people who think a CS degree means you're a technician / computer repair person and that you can and will help them with their computer issues for free. sigh


Yup, this is my biggest problem with the field. 15 years in the industry and I've never seen anyone promoted out of IT. Your only escape is a being a founder of a startup. We are not included in conversations that matter. Our opinions are discarded. We are simply dispensable cogs in the machine, its equivalent to data entry work. No status, no opinion worth listening to. I did comp sci because my dad said it was a good idea. I hate programming it's the most boring mentally draining thing imaginable. I hate hate hate it. If anyone had told me compsci was a dead end, if they had told me it wasn't like maths or physics that don't pigeon hole you, I would have never done it. Doing compsci limits your options utterly. If you do compsci you are a programmer for life unless you are very very lucky. Or burn out so hard you have to go on benefits. Which I'm pretty close to doing right now. Programming is like pulling teeth now and I think I'm close to rather being dead than continuing to work in this field.


This is a totally different experience than mine. I did Electrical Engineering but have been a programmer all my career. I love programming. I love the creative process, the bugs, the build system, the frustration. I love everything about it. Maybe its a personality thing. I was never into what others think.

Also, I think you don't work in a pure tech company. My experience in the valley is that programmers are considered first-class employees. All my managers were programmers, some programmed on side. They understood all the complexity that goes in building a software. You can try moving into one of the pure tech companies.


I've seen plenty of coders promoted into management. Of course, it takes time - first they have to prove themselves in some tech lead or product owner role and later, if they seem capable, they can go higher. Come to this about it, two out of three of my current bosses (incl. a guy who has hundreds of people under him) are ex-coders.


Where do you work because this categorically does not happen to any appreciable degree in small to medium sized companies in London.

Also I would kill for a product owner role. The idea that a programmer can get into a PO role is laughable. I've never seen even the glimmer of a chance of that happening to either myself or my peers.


What do you count as a small company? My experience at a small company in London was that I had to be a combined programmer, manager, product owner, project manager and user researcher very early on because, well, there weren’t enough employees/customers to have actual qualified people acting in those roles full-time. (And it’s cheaper to make one person do all the roles and only pay them for one role, of course...)


Try using that to get PO or PM role at your next job. You won't even get to interview. I know, I've tried. Really really hard. I've sent out 100s of cv's applying for pm or ba roles with ample experience at small companies, with tech lead role, re facto scrum master role. 15 years experience. With a c.v the a CTO helped me write. And got absolutely no where. 1 interview out of hundreds of applications. You just do not realise that it is impossible to climb out of the programming hole.


I work in a large European bank. Mind you, the coder who was made PO is very good at human interactions and politics - but that's kind of a prerequisite for this role.


i’m one of your peers and i don’t care that you’re staff engineer at google. congratulations, you’ve scaled the advertising business beyond what was thought possible.


The advertising business actually has social status the UK. Saatchi brothers have links with the conservative party for example.


The premier minister of Singapore is a computer scientist ...

(Though that might not be his primary qualification.)


The PM was Senior Wrangler, so at least as much of a mathmo as a computer scientist. Moreover he is odd in two ways: first, he is the product of the scholar-army-politician pipeline in Singapore, which is quite unparalleled; second, he is the son of Lee Kuan Yew.


But he mainly had a career as a military officer. He gets his social status from that, not from being a computer scientist.


Computer science is pretty esoteric, there may be physicists but are their theoretical physicists?

Also, it's a relatively young field really, in terms of the HoL.

Lord Sugar ran Amstrad, a computer company, but he doesn't strike me as even being a programmer or electronic engineer (I could be wrong). But HoL is a sort of upper-upper management type gig AFAICT.

Should computer scientists have some special social status? I imagine it's like, Idk, soil science, people probably don't know it exists and then probably think you're a farmer (IT support/Programmer).


I don't need the validation of corrupt and incognizant meatspace organizations to justify my love and respect for computers and computer science. The only winning move is not to play :)


Yeah. Upper-class social status seems to be a function of who recognizes/approves/endorses you, and how much status they have. In software, status is completely different: Does your code work? Does it do non-trivial things, and do them well? It seems to me that it would be difficult to chase both kinds of status at once; having success at software may make it almost impossible to have social success, just because you're focused on a different goal.

So software people look at status as a game that is 1) pointless (as Nicholas_C said here, "play stupid games, win stupid prizes"), and 2) one that is stacked against you, since you start with no status. Most software types look at that game and say "Why would I bother? I've got better things to do."


I can agree on that social status of having CS degree in itself is near zero or negative. Which is a stark comparison to doctors or lawyers about whom people in general think possess better qualities than the rest of populace.

Yet I'd say it's the pursuit of intelligence that makes a person interesting in the first place, not the pursuit of gaining social status and a lot of money. So I'm quite fine if the common folk are that dumb to think that CS is inferior compared to those degrees, as if they somehow knew the difference. A lot of course depends on the institution and the quality of the education, as the lower prestige colleges definitely produce lower quality CS graduates than their equivalent in lower prestige med or law schools. I guess social ineptitude being more heavily represented among CS folk don't in the least improve their chances.

But to make a point, yes while the common folk might think that CS graduates are nerdy Gollums who code in a dark closet all day, that is just their prejudice getting the best of them. There are a lot of very smart and diligent people graduating with CS degrees, who with better social skills would be as good or better than the doctors and lawyers alike in problem solving in positions of power (such as the house of Lords). I myself though know only a rare few who would be even remotely interested in such, so I guess the situation will remain the same into the far future. Hopefully though some get involved with their communities' politics. Shipping a piece of fragile software with many stakeholders I imagine is somewhat similar to iterating a best policy involving all constituents in question. You just have to know how to sell it and get people aboard.


Regarding the composition of political domain in UK and the fact that it doesn't have much engineers taking active/prominent roles, it speaks more about the local culture than about the relation between politics and engineering. I understand that China has a lot of engineers in its leadership.

Regarding the politics in a democracy (UK and beyond), yes, it's a good point to look for the political apparatus as it presents well enough the essence of the underlying game, with its public image grooming and selection, all tailored to the perceived status in the masses. But then, looking at engineering (CS and other fields), I fail to see anything detrimental to public image buildup. May it be that engineering is a gate with a higher cost for a mere pass through when one aims to politics and thus makes itself a deal-breaker to that end?

Regarding the perceived lack of social status for engineering in general, I consider it a blessing. I'm quite glad there is a field where people have to be paid well (for their hard-earned skills and due to the sheer market demand), yet the status whoring game is relatively limited. I'm only afraid that it won't last.


I Agree 100%....your social status really only depends on your ability to say yes everytime a relative, friend, friend of a friend and maybe a relative of a friend of a friend has a problem with [Insert anything that contains a circuit board] To be honest I charge everyone now for fixing stuff, relatives included (except my mum...Im not an asshole lol)


It depends upon your definitions of social status as well and domains. From what I gather in the UK "class" is more related to the job field than the actual success within.

Say an adjunct professor who makes less would be considered higher status than a mining CEO of a multimillion dollar company. In the US the CEO would be higher status without question - even if some may frown upon their business practices.

Computer science is still a relatively young field so looking for status within the traditional framework would be a mistake akin to sneering at the pioneers of the industrial revolution for getting rich through practical means rather than conquest or rents.


This is why I got a BA (liberal arts and sciences) and a MS in CS. I wanted a traditional, classical university education not just a CS degree. I did not want to be stereotyped.


> I did not want to be stereotyped.

Did that work at all? Someone would have to be looking at your resume, skip your jobs and graduate degree and then notice what you did for undergrad.


Yes. I've held technical system software development roles, softer management/leadership/policy roles as well as roles in-between. One of my former bosses use to say he hired me because he wanted a "geek who could speak (and write)". He would say that jokingly, but it was a fairly significant compliment at the time.


Anecdotally speaking, I would disagree and would argue that the social status of software developers is actually quite high, given two prerequisites

1: You must overcome the immediate uber-nerd stereotype by being in relatively good shape and having basic social skills (small talk)

2: You need to give people a minute to google "average software developer salary"

Sure, you won't have the social cache of a Doctor, but I'd say it puts you pretty high in the social hierarchy based on personal experience.


Computers & computer science are also a quite very young field in regard with others (law, medicine, religion, etc.): not even a century old when the others have been around for several centuries, at least.

Likewise, you might also be coopted to reach the recognition to become a knight or a lord.

That's a steep cliff to climb in a lifetime if your work field and its impact on society are not understood by most of the population (they're definitely not).


> lawyers, doctors, biologists, physicist, mathematicians

CompSci is a very young field compared to those. It wasn't even a college subject before the 70s or so.


Mostly agree, but politics is hardly chock-full of other STEM graduates. PPE, history and law:

https://studee.com/media/mps-and-their-degrees-media/

(The civil service is stuffed with PPE grads too.)


Even in more mundane settings, the status of computer scientists is usually negative. For example, if a random acquaintance asks what you do, you'd be better off telling them you're homeless or unemployed than to admit you're a software engineer.


This is very true and one of the main problems of our field that needs to be addressed ASAP.


I don’t think it’s just that, I think it’s also the perception that computer science = programming. And programming isn’t a career, it’s a job you do for a decade or two before you get too old or move on to management. And if you’re planning on management anyways, why not start with a degree for that?


I've been "programming" for almost 20 years. I'm 39 -- I'm completely self-taught (as in no bootcamps or any other formal education related to CS) and have never had an issue finding employment. I can easily switch between about 6 programming languages, multiple scripting languages, run systems and bang out algorithms. I have lead teams and have also worked as a contractor for several years.

At what point will I face the decision to be "too old or move on to management?" What separates what I'm doing from an actual "career"?


At 39, you are right at that tipping point where job offers mysteriously start drying up. I'm not speaking from first hand experience, I've only been doing this for 10 years since graduating, but this is what I regularly hear from older programmers.

That's not to say that it isn't possible to survive past 40 as a programmer, my point was just that this is a deterrence for getting a Computer Science degree. Think about any other profession; doctor, lawyer, engineer; the perception of these professions is that they get better with age. Computer Science is totally opposite, it's a field dominated by young hotshots who spun the wheel'o'algorithms and got lucky.


I have to disagree with what you've heard -- I know far more than the other developers I work with when it comes to both old technology (which is still extremely relevant) and new (such as react etc) -- the bootcamp devs I've worked with have a barebones understanding of coding and regularly make massive mistakes that cost companies money. Fresh graduates are no better, nor are outsourced developers.

When it comes to jobs mysteriously drying up: you're talking about ageism. Thanks to covid-19 almost every offer I currently have on the table is remote, and I have 6 years of remote experience under my belt already... I predict that ageism will start to fade along with traditional office work. At the very least I can fudge my resume and make it look like I am younger with less experience if absolutely necessary.

Furthermore I have known many over 60 programmers who have no issue getting a job. Ageism might be an issue in silicone valley and might prohibit one from getting a gig at a new start up, but I believe this problem is overblown. I think that some older devs just fail to keep up with the industry, lose their passion and blame their personal failures on ageism.


I am not denying anything you're saying, I also know many older programmers who have no issues with their career.

My comment is about the perception of older programmers and why this may affect enrollment in Computer Science.

I agree with your analysis, but this is not the perception that the general population holds.


It's not zero status because most people understand IT work makes good money, and in this capitalist society money means better access and privileges. So, I do think people making 300k a year in SV have a great status.


We would call these 'new riches' and they are known for having money, but no class.

Not sure if this translates well ( not a native speaker ).


Thats because the high classes dont go into CS. They do philosophy, math, biz admin (to admin the money they already have), and law (to continue to control the masses)


The problem is CS is just a miserable field to be in unless you really, really enjoy the grind of it.

To me it comes down to some CS-specific version of Mike Tyson's (perhaps apocryphal) quote "everyone has a plan until they get punched in the mouth" - something along the lines of "Everyone has fun programming until they have to start debugging".

My city has several years of programming courses at the high school. A lot of kids sign up for the first year but the numbers rapidly fall off. They start the kids off with the basics and doing simple programming exercises. Generally they have fun while they are being successful getting boxes and lines to appear on the screen, but as soon as things get the slightest bit complicated and the students get into the weeds of debugging the enthusiasm dissipates pretty quickly.

It's not that most of these kids don't have the intelligence to tackle it if they wanted to; they personally just don't find it fun at all.


You bring a great point that I think needs to be discussed further.

Every year I spend more time banging my head and I think it is having serious effect on my mental health.

I enjoy programming and I don't really spend a lot of time debugging. My code usually runs fine, or I am able to easily find out what is wrong.

It is the whole combined complexity of all the tools that we use. Git, Java, maven, gradle, jenkins, Oauth2, aws(ec2, s3, opsworks, cloudwatch, iam, secrets manager, etc), prometheus, elk, splunk, etc.,etc. plus the combination of all the repositories, branches, modules, versions, libraries that we use.


To your point, there was an Ask HN thread yesterday where someone was asking for a simpler alternative to git. They kept messing up their repository when using git and they were ready to give up.

The responses were basically a) “git is the de facto standard. You can try mercurial but you’ll be missing out on a lot”, which is sadly true or b) “it’s not that bad, just really study the underlying data structures and git will get easier”.

I think the attitude of the second point is one of the reasons why writing software for a living can be so frustrating. Even the tool that saves and tracks changes in your work requires a non trivial amount of cognitive load to use correctly. It’s death by a thousand cuts. Sure, tool X isn’t rocket science but it’s also one of 20 tools I use and if it’s giving me trouble it can make the process of shipping software so frustrating.


I never resist the opportunity to quote:

Computer people generally design terrible computer interfaces because they are not only willing to cope with something bad, they're pleased to. - Alan Kay, Personal Computing Historic Beginnings


There is an ever-increasing library of skills and tools that all have major flaws that have to be used in IT/Software Development.

Nothing ever seems to work right - and because all software is written differently by different people in different companies and languages, old and new, you can't solve everything. Things just don't work, and often. Problems are ignored. Software is thrown out to users to be "updated later."


Oh yes, this tool situation is the worst part of our jobs imo. Every time I see a new layer coming in, I instinctively duck.

I hate how much time and brain space these things occupy. I can't even by lazy when working with them, there's always a ton of tiny things to read about and factor in, and often no shortcuts to just getting it over with. You have to be cautious and try to get it right the first time because most of them inevitably involve spending money, and your dumb mistakes will be quickly discovered.


I've often linked this in /r/cscareerquestions as advice to students: http://www.cs.uni.edu/%7Ewallingf/blog/archives/monthly/2018...

{quote}

But I had enjoyed working on the hard projects I'd encountered in my programing class back in high school. They were challenges I wanted to overcome. I changed my major and dove into college CS courses, which were full of hard problems -- but hard problems that I wanted to solve. I didn't mind being frustrated for an entire semester one year, working in assembly language and JCL, because I wanted to solve the puzzles.

Maybe this is what people mean when they tell us to "find our passion", but that phrase seems pretty abstract to me. Maybe instead we should encourage people to find the hard problems they like to work on. Which problems do you want to keep working on, even when they turn out to be harder than you expected? Which kinds of frustration do you enjoy, or at least are willing to endure while you figure things out? Answers to these very practical questions might help you find a place where you can build an interesting and rewarding life.

I realize that "Find your passion" makes for a more compelling motivational poster than "What hard problems do you enjoy working on?" (and even that's a lot better than "What kind of pain are you willing to endure?"), but it might give some people a more realistic way to approach finding their life's work.

{/quote}


Its just that right now programming jobs pay well. Not all passions line up with job that earns enough.


I am fortunate that my enjoyment of the hobby of photography wasn't discovered until I was employed with a good paycheck coming in. If I had found I enjoyed photography in high school or college I may have been tempted to pursue it professionally. The thing is... I hate the business of photography.

Yes, programming jobs tend to pay well. So do medicine, law, and various other white collar jobs... for that matter, so do many trades.

Its not a question of "does it pay well" but rather "are you willing to do the hard work that it entails and not burn out after a year." That question isn't one that many college students or bootcamp grads have considered.

If you only enjoy creating new apps and not debugging them when something breaks - being a professional programmer may not be the proper role to be in. Not all things that are written are new apps (brownfield is much more common than greenfield) and debugging is an essential part of writing software.

This is what is meant by willing to endure the hard work. One may have a passion for computers ("I love playing games and building new computers from parts") but not enjoy programming.


This

I've been working has a web developer for two years after completing a bootcamp. Peoples often ask me questions because they think about doing the same. I always say to them that this is not for everbody, you are banging your head against the wall most of the time. Off course nothing beat that sensation when you finally found the problem or even when you get closer.

But that has to be your thing.


> I always say to them that this is not for everbody, you are banging your head against the wall most of the time

This is what I tell people who want to get into bench science. It's funny, because I find programming to be an escape from the 'head-banging' of science. At least when I get stuck debugging a programming issue, I know that there is a fix, and I'll eventually find it. Compare that to science, where you might bang your head against the wall for weeks, months, or years, only to later find out that the problem simply isn't tractable, or that the problem had nothing to do with you at all.


Not all CS algorithmic or systems design problems, you know there _is_ a fix.


Consider this in addition. How many are beating their heads off a wall, and then solve it. Perhaps they are happy they figured it out. But then they remember this is for a piece of garbage ad-tech app, or part of a google project that'll go in the garbage in 2 years, or something to steal even more private information from end users, or it's another CRUD web app...

All the while they're being sold on how they're "changing the world..." or "innovating."


Skateboarding is similar. The people who get that rush after landing a trick for the first time will invariably spend the next few years doing nothing but skating. The people who don't will reasonably wonder why anyone would waste their time riding around on a stupid wooden toy.

It's a simple formula: if the gain is more than the pain, your life is changed.


Tell me more about the bootcamp.

I'm in IT and could probably bridge the gap to dev on my own -- did a CS degree ages ago, but don't do much coding outside of bash one-liners and some SQL -- but I'm rusty.

Plus I'm not super motivated to do hours of coding after dealing with 9 hours of BGP issues, etc.

So the bootcamp seems appealing. I'm not starting from zero, and could probably go hard for 3-6 months doing pure coding, and then run with it. I'm just not sure what my options are.


Like writing or art, you have to can't not do it. I've been retired for 3 years and I still do it, can't imagine not doing it, even if I don't do it every day.


I know that exact feeling. The first time I solved an issue and felt that rush is the moment I knew I wanted to pursue CS. Haven't looked back since.


An an aside: I would say debugging is one of my favourite bits of programming!


Nothing quite matches that triumphant moment when you finally discover the root cause of an issue that's been bothering you for days.


At which point you bang your head into the wall because the fix is so bloody obvious. :-)


And that can be demoralizing in itself. Early in my career, after make a stupid 'single character mistake' that broke my entire program, I started to think "maybe I'm not cut out for this".


For a long time, I've had the superstition that if I don't have to fix a couple of syntax errors (or other triviality) initially, it's a bad omen and there's probably some much more significant logic error lurking. Any time something compiles/runs for the first time without adjustment, I get nervous.


When I was first learning how to program it felt like arguing with the most pedantic person in the world. I would write a script that felt like I had crafted a concise and elegant argument, only to have the computer respond, "Invalid. You missed a comma somewhere on line 564".


The first and only programming course I took in college (a very long time ago), I still remember that after making a few typos or whatever on some program, you'd run out of your computer time and would have to beg the grad students who ran the computer center for some more CPU time.


Well, it isn't always. As in the latest big mystery I was a part of solving -- the build failed because there were files left over after the "clean" step of msbuild. This obviously shouldn't happen.

The culprit was an extra build action (among ~20) that had been cut-and-pasted from Stack Overflow 1.5 years ago and worked splendidly, until an unrelated update (dev machine prerequisite, installed organization-wide) caused it to behave differently on local builds but not on the build servers. The check-in comment of the commit in question was "merge hmm", and the start time of the failure is uncertain because the project was rarely built outside of the centralized build infrastructure (where it worked fine). 10 cumulative hours of debugging across four developers was spent to figure this out.

In my experience, these kinds of "WTF" errors happen more often than the ones that make you go "wow, I am stupid". At least when you reach a skill level where the obvious problems don't show up so often.

But the point stands that this requires an uncommon kind of patience. Hooray, we solved it. Now we are finally able to modify the back-end behavior of this specific type of mutual fund order, which is what we wanted in the first place. Think the finance part of the task is more interesting than the banging your head against the wall debugging the tech stack part? Tough luck! Should have been born at the time when this happened by manually operating a terminal in the back office.


I am inclined to shout "You f*ing idiot!" at myself if it was my own fault.

Yet another advantage to home working!


Well, sometimes, the _root cause_ is so bloody obvious. But now you have to figure out how to fix it without breaking everything around and spending a year refactoring.


Agreed. It's a little mystery that I get to dig into and investigate. Certainly sometimes the issue is just frustrating and tedious, but often it's illuminating. And it's gratifying to get to the bottom of it. To go from the initial phase of "what the hell is going on here" and arrive at some understanding.


You get to be the Sherlock Holmes of a digital mystery.


You have to be a little crazy to want to spend your life trying to get these damned things to work.


... and never be appreciated for it. ("why did it take so long?")


Money is a quite sincere form of appreciation :)


Don Draper: It's your job. I give you money, you give me ideas.

Peggy Olson: And you never say thank you.

Don Draper: That's what the money is for!


You don’t have to be crazy to be great at programming, but it helps.

My own anecdata suggests that best programmers are the craziest ones. But that’s also true for just about every other field that requires extensive self discipline to master.


> My own anecdata suggests that best programmers are the craziest ones. But that’s also true for just about every other field that requires extensive self discipline to master.

That's interesting. I can see this being true for Math, Astrophysics, Genetics, etc. Somehow it doesn't ring true for Law, Accounting, or Actuarial Science


The sad part is that you're not allowed to say this or nobody will hire you since you will be deemed "not passionate enough". This is a unique trait to CS careers that does not exist in other jobs where they rightfully treat their jobs like a job, not some spiritual life calling.


I say it all the time - I have a bit of a history of speaking my mind, though.

"If you don't enjoy computer science, please oh please don't do it. You're going to hate every waking day if this isn't fun. It's some of the worst stuff you could possibly do if you don't love it."


That's the odd thing about it. I literally got paid (quite well) to do things that I happily do for free in my spare time anyway.

You have to pay me to work on your problems, but there's a big part of me that would happily do it for free.


Can we talk about how much more CS people are expected to work than people in other fields ?

For most people here, CS is their hobby. So a lot of learning and knowledge acquisition happens during 'leisure' time. This is rarely the case in other professions.

If we count all the time we spend resolving environments, getting setups right, learning new tools and reading papers as work (as we rightly should), then most people in tech would be working far more than 55 hours/week.

This already ignores a lot of the quiet time people spend pondering over things and letting them stew semi-consciously. CS work is flexible, but is not easy or less-time consuming by any means.

If we try to force people into CS, then we will get what India has. A massive glut of incompetent tech 'talent' with BS in CS, but need to be retrained all over-again to even do the most mundane sweat shop coding that companies like Infosys and TCS need their employees to do. (I say this as an Indian). Millions who hate their job, earn low pay and have a very small set of nontransferable skills, because what they actually know is 'sweat shop tools' and not CS. IMO, if there is any demographic that AI/ML is most poised for eradicating, it is likely this one.

If CS in the US wants to increase participation without compromising on its present identity, then the only solution might be to foster interest and love for science/math/coding early in life and hope you can cast a wider net to capture everyone who would come to consider this profession a hobby.

Alternatively, it can go the way of every other mature profession and turn into a 9-5 boring thing you hate, but still continue doing because you need to put food on the table.


I know plenty of contractors who improve their own homes in their spare time, artists who paint in their spare time, writers with side projects, teachers who do planning/look for lessons, etc. etc.

That said, I think we'd all be better off if engineers demanded collectively not to work more than 40 hours. (Tech unions/guilds could be formed and focused just on stuff like limiting hours/paying for overtime and oncall, btw.)

I've done it individually, and it has never slowed my career progression -- even when I worked at Amazon, I was adamant that my family and personal time came first, but I still was promoted regularly.

I still code in my spare time, but it's totally unrelated to work.


In general, the less hours everyone works, the greater the advantage you have in working more. By just working 10 extra hours, I can be 25% more productive (there's a lot of simplying assumptions there, of course). This is why the 4 day work week never took off: I can just work one more day and realize a 25% boost in output, a major boon to my career.

Developers don't have much in common with the workers who originally created unions. Some of the differences are that work can be done at home, the potential for advancement and greater salaries is very high, and that the non-physical nature of the work allows you to work very long hours. All of these factors conspire to undermine any 40 hour max set by a developer union.

As average hours worked go up, the benefit of each extra hour goes down. I'm not sure where exactly the equilibrium is, but personally, I find that over the long term, over 60 hours per week leaves me feeling a little shitty and depressed, especially if I have a commute. I think most over can boost up to 80 and be fine for a couple months though.

If there's one profession where people are expected to work more than devs it's finance. New analysts in finance are pulling 100-120 For at least their first. I've done those kind of hours for maybe one week, but it kills you, both physically and mentally.


> most over can boost up to 80 and be fine for a couple months though

Staying alone and being a well put together human with relationships becomes completely impossible the second I go past 55-ish hours.

> people are expected to work more than devs it's finance

Finance is toxic at a whole another level. The rampant smoking, cocaine use, work hard/play hard etc. is in some sense mirrored in similarly intensive silicon valley startups where aderall abuse is just as rampant.

I am also not sure if the finance analytics work is as creatively taxing as coding (at least the design stage), which can be a major distinction.

Either ways, I hope CS never becomes like finance, ever.


> I find that over the long term, over 60 hours per week leaves me feeling a little shitty and depressed

We must have different bodies. 40 hours a week is plenty to do that for me (and I don't really work nearly enough 40 hours during the supposed 9-5). At the end of a typical workday (mostly coding), I experience quite thorough mental depletion. It is very unpleasant and makes the remaining hours of the day mostly a pointless and sucky experience, as I don't have the will to do anything (although sometimes I do recover after an evening of 3-4 hours of doing nothing and get a little energy back - however it's bedtime then).


I sympathize with this problem, but characterizing it as unique to CS is myopic IMO. Far from every "mature profession" is 9-5 in an office.


How common is this 55+ hours a week thing, really? I've only been a developer for 2.5 years now, and I spend some of my own time, say an hour a day (3 hours a night, once every three nights usually) working on side projects, and another hour reading technical articles or tech blog posts.

But I've never had a manager ask or pressure me to work more than 40 hours a week. In fact, they opposite is true, they've actually often discouraged me from working outside of core work hours because they don't want their developers to get burned out. Maybe I'm just fortunate that I'm smart enough, and productive enough, to get everything done in the 40 hour work week and I should feel blessed to be as smart as I am? (generally in the top 3-5% on all standardized tests throughout my life)

But to the best of my knowledge, my coworkers weren't being pressured to work more than 40 hours a week either. Or maybe they felt ashamed of having to work more than 40 hours to keep up and didn't mention it? Maybe the pressure wasn't direct pressure from management, but an indirect pressure just to keep up with everyone else?

Maybe it's the benefit of working in the Midwest?

I don't honestly know. But I can say that in my (short) time at both companies I've worked for, I've only met one developer that reported being asked or pressured to work more than 40 hours a week. So it just seems so strange to me to keep hearing it as a truism on here.


In my experience most professional software engineers don't actually code much in their free time. I feel like that's something that you do more when you're starting out (esp. if you're self-taught and need to build your resume), but as one gets older their priorities tend to shift towards building a family, pursuing other hobbies, etc. It's really tough to spend 8 hours/day at a job coding, and then spend your free time afterwards coding again.


Agreed so many professions have to keep a bit up to date but 90% of the stuff they need to know is learned on the job or in college a long time ago. In Software I feel like the things I was working on 10 year ago are completely different to what I do now, which is why 50yo devs are competing with 25yo for the same jobs (assuming you dont want to be a manager)


Can we talk about how much more CS people are expected to work than people in other fields ? ===> THIS


regarding india, you are confusing over hiring of engineers by consultancies like TCS. they take people from any stream of engineering (even other ones) and then train them. CS people formna fraction of it. and if you compare engineers who have CS degree in India and those who don't and yet work in TCS, you will find a lot of difference in skill. Lastly, money drives quality. from same University in India, you have CS students going to Google and to TCS. good money attracts talent. you have no incentive to improve in low paying job unless you want to switch


CS people are also paid much more than people in other fields.


I've always seen the same pattern in College decision: self-projection. That is, a combination of what they know and what they think they can do/like.

Most people choosing Uni choose from what they know. Majority of young people know little about anything CS or nerdy; They often know the end product (computers, phones, apps) but very little about the people working on it.

Compare that to doctors, managers, Wallstreet types, scientist, lawyers; they got incomparable exposure through movies, tv-shows and media in general. Even Scientist have more exposure.

Difference is that in those profession, you can see the people working in it (although often not an accurate representation) so it is easy for a young person to imagine "I can see myself wearing their suits, doing what they do". But just as no one applying for college imagine themselves in a janitors boots, there must be a observable social status in the profession too. "you will be socially respectable after 4 years here!" sells better than a salary figure. I really don't think CS majors come close to the (perceived) social status for the young, compared to the above mentioned professions.

The closet to high social status an CS gets to is the "IT/tech entrepreneur", and you don't need a CS major to get there.


CS types in the movies are basically magicians. Something needs to happen, they open a laptop, they type away furiously, there's a cutaway which shows them frowning, then a red dialog box on the screen turns green, and the thing happens.

It's hard to get from that to the reality developing CRUD apps.

There may be some drama, but arguments about which framework to use are not usually very cinematic.


"It's hard to get from that to the reality developing CRUD apps."

on a tangent, this is especially bad for Architects. When I was in college I fell in with an Architecture clique, I went to all their parties and made life long friends even though I was majoring in CS and they were all Architecture majors.

They were told from day one that unless they're the next Frank Lloyd Wright (or some other world renowned architect), they're a complete failure and an embarrassment to the art. Then they graduate, get certified, and end up copy/pasting facades on Discount Tire construction plans or something else like that. It's a very bitter pill to swallow.


I think part of this is the limitations of interest that come from a film. You can write a whole movie about an electrical engineer building robots and visually show the struggles along the way. If you compare that to a software engineer searching for another fucking memory leak or something then it's just not going to be as visually interesting.

An interesting thing about this is that I think it's easier to show in print. I can read a book about a maverick developer and have it describe the errors and the trials and tribulations and it isn't as slow by comparison. Hollywood then feels the need to emphasize what they show with wild CGI, which is a whole other issue when it comes to entertaining portrayals. I think the only realistic portrayal I've seen onscreen is Mr. Robot, and even that goes into fiction when it's most needed for the plot.


Valgeind and vim are both pretty neat looking IMO. Showing the real tools occasionally is something I’ve enjoyed seeing in some recent Sci-Fi movies. Tron Legacy and Chappie are both examples and even though the end result was unrealistic I thought they did a neat job showing the engineer working for years tediously on the project.


Tron did do a decent job, it was cool to see that. At least having a basis in reality goes a long way to making the the 'fi' part believable, if only for those that recognize the basis in current or previous technology.


> I thought they did a neat job showing the engineer working for years tediously on the project.

I don't think that would look very appetizing for someone considering their career options...


> CS types in the movies are basically magicians. Something needs to happen, they open a laptop, they type away furiously, there's a cutaway which shows them frowning, then a red dialog box on the screen turns green, and the thing happens.

To me this is the interesting part. I guess it's fair to say that you tend to see more and more films with clips of someone hacking away at a computer. Perhaps the issue is they they are rarely the star of the show. They're always the supporting act. Think of the two guys who with work with Tom Cruise in the MI series, or the technicians/magicians that assist James Bond. In the years that have elapsed, in spite of the success of FB, Instagram, Twitter, Stripe, Google, WhatsApp, even Microsoft (presumably all started by "nerds") it seems that it's not something many aspire or look up to.


I think this is why I have so much trouble in my career. I just need to resign myself to writing tests, fucking with build systems, and not shipping a ton of features.


> janitor boots

I’d hazard that in the last decade or so (more than most), CS is akin to being a Digital Janitor.

Debugging/repairing things, cleaning up spills, dealing with problems the kids make, working long hours to keep the system going.

The difference is, in some markets, you can make a lot more.


> I've always seen the same pattern in College decision: self-projection. That is, a combination of what they know and what they think they can do/like.

I was guilty of that but I don't think I was wrong to think that way.

I decided to work in Computing when I was 10 and would like to think that I'm quite good at it, but felt that I'm not good enough at doing essay style exams to be able to pass a CS degree.


> I decided to work in Computing when I was 10 and would like to think that I'm quite good at it, but felt that I'm not good enough at doing essay style exams to be able to pass a CS degree.

This doesn't make much sense; you'd be taking math exams, not writing essays.

Source: I have a CS degree.


I chose to do more maths courses to avoid having to write essays.

Source: I failed a CS degree.


The number of essays required for a CS degree is zero. If you think otherwise, all I can really say is "you're doing it wrong".

Graduating from college usually requires some essays, but there are easy workarounds for that.


You seem to be assuming that your experience is universal.


Why? I'm assuming that my experience is common, which it is. That's more than enough to disprove the idea "I'm not good enough at doing essay style exams to pass a CS degree". Everyone is that good, because there is no minimum essay-skill requirement to pass a CS degree.

Are you thinking that the only CS degree you could conceivably otherwise have passed also had a strict essay requirement?


What style of CS exams were the ones that you took, multiple choice ?


They were math tests. Commonly proofs. Sometimes things like "calculate the result of this addition in this ALU".

Sometimes also things like "what is the output of a lexer?" ("A stream of tokens."), or "identify the bug in this code snippet".


A few observations I have seen(US Based):

- In college there were basically no women in any of my classes, like 1 or 2 in a class of 30-40. Not having an entire gender being interested in a field(generally speaking) makes numbers overall very low.

- In a Java class I took in college, it was standing room only for the first two sessions, after 3 weeks the class was 70% reduced, by the end of the class it was about 25% of its original size. CS is hard, lets be honest(for most people), to excel you have to love it or be mathematically inclined.

- People, when looking at a career don't see CS as long term choice, they hear of burnout due to extreme overwork, and blatant ageism when you hit 40's. I asked a friend who went into the medical field about CS and they said they want to work into their 60's-70's and didn't want to be forced out of work due to age bias.

- Most engineers don't have much 'clout' in a organization that isn't a pure tech company, I have been solicited by GS and other hedge funds but always pass as I know I will always be 2nd fiddle to finance folks/business majors.


> - In a Java class I took in college, it was standing room only for the first two sessions, after 3 weeks the class was 70% reduced, by the end of the class it was about 25% of its original size. CS is hard, lets be honest(for most people), to excel you have to love it or be mathematically inclined.

Yes CS is hard. But arguably so are Maths, Physics, Psychology, Medicine, Law, Engineering, etc. I wonder what the drop out rates are for those are. And more importantly they seem to be popular in terms of the numbers of people that want to pursue those courses.

> - Most engineers don't have much 'clout' in a organization that isn't a pure tech company, I have been solicited by GS and other hedge funds but always pass as I know I will always be 2nd fiddle to finance folks/business majors.

I think you're right about this. Although you get some clout as a Quant developer in those types of places


>In college there were basically no women in any of my classes, like 1 or 2 in a class of 30-40

In high school, about half my AP CS class was girls, I think.

Maybe it's not so much that "an entire gender" is disinterested but that there was a tidal wave of people who wanted to get into programming after 2000 who were mostly male and changed the culture? And a lot of people, who were good at other things besides computers, said yuck and did something else.

It's easy to assume that when a group dominates a field that they must be better on average at the required skills, but it could be more a result of their lack of other skills.


I don't think it's a post-2000s thing. In a year where hundreds graduated with a CS degree, I think there might have been around 15 females in my year (1994).

My brother did CS as well (mid-1980s). There might have been only one female in his year. There might have been more, but he never spoke about them that I can remember.

I suspect the gender bias has been around for a long time.


It fell in the mid 80s, then again in the 2000s.

https://images.techhive.com/images/idge/imported/article/ctw...

There has been a gender bias, but it has been getting progressively worse over time.


> In a Java class I took in college, it was standing room only for the first two sessions, after 3 weeks the class was 70% reduced, by the end of the class it was about 25% of its original size. CS is hard, lets be honest(for most people), to excel you have to love it or be mathematically inclined.

I don't understand how a college survives 75% of their students dropping out like that?

And do they not interview and assess people going in for aptitude?


At my school, generally you would enroll in ~3-5 classes per semester. One or two of those classes would be your "main focus" for the semester, and then you might try to fill a breadth or take something that interests you. You would have a week or two at the beginning before your schedule is fixed to move around classes. So you're not dropping out - you're swapping an Intro to Programming class for something you think you'd get more value out of. I've dropped classes ~45 minutes in to the first lecture because I just... didn't need to take it and wasn't enjoying the professor speak.


Well it is 75% of a subset, computer science as oppossed to the whole college. That and they are largely a drop out of the class as opposed to the college. They mostly transfer to other easier "back up" majors.


Dropping the Java class =/= dropping out of college. At most it means dropping/switching their major.


> I don't understand how a college survives 75% of their students dropping out like that?

Students pay upfront.


I agree with your points about perceived burnout and ageism. I disagree with the anecdote about difficulty of the Java class. I don't have any first-hand experience with calculus, or any other STEM classes (was a communications major before self-teaching/bootcamp) but I would imagine the difficulty there would be pretty comparable


There's one other possible, additional reason.

I recently asked a 17-year-old high school senior who is heading to college what she's planning to study, and she said it would be mathematics, biomedical engineering, or some other kind of engineering. She's self-motivated -- says she will be studying multi-variate calculus, PDEs, and abstract algebra on her own this summer. She maxed out her high school math curriculum, which included linear algebra as an elective.

Naturally, I asked her about computer science, and she said something like this (paraphrasing):

"The kids who love computers at my high school seem to be able to spend their entire day focusing on a computer screen, even on weekends. I cannot do that. And those kids are mostly boys whose social behavior is a little bit on the spectrum."

While I don't fully agree with her perspective, it makes me wonder how many other talented people shun the field for similar reasons.


That pretty much lays out one of the more standard explanations for why more women don't go into CS.

Things arguably changed in the early 80s with the rise of PCs and gaming. While programming certainly existed before that, it wasn't something that most kids were exposed to in high school and CS curricula in general were heavily theory oriented and often in the Math department.

Today, if you want to be a mechanical engineering major there's no expectation that you lived in a machine shop all through high school or otherwise spent all your spare time in hobbies related to your college major.

Whereas, a lot of CS curricula today at least implicitly assume that you're comfortable with computer command lines, basic programming, etc. And, if not, you'd better get up to speed in a big hurry. Because most people in your class are up to speed and program for fun. I went through a MOOC from MIT a while back (6.001) and I can't begin to imagine working through that from a baseline of maybe one high school course.

ADDED: And, of course, you periodically see a similar attitude reflected on forums like this one when people argue that they won't hire someone without a GitHub repo who programs for fun nights and weekends.


Could this actually be good, or at least quite understandable? (I'm not actually sure whether you intend your comment to just be descriptive, or also judgemental.)

Does anyone expect college music programs to be easily accessible to people who didn't play an instrument, or sing in a choir, during high school? Similarly for dance, and drama, and art. And if you're right that mechanical engineering schools no longer expect students to have been tinkering around in their spare time previously, is that actually good?

At one time, there was good reason to not assume that incoming students had any programming experience, since many of them wouldn't have had access to computers, and so would not have had the opportunity to develop computer skills, or even to know whether they were interested in computers. But today in western countries, for any but seriously impoverished kids (or I suppose, those with mis-guided parents), that is no longer true.

There remains the possibility that a toxic culture in high school has prevented some students from realizing that they are interested in computers at that point in their lives, and therefore some remedial action in college is necessary. But fixing the toxic high school environment would be preferable.


> "There remains the possibility that a toxic culture in high school has prevented some students from realizing that they are interested in computers"

I take some issue if the characterization is "the nerds" are the toxic ones here. It's been a while, but the high school culture was overall toxic if you were not attractive and popular, and computer geek types were frequently targets for their interests. Young women were as bad as the males in the shunning.


I didn't mean to imply that the "nerds", or any of the students, were "toxic". It's the culture. Probably starting with the whole concept of segregating teenagers from the rest of society.


Interestingly, there was almost no bullying in my high school in Poland in the nineties. I think school bullying may be a product of Anglo-Saxxon culture, which is very individualistic, success oriented (i.e. if you're a "loser" you're barely a human being) and also kind of heartless. Currently, as Poland converges to the standard of global culture emanating from the US, there are reports of some cases of bullying, but still I don't think it's the everyday reality of each school.


> I think school bullying may be a product of Anglo-Saxxon culture, which is very individualistic, success oriented (i.e. if you're a "loser" you're barely a human being) and also kind of heartless.

That is rather refuted by the rather notorious bullying in Japan, which is about as far away from individualistic culture as you can get.


There was plenty of bullying in my middle school in Russia in the nineties. Hell, there's a 1983 Soviet movie about bullying.

Any kid that was weird and had no "redeeming" qualities (strength or wealth) was likely to be bullied. Don't tell me your class was one big happy family and that you didn't have that one kid that no one cared about.


Yep, we had one guy like that, that was kind of weird and thus was unpopular and made fun of by a couple of guys. It was far from the scale of "industrial bullying" that I imagine the US/UK schools are - with regular beatings, putting heads into the toilet etc.


Thanks, agreed


You're right in that music programs demand a minimum level of proficiency with the chosen musical instrument. Many (if not all) have auditions as well.

I would say the programming is a bit different. It is true that someone who has been working computers before they start college is likely to do better in the programming assignments. I suspect in many cases they'll be bored. They might finish in 30 minutes what others would do in 3 hours. It's a gap but in the grand scheme of things it's not that significant. Now look at someone who has been taking violin lessons and exams for 8 years compared to someone who has never touched. The gap is huge. Perhaps of greater importance is the synaptic pathways that have been developed in the musicians brain coupled with the muscle memory and intuition developed over a prolonged period of time. I'm not saying that the programming knowledge acquired before college is worthless but that much of it can be acquired by new comers into the field over a relatively short period of time.

As to the toxicity of the high school environment I wouldn't be able to say. At college I certainly encountered the "nerd" times. As far as I remember they were not toxic at all. If anything many were either shy or generally awkward in social settings. Otherwise they were great to hang out with.


I think that's all fair. Although I also suspect that those of us who have been programming at least casually--even if not professionally--for years may minimize the challenges of learning to program and generally understand how computers work on the side while also tackling a challenging CS curriculum.

But, yes, I'm pretty sure that making up for not having hacked around with Python code in high school is a way lower bar than making up for never having taken piano or violin lessons.


It's a bit of both. For the most part, we encourage students to explore new interests and even set themselves onto a completely different track in college. And, for the most part, STEM majors assume nothing beyond interest, aptitude(?), and standard HS coursework.

At the same time, I agree that programming (if not necessarily CS) has a sufficiently low barrier to entry these days that some exposure prior to settling on a CS degree seems like a reasonable expectation, especially at more elite schools.

ADDED:

>And if you're right that mechanical engineering schools no longer expect students to have been tinkering around in their spare time previously, is that actually good?

Certainly when I went to school, there was no expectation of any real prior exposure to STEM in hobby form or otherwise outside of high school courseware.


> Today, if you want to be a mechanical engineering major there's no expectation that you lived in a machine shop all through high school or otherwise spent all your spare time in hobbies related to your college major.

Really good point. As someone who grew up with computers and programming, despite loving all of it, there is a bit of pressure to continue to work on side projects constantly. In reality, I don't think that the majority of developers do (at least in my experience with coworkers), but maybe it's more of a vocal minority. Nevertheless, that pressure is still there.

My mechanical and electrical engineering classmates work on a side project from time to time, but it does seem like there is a lot less of a focus on lots of projects being completed.


I haven't worked as an engineer for a long time but I got a degree in mechanical engineering. Truth be told, I never had a hobby of fiddling around with cars or doing most of the other stereotypical things that mechanical engineers are "supposed" to do in their free time.


> Whereas, a lot of CS curricula today at least implicitly assume that you're comfortable with computer command lines, basic programming, etc. And, if not, you'd better get up to speed in a big hurry.

I graduated a CS program in 2013. In my program there was no assumption of familiarity with the command line. I specifically remember several lectures about how to navigate a file tree on a command line, how to run programs on a command line, what STDIN and STDOUT were, what pipes were, etc.


Also graduated in 2013, not in CS but in a related major. I'll say this: no, as far as the school was concerned, you didn't need to know anything going in, but the people who had no familiarity with the command line or computing were obvious to pick out of the crowd and those same people tended to struggle later on. The ones who did well were the ones who had sought out that foundational knowledge on their own.


I'm sure it varies. There are certainly "Intro to..." MOOCs out there that mirror in-person courses that basically jump right into theory and just reference some Python (or whatever) textbook. And the discussion boards are filled with people obviously completely out of their depth with even getting started.

There are, of course, other courses more pitched to people with no experience at all. And presumably in person there are TAs and fellow students who can help someone who really doesn't have any background in programming, setting up programming environments, basic OS functions, etc.


The observation re: engineers who never set foot in a machine shop is actually a real problem in industry, and a common cause of antagonism between engineers and the victims of their designs and drawings: machinists and fabricators.

There's a huge class divide in engineering between designing the the thing and making the thing, despite the fact that the two activities might require equal skill in different ways, or that sometimes making a thing to spec might be harder than doing the design work.

The best engineers have mechanical and process sympathy.


And, ironically, the better the school the more theoretically focused the curriculum tends to be. That said, I did take a manufacturing processes course (basically machine shop plus some related theory) undergrad and I did have project-based classes that involved actually designing and building things.


I think part of the reason is better schools are more selective and assume better students that will be able to pick up the shifting practice easier while the theory may last a lifetime for them. Needless to say the assumptions may not always hold.


I don’t follow the argument. OK, CS assumes some knowledge. What’s that got to do with why WOMEN don’t go into CS? It’s only relevant if you start with the same assumption that the student has - mostly boys like programming, therefore women don’t gain the knowledge required to go into CS. But that’s just a tautology: women don’t like CS because they don’t like CS.


My niece had almost the exact same opinion despite having multiple family members who didn't fit that description, including her mother! It wasn't until I introduced her to some of my younger female co-workers that she committed to being a CS major. She's now a third generation software engineer, which has to be fairly unique.


That is unusual indeed!

The question for which I don't have a good answer is, why did your niece have the same opinion despite so much firsthand evidence to the contrary?


I've talked to her about it and she can't really articulate why. I'm closer to the nerd stereotype in that I'm on the computer a lot but her mother (my sister) definitely is not. I think it's mostly pop and teen culture still harboring the antisocial stigma. I'll have to talk to her some more.

There is probably some connection with video games, in that boys overwhelmingly play games where girls do not. I don't think the games cause the disparity; whatever it is that draws boys to VGs is what draws them to CS as well.


> "She's now a third generation software engineer, which has to be fairly unique."

The profession isn't very old yet, but it's coming. My oldest son is also planning on becoming a third-generation programmer.


> I recently asked a 17-year-old high school senior who is heading to college what she's planning to study, and she said it would be mathematics, biomedical engineering, or some other kind of engineering.

I find this interesting. In this day and age I get the impression that whichever STEM field one goes into there will be considerable time spent in front of a computer screen. Whether researching, writing programs, running calculations/models, writing papers, proofs, looking for exo planets, etc. Computers are everywhere :-)


There certainly isn't much practical career differences between studying physics, cs, or math. The best paying and most abundant career opportunities in all of those fields is some form of software development.

It's sort of a similar situation for lots of engineering too, especially those who study fields with tighter labor markets (aero, biomed, nuclear). Lots of young people set their sights on NASA/Boing/GM and end up not making the cut. I've worked with lots of these people during my career.


> In this day and age I get the impression that whichever STEM field one goes into there will be considerable time spent in front of a computer screen

That was true in the 1990s, too.

And wasn't only true of STEM.


I don't understand where did this perspective come from? Is it from movies? I've been in this field for 6 years now, and I never encountered the stereotypical nerd in this field whatsoever. Not during my CS course not during my career.


It's a half-true stereotype. I work with people who basically do almost nothing but code or talk about code... and they're in their late 20s and 30s. I've been on dates with software engineers who bring tech stuff to the conversation a little too often for my tastes as well.

Young teens are more obsessive about hobbies so if you're really into computers at that age, that's all you do.

In the real world though, for every person like that, there's ~10 who either don't think about code after 5pm or aren't nearly as obsessive. But it's definitely a thing in our industry!


I used to be like this then my interest broaden a lot when I was about 22. I basically have friends now that I only talk via chat or when I want to talk tech since my old crowd would just chat about it perpetually.


The nerd stereotype is part of it. But there's also a part that runs along the lines of "Why would you go into CS if you haven't been fooling around with computers a whole lot in high school? Because that's what all your classmates will have been doing."

There's probably at least some analog to majoring in music. Sure, you'll probably spend a lot of your time in college learning about musical history and theory but it would probably seem a bit odd--and you'd probably be at a significant disadvantage--if you'd never had any music lessons or otherwise learned anything about music.


" seem to be able to spend their entire day focusing on a computer screen, even on weekends."

I absolutely can and have done that. Many times. In fact, it used to be most of the time.

But I'll admit that the majority of the programmers (or other IT, for that matter) I've worked with didn't seem like people who went home and played on the computer all night and all weekend.


In her case, it comes from her experience in high school. Nonetheless, I do wonder whether and how the stereotype is reinforced in popular culture.


To be honest, I fell into that when I studied computer science in college. I just realized I couldn't sit in front of a screen for 7-8 hrs a day without many breaks. I decided to go into medicine mid way through.

That being said, I'm realizing now that doctors spend a ton of time in front of a screen as well..as are many professions now a days.


Literally everyone spends huge portions of their days on their phones/tablets/laptops/tvs.

What they're really saying is: Programming is boring.


I'll echo the sentiment myself.

I'm not a SW engineer by training or profession. However, that I can deal with computers/programming at all has been a mixed curse/blessing for me. Typically, if a computer problem comes up, I'm the one to deal with it, simply because no one else can.

That means I've learned 'enough' about a lot of obscure topics to really get into trouble.

Honestly, I hate it at the time, but in the long term, it means my career is pretty alright. Still, I agree with the young lady's dislike of staring at yet another incomprehensible screen for weeks on end. It's not why I got into what I did and it's a bit of a waste of my attention.


This is definitely an issue, and well put by the student you spoke to. Who wants to be surrounded by odoriferous, socially challenged young men, in any scenario? I occasionally consider myself as part of that group, and I'm irritated just thinking about us!

What knowledge could be worth the risk to your social life, computers!? You'll make more money and meet more interesting people elsewhere. Even just across the hall, the math class looks like they're having much more fun.

CS 101 should be cracking the enigma machine and defeating the damn nazis, not writing Python (Bleegh!).


The computer screen and keyboard is just the interface. It’s the tools that you must use to access the computer (for now).

The real magic is in the ideas, the thought processes, and the algorithms that makes the programs come alive. You can scratch this out on a chalkboard, if you want.

You’re like a magician, that is able to synthesize something, from really nothing, except a bunch of bits organized together to mean something.

On the flip side, these folks spend hours on their iPhones reading their depressing Facebook feeds.


Yeah, this is it.

Most people don't enjoy computers.

Most geeks don't enjoy people.


I'll second the statement:

> And those kids are mostly boys whose social behavior is a little bit on the spectrum

I a lot of us are on the spectrum, more-so than other humans.

It's that puzzle gene in us that makes us want to obsess until we figure out the problem.

I've also noticed more cases of bipolar disorder and depression depicted here than in other communities.

There's so few of us compared to others because we are wired differently.


The reason is because it is a terrible job. Unlikely 90% of other jobs, you have to mentally burn your brain out each day, constantly learn new things, and focus intensely, supposedly for 8 hours. The reward is nothing, not even good pay outside of a couple of tech giants in the USA. If you compare it to a trade, there is a night and day difference to your mental health.

The wage data in this article is meaningless because it ignores the fact that the few places with the 100k+ wages are all in ridiculously expensive cities. Those wages bring up the "average", making it seem high.

No sane person dreams of sitting at a computer all day doing harder things than everybody else sitting at the computer and making average pay. Not only that, but most employers would rather pay a person $5 an hour to make their app from somewhere in yemin then they would hire a local person.

You also never get to be part of any kind of inner circle within the company. You will be paid less than some random useless person who "knows somebody high up" and is in charge of "managing" you.


>No sane person dreams of sitting at a computer all day doing harder things than everybody else sitting at the computer and making average pay. Not only that, but most employers would rather pay a person $5 an hour to make their app from somewhere in yemin then they would hire a local person.

A bit arrogant to assume that your job is harder than everybody else's - most people feel that way. And pretty much any office job can be at risk of being outsourced, not just programming.


Let me know when a company outsources their Finance department to India...


> not even good pay outside of a couple of tech giants in the USA

That's a huge exaggeration. In what other field can a bright kid take a 12 week bootcamp and get a job that pays $80k?


> That's a huge exaggeration. In what other field can a bright kid take a 12 week bootcamp and get a job that pays $80k?

They did specify "outside of a couple of tech giants in the USA". Here in Europe, €30K would already be a good starting salary. Personally, 10 years in, I don't expect to reach €80k.


My first tech job wasn't event at a FAANG company and I made $110k right out of college. My next job was at a ~1,000 person startup and my salary was bumped up to over $160k.

Maybe it's a Europe vs US thing but it's definitely not the case that salary is poor outside of tech giants.


bay area? dang that's a lot. is that writing CRUD apps? EE PhD's don't earn that amount even with 2 years experience


If they specified "outside of the USA" then I totally agree, but the $80k bootcamp salaries are absolutely not from the tech giants!


> Here in Europe, €30K would already be a good starting salary. Personally, 10 years in, I don't expect to reach €80k.

That's on par with engineers in any other discipline. Except those have a Masters, not just a bootcamp.


Well in the Paris region, as an additional data point people with a master degree from rather good engineering schools get 35K - 45K euro.


Is that before or after taxes?


Convention in Europe is to mention the 'before taxes' number. To the best of my knowledge that is true for at least western Europe.


> battertenr 7 hours ago [–]

The reason is because it is a terrible job. Unlikely 90% of other jobs, you have to mentally burn your brain out each day, constantly learn new things, and focus intensely, supposedly for 8 hours.

Yes, and I can't imagine working a job where you do the same thing over and over, day after day, year after year. Data entry, accounting, 1st and 2nd level support, driving a taxi, hell, even flying a jumbo jet.


IDK about this take in the context of the workplace. My experience has been that non-engineering office workers work the same amount of hours or even more for almost half the salary we get... in the same expensive cities.

I'll still take software engineering over being a lawyer (3 grueling years of $40k/yr tuition and 12+ hour days) or doctor (a decade of expensive school) even if they make more money.

Trades are cool and underrated... but they also ruin your body and also aren't as high paying as people think (at the beginning it might be close to minimum wage).


> because it is a terrible job

Well, you're right, but 18-year-old high school graduates don't know that, at least not yet. That's not what's driving them in selecting a major (or skipping college entirely).


While the points you make are valid, they have nothing to do with why people who don't know what the field is like, choose a different field such as engineering, which is a disaster in its own ways (good luck finding a job).


I never ended up finishing my degree because it became trivial and pointless by the time that I got a job and started gaining actual real experience and learning that the college/university teaches you idealistic and fantasy concepts of how IT should operate. Reality I've experienced is that it's absolutely nothing like that, places are build upon decades of mixed generation technology, only upgrading a little part here and there. I've moved on from the dig-in hands-on of IT and now do a strange combination of electrical engineering and network engineering. I was working in IT at an amusement park which I cannot compare to any other business to how it functions because the best comparable description would be to describe it as supporting IT for an entire town and all its businesses. What I ultimately learned and took away from that is a fresh BS graduate is basically worthless in comparison to someone who has at least one single year of real experience because it boils down to the requirement that schools do not teach. That skill is troubleshooting, to be able to swiftly and intelligently resolve a problem. It's not something my schooling ever put any major focus on and so as I gained more and more experience at a vastly faster rate compared to going to school, I realized how worthless the degree really was. It was just a meaningless statement. The second thing is all the certifications, and that's what, I believe, is valued higher than having a degree, but about equal to experience. Search engines have provided me with more knowledge and answers than 8 years in school could ever come close to. That's just my experience and view.


FWIW I've been coding since my early teens and enjoyed it a lot, but when it came to university (in 2009) I had very little interest in doing a CS degree and instead opted for Maths. The two main reasons were: a) I knew that doing Maths instead of CS wasn't really going to hinder my job prospects in any way, and b) CS sounded a lot drier and had fewer options and choices than the Maths degree (in the UK you apply for the course and you generally don't do anything from other courses, so your choice matters a lot).

The first point I think has born out fairly well, even if it was probably a bit arrogant. Certainly when I'm interviewing grads I'm not actually that interested in if they did a CS degree (though that might be more because I didn't do one...). We don't really do early stage training so we're looking for evidence that the grads can actually code, whether its by pair programming, via questions or looking at personal projects, etc, its the people who have done it as a hobby that tend to shine there.

The second point is highly subjective and obviously quite personal, but equally if people know they can get into software engineering without a CS degree then I think they're more likely to do a course that really interests them. After all, if you it doesn't effect your job prospects that much then why wouldn't you? There is a fair argument to be said that the industry should be better at hiring CS and code camp graduates and doing on the job training, but that's not where we're at currently, alas.

If anything I tend to view CS as the academic arm, and software engineering as the practical/vocational arm. In the same way e.g. law works (at least in the UK), where actually most lawyers haven't done law as their first degree and do a conversion course after instead (often getting a contract before doing the conversion cause and then having the firm fund it). Really, its the classic argument about how much university degrees should be academic vs vocational.


I think this is the crux of it. What we're doing as software developers is not a scientific discipline, it's engineering. So if you want to be a software developer, computer science is the WRONG field for you.

Computer Science is largely concerned about things like algorithms and complexity, theory of automata, and stuff like that. They're doing research.

Software developers care about those algorithms, but we decidedly do not want to be implementing them. I've got libraries, where somebody already took care of coding the hashing or binary-tree-rebalancing algorithms, or databases with the same. There's really no reason I need to be able to explain how quicksort differs from bubblesort.

But what we DO care about is how to gather requirements, how to perform proper modeling and design, and stuff like that. Yet those are classes in the engineering school, and not required of CompSci majors (at least not back when I was in college).

The result is that folks with a CompSci degree are ill-prepared for a career in software development. They never use at least half of what they were taught, while on the other hand, at least half of what they do wind up needing was never taught to them.


I disagree pretty strongly. I wrote lots and lots of practical software as part of my undergrad. And the software I wrote was pretty diverse, including, file system drivers, image recognition, data mining / text classification, exploit utilities, etc. Most of the complex theory has been offloaded to graduate school to make way for "practical applications." Plus, I feel like my education set me up to be a little ahead of the job market, as data science was a track of my CS ten years ago, and you'd have left university with your own little scikit-learn library.


Well said. And THIS is why I have no qualms about not majoring in CS 10 years ago, despite being at a big-name university with a well-regarded CS program.

I love working as a software engineer, and had been tinkering with web development independently since high school -- and it didn't really occur to me to major in CS. Other than both involved working with computers, I didn't see the connection. I had dismissed CS as irrelevant to my interests, too esoteric, boring, dry.

In the course of my current work, there are some things I do wish I'd learned more about, but not enough of them to make me regret not majoring in CS.


I personally think CS is generally taught extremely poorly, specifically any portion where a professor attempts to teach you to code. It generally just comes down to opinion and memorization, its not really fun. I had the experience of having more project based programming classes (like a game or operating system) and that was totally fun, but classes where you have to implement tiny examples of OOP or something are so unbelievably boring (this is what I imagine the cs101 classes are at many schools). If that was my intro to it, I don't think I would have stuck with CS. I also think the theoretical stuff is taught poorly too, it can just be so dry. I think a big issue is you are taught that a concept exists, you don't necessarily go through and try to solve it yourself. I remember my intro to sorting was "here are all the algorithms you should know", not "try to come up with a strat for putting numbers in order." The latter is significantly more interesting and engaging.


The author notices that the nr of bachelor degrees went down every year from 2005 until 2014, at which year it went up again. It takes 4 to 5 years from the moment of choosing your study until earning your degree. That means relatively many people chose a CS study in 2000 and also in 2009.

I guess the explanation for 2000 is that the dotcom bubble was still alive and well, the explanation for the popularity of 2009 must have been the credit crisis that made lots of people pursue the job certainty of a CS degree.


Their choice of 2005 is definitely the culprit (4 years after the dot-com crash), and it's only gotten more obvious in the years since this post. There's been 60% growth in the number of "Computer and information sciences" (CIS) BAs since then, compared to 20% for Bio-science, 15% for Physical-science, 25% for math, and 40% for Engineering.

https://nces.ed.gov/programs/digest/d19/tables/dt19_322.10.a...


>I guess the explanation for 2000 is that the dotcom bubble was still alive and well,

Storm clouds were on the horizon by late in 2000. But there was probably some delay, even maybe post 9/11, until the full scope of the carnage was obvious--and by then most students who entered in 2000 or even 2001 were more or less committed.


Easy. The educational aspect is pretty awful. And after you get through that, the big companies treat you like a leper unless you went through a few chosen schools.

I went to a big state school in the 90s. The first two years were a hazing, with a brutal curve designed to drop class size from 1000+ (CSI 200) to about 80 graduates.

It was sink or swim and awarded grit. The only major worse was biology where organic chemistry weeded out the frat boys from premed.


"I went to a big state school in the 90s. The first two years were a hazing, with a brutal curve designed to drop class size from 1000+ (CSI 200) to about 80 graduates."

Is your "CSI 200" a general-interest course? I went to a fairly large university's computer science program, but even the intro course for the majors was probably only about 200 people/semester, which at this particular institution, meant taking the "200" level courses as a freshman. The 100-level courses were the courses the department taught to the rest of university for general requirements of other degrees. Those were easily in the thousands, but they were not majoring in CS. The gulf between a 100 and 200 course was still fairly large, but it wasn't a "hazing", it was similar to the difference you'd see in any department offering general courses and specialist courses like biology or physics.

I don't we particularly had "hazing", but just like any other major, it isn't for everyone, and there is a certainly baseline you're going to need to be able to succeed. This is not unique to computer science, or even engineering. If your school had a music program, did you ever ask them what they were expected to do? I minored in music and I was grateful for how much free time I had relative to the ones majoring in it.... and CS was no slouch with the homework, obviously.


In my school, CSI 2xx was the entry point for majors. There were two courses (Intro and a logic class) with just under 1000 enrolled.

The 3xx entry point class was 400 people, the next 3xx mandatory class was 250 and the 400s were typically 20-50 students.

I think one issue was they didn’t gate by GPA or other metrics. So you had many students who just couldn’t hack the math or didn’t have the drive early in the cycle. That decision tainted the professors... you were an idiot until proven otherwise.

I dual majored in history and it was night and day. Similar workload, but a totally different outlook. I still exchange Christmas cards with a couple of my history professors.


> the big companies treat you like a leper unless you went through a few chosen schools.

I was under the impression that they didnt care about your background, but you had to slave away on leetcode to have a chance to pass the interviews.


I agree with the GP. I had a similar experience at SUNY Buffalo in around the same time.

I terms of working for a FAANG, in order to pass the interview, you have to first get the interview. If you attend Stanford, Berkeley, MIT, etc, FAANG's will have career fair booths, and lots of other opportunity for internships and networking. You will be at the top of the pile and you're almost guaranteed a look.

Contrast that to attending a school like SUNY Buffalo. FAANGs don't generally recruit from schools like that. When I worked for Google, I offered to help with recruiting from SUNY Buffalo (which they called a "long tail" school). Their response was, rather than send people to the school, they set up a giant hangouts/meet video chat with auditoriums of kids from 4 different schools. The especially irritating thing to me was that my alma mater was not even included in the session that I led.

I think this sucks because I went to SUNY Buffalo because they offered me a much, much better deal financially than the "elite" schools did. I could have attended one of the favored few, but decided that I'd rather graduate without massive debt. Some of the smartest people I know I met there. They definitely weren't the rule, but a lot went on to get PhD's from places like Stanford and Caltech. So its not like big state schools have no qualified candidates. Its just hard to get the FAANGs to see that.


> Some of the smartest people I know I met there. They definitely weren't the rule, but a lot went on to get PhD's from places like Stanford and Caltech. So its not like big state schools have no qualified candidates. Its just hard to get the FAANGs to see that.

If you evaluate candidates yourself, you don't need to be interested in their credentials.

That's not the point of an interview. The problem isn't that SUNY has no qualified candidates, it's that the hiring process doesn't distinguish the qualified ones from the unqualified ones.


I'll counter that I went to SUNY Stony Brook and have not felt that I was shut out of any interviewing at any company because of it. At this point, my degree from 14 years ago is not nearly as important as the connections I've made with co-workers since.


> they didnt care about your background

Actually my anecdotal observation is that it's a little bit worse than that: they rank CS graduates from the top-10 schools at the very top, the next tier are the "gritty, self-taught boot-camp graduates" and after that are the graduates from any of the other thousands of universities. So if you don't get into MIT or CMU, you're actually better off skipping college entirely, at least if you're considering programming.


My point of view may be outdated. Back when we were walking to school uphill both ways, you needed the right paper.


Prof at a SLAC here, in the Math Dept but degree in CS theory. FWIW, I'll throw in that my advisees often tell me that they hated the first CS course (which Math requires).

Our CS Dept is good. They are not slave drivers, or doing crazy stuff. They run a standard Java class doing very reasonable things and give a perfectly typical range of grades. And the students who say these things to me are not just the poor ones.

Is it inherient in the material? Is it the way the intro is typically approached in standard texts? I don't know. And I admit that I only have anecdotes. But the article didn't mention it, so I'm mentioning it.


CS is a bifurcated world. Yes there are very well paid people in FANG companies and in Bay Area start ups. The reality is that 90% of IT people are working in a cubical making bug fixes to TPS reports in nondescript corporates where they're just another cost center - until they hit their forties when it gets tough to find a job.

Most people see that reality.


Goddamn, why didnt I choose a different field.

Funny enough when I was a teenager I wanted anything but to become the latter guy, I even had my own unrealistic goals to avoid it. Unfortunately reality would kick in not too much longer later and I was forced to resign to that life.


> working in a cubical

Oh, if only...


When I learned coding, CS wasn't really a "thing." I came up from the hardware end of things (EE).

Today, the only downside of this seems to be that I never learned all the binary tree stuff (BTrees haven't played any role in the type of coding I've been doing for the last three decades), so I don't fare well in employment exams.

Otherwise, I'm actually thrilled at the way my software development education has gone. My hardware background has stood in good stead, in developing things like drivers and async stuff.


Thankfully I've never worked or applied to a company doing that kinda thing; at best it was a fizzbuzz. They mostly do practical in-your-own-time assessments - prove that you have the hands-on know-how to build a feature representative of the work you will be doing in the company.

Few companies will rebuild B-trees in the day to day job. Interview for the job your candidates will be expected to do, instead of giving them a college/uni exam question. Have them validate a form field and yeet it through a REST API into a database, like 99% of their job will be [1].

--

[1] this may just be representative of my job. Somehow yeeting a form field into a database hasn't gotten much easier during my career. Why is input type number still broken?


I have an enormous portfolio of code. I'm talking dozens of repos, hundreds of thousands of lines of code, shipping apps (with full source code), and at least a decade of checkin history.

Also, I have many, many articles on Medium, and on my own sites. These tend to explicitly and unambiguously cover my development methodologies, design ethos, and personal philosophies.

There should be no question at all about my technical ability, methodology, creativity, or team integration.

But it is my experience that the portfolio is immediately ignored by hiring managers.

After a few instances of that, I just gave up looking to work for others, and started doing my own thing.


CS has been a thing since the 60s


> CS has been a thing since the 60s

Yes, but note that I used "quotes." It wasn't anything as close to an "institution," as it has been for the last couple of decades.


My theory is that a lot of people would hate working in computer science and programming. For most people this kind of work is very tedious and boring. You have to be cut out for it.


CS is seen as leading up to a blue collar job executed behind a desk that requires a particular kind of mental aptitude and dedication.

It comes with low intrinsic social status and even stigma attached.

The skill set and personal characteristics that it thrives on are nearly opposite of those that do well in corporate or societal careering.


I was in college from 2010-2014 which is a period of high growth as shown in the article.

It may not have been an all time high but it felt like everyone was taking CS. The 101 classes were incredibly oversubscribed. Maybe not many people graduated with the major but a ton of people started down that road and many people pursued the minor.


I was in college during the same period at the largest school in my state and we graduated a class of about 60 or so undergrads in 2014.


Some of the decline in 80s can probably be attributed to a reduced percentage of women getting CS degrees [1]. I tend to agree with the conventional wisdom that gaming and home computers led to CS becoming a less welcoming degree to someone who had never touched a computer before. Contra almost every degree outside of the arts where some interest and the usual high school curricula are all you need. (And it became a somewhat self-reinforcing cycle.)

That theory doesn't speak to the 2005 peak and subsequent decline however. [ADDED: Which is probably more related to the dot-com bubble bursting.]

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


What do people here consider to be CS? I couldn't really tell from the article. As I recall, CS was in the math faculty and dealt with theory and core principles or developments, stuff you typically read in whitepapers.

Regular programming/software programmes were in the engineering faculty, as well as some software development being covered to some extent in all the eng programmes. I also recall CS + computer eng made up a large fraction, about as much as all the other math depts and more than physics + biology combined.

The title suggests that there aught to be more and I'd agree that grads going into computer science fields should be better prepared but I don't think that has to be via a CS degree.


Why would you major in computer science if you want to work as a software engineer?

It's like getting a physics degree to become a civil engineer.


I was in a meeting just this morning regarding how we measure the performance of something which ended up with reading a paper on queue theory to help with the design. CS and SE are very related. Also, Civil Engineers do learn physics as part of their course.


> Also, Civil Engineers do learn physics as part of their course.

The analogy is apt for exactly that reason. Some knowledge in physics is fundamentally required, but for the civil engineer it's only professionally relevant to the extent that they can apply it to solve practical problems. A solid understanding of physics (and indeed how to come out wiser after reading a paper relevant to your field) is just one part of their expected skill set.


What would you learn in a BSc Software Engineering that's not in a BSc Computer Science course that's not going to become redundant after a couple years and couldn't be covered in a module? I have thought about this before and argued for Software Engineering to be a specific course/field, but it's just too ephemeral at the moment with a lack of 'core' elements to warrant a 3 year course.

Edit: To be clear, I want the field to mature and develop into something similar to other engineering fields like EE, but it's not there yet.


> What would you learn in a BSc Software Engineering that's not in a BSc Computer Science course that's not going to become redundant after a couple years and couldn't be covered in a module?

Requirements management, information security, software architecture, all the big picture topics that are applied and not theoretical in nature.


I took a module in my MSc in CS on these topics and they were boring, out of date, and things you learn as you need on the job anyway (I took a part-time MSc while working). They were also covered in just two modules.

Sure, some courses could be up-to date but ultimately they'll be out of date in a couple years. Core concepts like OO are a bit more stable but you can be taught this in an applied sense or a theoretical sense and both are covered in a good CS course anyway.


> What would you learn in a BSc Software Engineering that's not in a BSc Computer Science course that's not going to become redundant after a couple years

Industrial economy, ethics, engineering professionalism, development methodology seem rather universal. Then, depending on specialization you could pick up anything from signal theory to control engineering to human anatomy.

> and couldn't be covered in a module?

That's a pair of very, very narrowly placed goalposts. Of course you could cover anything in a module and call it computer science, but where would you go then if you have a legitimate interest in computer science and not a bunch of courses that really have nothing to do with it?


Some software engineering studies, even sometimes called information technology (Australia, Netherlands, Germany) are theoretically equivalent to most of the general CS studies you find in the United States. It all depends on the curriculum at the end of the day.


I'd like to see them have to go into a million-line code base, find the right place, and add some new functionality. They'd learn a lot about the importance of good organization, naming conventions, and leaving pointers for the people who come after you - things they never would have learned in a lecture, or by working on 1000-line programs.


I agree. I think there is a definite need for real 'Software Engineering' discipline that focuses on things like project estimations, timelines, codebase management, best practices, etc.


Absolutely! Some companies are great at this but most (from my experience) use the term but there's 0 'engineering' involved - it's just hacking bits of code together and hoping it lives long enough for a customer to sign off on UAT. There was a good talk on this subject last week - here's the recording if you're interested https://youtu.be/3018ABlET1Y


This is an incredibly flawed analogy. I can say safely that software engineering students (SE specifically, and not CS) have at a general level a massive amount of missing knowledge compared to their CS counterparts. Practically every SE concept either is or can be taught on the job. I don't hire but I can safely say that if I ever did I would hire CS graduates long before someone who calls everything they use an 'app' and couldn't explain tail recursion to me. I will never understand how SE people can brush past basic concepts in favor of specific frameworks that might be out of favor by the time they graduate.

SE students tend to miss fundamental parts of creating good applications while they study how to do so (security, privacy, performance (!), etc). This gap creates a liability in the job markets they saturate, as well. This culture of companies that hire SE majors and SE degree programs is pretty lax when it comes to the stuff that isn't arbitrary software framework knowledge. Frankly, the 'optimization' of CS has been a disaster. Buggy software can cause just as many damaging or long term effects as poorly designed buildings or machines, but in none of the programs that would output people capable of creating those do we see a movement supporting 'practical' knowledge over the basics. It's incredibly short-sighted, and at the very least, it means smaller CS programs.


It all depends on the university and the curriculum. Some universities here provide only "software engineering" or "information technology" programs that are equivalent to their computer science counter part in countries like the US. Sure, you can learn topics like requirements engineering on the job (often an underrated subject if you really want to do it well), but the same thing can be said for literally any of the CS courses..

At the end of the day, the curriculum is really what matters for a person. Actually, you can even argue that "computer science" is not even a real science (similar with many other studies that have "science" in their name). Heck, I'd say software engineering is closer to actual "engineering" than computer science is to actual "science".


To develop the thinking. Rigorous algorithmic and mathematic thinking. Studying physics is also good.


Exactly. So the implied premise of this article (that we should see loads of CS majors because people want to work in software) is faulty. They can just as easily study physics, chemistry, math, logic, etc.


At my software company I think we have more physics graduates than software engineer or comp sci.

We use mostly Python and Go btw, which I think might affect things a bit. Graduate schemes for those computing degrees tend to be at big corporate dot net shops.


I'm not sure what you're saying here, that you don't need formal education to do software engineering?

I mean on the one side I agree with you because there's so much you can learn online right now, but the same is true for other branches of engineering and STEM as a whole.


Less that you don't need education and more that the education of a CS degree has little relation to the practice of software development. It's probably improved, but when I was in college 20 years ago CS was something you did abstractly on a whiteboard, it's computer SCIENCE. That's certainly valuable to society as a whole and certain fields, but it has little bearing on building websites or business CRUD or other things the vast majority of us are doing. I don't need a new hire to be able to implement a sort algorithm from first principles, I need them to know git and how to write unit tests and how to communicate with a team effectively.


It is often used to check if a candidate can master complex topics, but I would disagree that formal education doesn't help for software engineering.

Asked the other way around, what would you suggest as education for someone who wants to be a software engineer?


> but the same is true for other branches of engineering and STEM as a whole.

Is it though, my understanding is that for a lot of engineering programs and science courses, much of the value comes from labs and hands on experience with equipment that a consumer cant get access to.


Using your analogy, probably because there aren’t many well established civil engineering degree programs.

I don’t know what “practitioner program” could get you close to a guaranteed spot at a top software firm. I’ve been out of school for a few years and figure this stuff has been changing fast though, so that perception may be out of date.

Never even heard of a software engineering degree. Only computer engineering or computer science, either of which may include some software engineering courses.


This might be due to different naming conventions in different countries. Software engineering is a common degree in Australia. Example: https://study.unimelb.edu.au/find/courses/graduate/master-of...

Though I doubt the content is that different to courses in other countries


I did a BSc(Comp Sci) in Australia (USyd) starting in 2010. A lot of my friends were doing the Software Engineering degree. We did the same courses and went to the same lectures, the only real differences were a) what faculty we were officially part of, and b) the words on the piece of paper we got at the end.

(I'm stretching the truth a little here because I also did a Maths major in addition to Comp Sci, but that was not part of my Comp Sci requirements so I think it's still valid to the point I'm trying to make, that the two degrees are functionally identical with different names)


There are certainly various more nuts-and-bolts certification programs out there, but if you want to do software stuff and you're going to an "elite" school you'll tend to major in some variant of CS--whether it's located in the math/sciences or the engineering school.


They do exist. Even Oxford has an MSc in SoftEng.


Doesn't Oxford just automatically boost all bachelors to masters a year after graduating though?


Yes, you’re awarded an MA (Oxon) after a few years of graduating, but this is a ‘proper’ Masters course


The fourth year of an undergrad also gives an “undergraduate master’s”.


Yeah, this too. What I mean is that the MSc in SoftEng is a "normal" Masters program. Oxford has too many weird caveats to cover :D


That's just Master of Arts (MA). MSc, MEng, MLitt, etc., are not automatic.


What computer science means varies from school to school. At many University I only wrote proofs for 2 of my CS classes. The rest of my classes were spent writing code.


because it's what you need to get a food in the door.


Great article. I majored in Electrical and Computer Engineering roughly 20 years ago at a top US university. Even then, my classes were probably 2/3 international students. I fear that the recent rhetoric from the White House (shutting down H-1B visas) and general impact of Covid on globalism is going to make this problem in many countries like the US. Just as the legal and medical fields got saturated in the 80s and 90s and the preferred career track for high pay and job security, I predict that the same will happen with computer science in the near future. I think most future innovation will come from fields like biology.


Personal opinion: after four of the required five years of my CS major education, I felt like I had gotten about as much out of it as I ever would. I knew I would advance my own skills and knowledge more by spending that last year as part of an experienced team in the industry instead, so I did.

Other than it being annoying to explain the situation if someone asks, this has not ever set me back in any way I know of.

If, in the future, I feel like it would improve my abilities/position to write a Master's thesis and get a diploma, I might look into taking the last year. But so far, I have gotten way more leverage out of the additional industry experience.


Computer science has little to say about software engineering, I've found. There is not much high quality research on the subject, because it's more of a social science and it's inaccessible as a field of study to normal social scientists.


A CS degree program isn't something you can get into by knocking on the door and saying, "Hi, I'd like to study CS because there are well-paid jobs in Silicon Valley".

Moreover, university departments tend to only tighten their entrance requirements with increased interest in a field.

Article also conflates "earned degree" with "majored".


I thought about adding CS as a second major. Then I saw how much the CS majors had to work. The CS program at my alma mater has/had a reputation for having some extremely time intensive courses — iirc, some courses had weekly homework assignments that took 20-40 hours per week (per course). Maybe it was just a few courses that were weeder courses, but I didn’t think that was the best use of my time in college. It seemed excessive and perhaps abusive in a hazing kind of way. Maybe they thought having ENIAC on display would motivate people through the grind.

I didn’t mind working hard in school, but I definitely wanted to explore things outside of coursework.

I also already knew how to program, and I didn’t need a CS major to get programming work. The benefits of a CS degree just didn’t seem to be worth that much at the time (this was decades ago, so it may be different now).


I myself have Bachelors and Masters in Computer Science degree with 11+ years of full-time industry experience (Canada) and here is my opinion about popularity of computer science degree:

- What is the point of getting a Computer Science degree when the people sitting besides you are also Tech Team Leads or Sr. Developers or Architects without a computer science degree?

- Why bother spending so many years going through theoretical computer science courses when you could have gotten through some bootcamps, youtube vids, Leetcode, and spent time creating github portfolio? Ultimately its the frameworks (and sometimes certs.) which gets you the money. There is a reason why even Google dropped the 'degree' requirements for their Software Engineering positions.

- When it comes to corporate IT: Among the most glorified of CS/IT career is that of a Software Developer (coding). And if I was to be biased, I would say those who didn't get CS degree and instead went to Community College for programming diplomas tend to better at picking up frameworks and churning out code. It seems that their minds are less cluttered with useless technical details which nobody in Corporate IT cares about.

- Frankly speaking, Programming and even other CS fields (including niche ones such as Data Science / AI / Machine Learning) suffer from absence of licensing requirements. I am not advocating for one but from what I have seen, just about any office job outside of IT has set of licensing requirements (PEng, LLB, CFA, CPA, Securities course, etc.) and atleast in Canada, they want the "Canadian version" of CPA, CFA, etc. -- this ensures that new immigrants can't just walk into such Canadian jobs and safeguards them against offshoring to an extent.

Despite all this, I am still glad that I have my CS degrees because that is just me, it's fits my thought process and personality. I really didn't do it for the money. I just feel I couldn't have done any other degree besides a CS degree - it's not about harder or easier.


I got about 8 years into my four year degree program in between interesting part time and then full time jobs on the side, and recently came to a set of realizations:

1. I'm never going to finish this damn thing because I keep failing or almost failing math courses (and it happens the three required courses I have left are gated by math courses). All it does at this stage is make me feel inferior. (I do suck at thinking mathemetically, but I guess I've sucked at it for long enough I can deal with it in practice. Alas, they aren't buying it :b).

2. The only required course that remains which I'm really interested in doing is about writing a compiler, but I could do this myself. I'd miss having the excellent prof who teaches it, but that isn't worth the tuition until then. I already found my way into the others. There were some good ones which I'm really glad I did.

3. Upon graduating, my job prospects wouldn't change. Things are going fine. I might regret not having the piece of paper if I want to switch fields, but…

4. Outside of two or three excellent CS courses, the courses I have most enjoyed and grown from have been humanities and archaeology electives. They have a more interesting, diverse range of students; heaps of opportunity for cross-discipline thinking; and content I genuinely know nothing about, would like to learn about, and have no idea where to start. If I decide at some point I'd like to finish my degree, I'd probably take more of those courses and try to find an applicable degree than suffering through more CS.

The trouble with CS is (as a job training program, as opposed to a program about science and mathemtics), if you're the type of person who's doing the degree program because you're already doing this stuff, there's a decent chance you could find a relevant job while you're still at school. And that job _also_ provides educational opportunities, because that's how our field works. Unless you are in a place where that four year full time degree thing works for you, it makes itself irrelevant.


One of my professors I liked told me she “Will not start teaching a class until she can do 100 practice problems in the subject she teaches”. We had an 84 year old lady pass the class with us.

I don’t know what you’re struggling with but maybe retake a previous Calc 1 class to pass calc 2. Audit calc 3/statistics so it’s just practice.

Obtain a different book and do the entire thing on your own, not only the even or odd problems.

I had to hate math and the embrace the suck to start enjoying it. Wolfram Alpha is a good friend in math.


Oh, I agree, I really would like to get better at math. I find usually this stuff makes sense for me after it's percolated for a while and I eventually find an application for it that I like, and _then_ it gets exciting and easy to sort through. (Which is perfectly normal, but I suppose I just don't have the patience for the first stage there, where the subject is more abstract). Indeed, Wolfram Alpha is awesome for working through problems. Perhaps having a book on the side for when I cross paths with discrete math stuff would help to connect the dots faster. Was there one that worked particularly well for you?


I studied CS up to a German Diploma (comparable to a Major-Degree) and it was hard. Now, ten years later, with all that advances in AI I finally know why I had to learn all that theoretical stuff: for the future to come. Do your major degree, it makes the future more fun!


This isn't a full explanation, but might be worth thinking about. CS bachelor's education track is unique enough it is hard to switch into. If you are electrical/mechanical/aerospace engineering you're taking a lot of the same classes until your 3 year or so. You can change your mind and switch majors within the hard engineering fields. It is similar if you want to switch from biology to chemistry etc. At least in my experience a CS degree starts and ends there. If you want to switch into CS you almost have to start your courses over unless you were computer engineering. So out of the average % of students switching majors, some switch out of CS, but very few switch into it.


Electrical is fairly different from mechanical. Mechanical engineers do take some electrical engineering (and there are analogs between the two fields in areas like system dynamics although the examples are different) but there's quite a bit of fairly early-on coursework about fluids, material behavior, mechanical design, etc. Mechanical is closely related to aero and ocean but not so much electrical. (At least beyond basic core physics, calculus, etc.)


Personally I think something like Electrical Engineering is more valuable. At my company EE folks are often competent in both hardware and software, but the CS folks are completely incompetent at hardware and don't even understand basic GPIO usage.


A lot of EE folks I've met _think_ they are competent in software, but I'd beg to differ. Similarly, I've met plenty of CS majors who know their way round hardware.


Depends on definition of "software competency". Lofty functional programming in Haskell is quite different from low level driver programming in C. I doubt you could take a world class Haskell programmer and throw them in linux usb driver land and expect them to perform well.


Bootcampers mostly solidify that software is not well regarded. If you go through bootcamper after bootcamper LinkedIn profile, you can easily see software was there second or third choice. They pivot to it as a backup.


Honestly, here's the truth of the matter as someone who has gone through Bachelor's and Master's.

Annectodal (sample size 1):

I went to a top university in Florida for Computer Science. The classes were either simple, useful or nintendo hard. Data Structures and Discrete Math were the courses most likely to have transfers out to IT or Business degrees.

Two good friends ended up dropping because they just found a job and said "Screw it" and just went into the industry. A couple of others went into IT because the coursework was "too hard and I can get the same job with an IT degree"


The vast majority of people working on IT are not really doing software development but system/network administration.. and for the vast majority of the jobs you don't need a major in CS. I remember when I finished the university in the end of 2006, our knowledge of networking after the university, wouldn't top any Cisco Network Administrator certified professional.. Yeah I could implement a Double linked list and do a lot of Math, but I had no idea of how to work with BGP, spanning tree and etc..


Eh. I grew up in a rural area. Took two basic coding classes in high school but I didnt realize being a developer was a real option for anyone other than very smart math lovers. My college didnt have an actual computer science program. I don't think I would have been an amazing developer but I think I could have done the job, and would have, if I knew it was a realist option at an earlier age.


I love STEM, but I went towards biology because my high school had a fantastic biology program that showed me how fascinating life is. It wasn't until I needed to analyze data on biology experiments that I coded. There was literally zero coding or Linux or explanation of computers at middle school or high school, in Providence RI, FWIW, around 2000-2010.


It's more to do with existentialist crisis of computer science education, not status or pay for computer science grads.

Computing has become a part of every major industry and computer science by itself is closer to applied math and such fields, valuable but by itself not very useful.

Most professionals in most industries need to know quite a bit of computing skills to be effective.


> existentialist crisis of computer science education

Exactly what I've been facing for the past few months. I graduated as a CS Major last year, and I've already started doubting it.

No clue how to deal with it


"Anti-women culture. Tech companies and CS departments have the reputation of being unfriendly to women. "

No way CS Department is worse than Laws Department.. It's hard to pinpoint the Women in IT issue, but last years there are a huge movement trying to make everything more gender neutral in IT... Which other branch is investing more on that that ours?


As the article states, many developers have degrees other than CS. I have a BS/MS in Mathematics and have worked as a developer for the past 20 years. Interestingly, back in the early 2000s, it seemed that having a degree in Math was actually an advantage for me. I think I got a lot of interviews because of that.


CS is a specialty. It is in high demand, but it's also centralizing. If you are in the periphery, it's easy to miss out on a lot of that demand.

It makes sense to reach out to build diverse CS talent, but I'm not sure that it makes sense to reach out for greater numbers.


And yet, it feels like it's increasingly competitive to get into a prestigious CS program?


Because there are such perverse incentives in Academia that what they do and teach have no relevance to anybody.

eg. There was a major linux conference at the local university.... Full of cutting edge real world OS / HW stuff.

The CS department didn't bother to attend.


The perception of computer science is slowly changing as it seeps into popular culture through TV and Film. As that changes more status conscious people will take CS, they will then be depicted in TV and film and you get a snowball effect.


This article is from 2017, and the author refers a previous discussion here at HN: https://news.ycombinator.com/item?id=14440507


Could it simply be that the degrees are now being called "computer engineering" instead of "computer science" degrees? That would be a simple explanation of this observation.


Even though this is anecdotal, I know a lot of people who have majored in Computer Science, but they're all employed as programmers doing mainly web development, in particualr, CRUD apps.


Weed out courses, lack of real world requirements analysis/editing/testing skills. Think of Journalism where they don’t actually teach you to gather info, edit , and collaborate.


Maybe becuase industry pays developers so well,it’s hard for Academia to compete and attract quality teachers for computer science - ie is supply constrained rather than demand constrained.


It's a tough degree compared to many, heavy on the math and very tedious at times too. I know when I was in school the class sizes started large and ended small.


> Given high wages for developers and the cultural centrality of Silicon Valley, shouldn’t we expect far more people to have majored in computer science?

Are wages that high though? I don't know much about the UK, but I feel it's lagging behind Switzerland, for example, and that only London is the high paying spot because of inflated cost of living.

In Amsterdam, where I live, a junior developer isn't paid that much more compared to a junior business analyst or a junior marketeer. What is way more noticeable is that a lot more developer vacancies seem to exist compared to the other two, even for junior developers.

> I consider this a puzzle because I think that people who go to college decide on what to major in significantly based on two factors: earning potential and whether a field is seen as high-status. Now let’s establish whether majoring in CS delivers either.

In The Netherlands it's either whether something is interesting. Or it is whether something is interesting and it's good for one's career. It's almost never only for career.

> Are wages high? The answer is yes. The Bureau of Labor Statistics has data on software developers. The latest data we have is from May 2016, in which the median annual pay for software developers is $106,000; pretty good, considering that the median annual pay for all occupations is $37,000.

The comparison should be made for different categories from university. I wonder how business studies is doing as that major was a lot easier, in my experience. But I'm pretty sure that the pay isn't lagging behind (disclaimer: I don't have data, I can be wrong).

I've never seen someone join a field of study for social status and I asked the "why do you study xyz" question a lot. I have met a few people who started studying <insert_female_dominated_program> for finding a girlfriend, which usually worked. In most cases, they were also at least kind of interested in the content.

---

Here is my partial guess. I have two factors.

I believe that there are more computer science people that are interested in math and physics than the other way around. So there is a crowding out effect.

In The Netherlands, CS suffers from a negative stereotype among Dutch women, which is truly evidenced at my uni by the amount of international female students versus Dutch female students (a good amount versus 0 in some years). Heck, I even met very traditionally feminine women in my computer science classes (caring about fashion, aesthetics/beauty and caring for people), but they were all non-Dutch. Of course, there were also non-Dutch women with other gender identities (I've seen integrated as well). The gender identity of Dutch women was either "not male and not female" (do they call this non-binary?), male, or integrated. So this might play a role in England as well?

Of course, my observations are limited, they're simply based on 8 years of walking around at the two universities of Amsterdam and talking to quite a few students.


I wonder if this is a US or global phenomenon, I would love to see numbers from the rest of the world.


I'll give my personal take as a ex-CS major who dropped out to major in something else (math), tried to escape a career in software development, and ultimately wound up back in it when I saw how much more work and stress the other alternatives were (for me at least).

- Computer science to me sounded way more fun than it actually was. I loved building things and programming, but that's not what CS is. CS is theory. I was bored to tears learning about sorting algorithms and binary search trees.

Same applies to machine learning and AI. The reality of studying it was way less fun than the idea. Even my AI professor acknowledged that.

- As someone who'd always taught myself programming on my own, I didn't see the point in dedicating my 4 years of study to something I felt like I could teach myself. Since there was a good chance I'd probably end up working as a software engineer anyways, I thought it'd be smarter to study something I probably wouldn't otherwise ever teach myself on my own.

- This is rude and shallow, but I didn't like my CS classmates. There was such a disproportionately high amount of weirdos, and I didn't want to be surrounded with those people all day and god forbid become one of them. I vividly remember studying in the CS lounge and having to stop myself from face-palming. If I was a sociable kid it probably wouldn't matter, but as a socially awkward kid it would be too easy to only be surrounded like similar people the rest of my life and never evolve.

- Software engineering seemed boring, just being stuck in a cubicle all day. I did an internship as a programmer, and although it was relatively easy, moderately interesting, and stress-fee, I was terrified of the thought of spending the rest of my life in that cubicle.

- I wanted more money and status. At the time (almost 10 years ago), it seemed that finance was the highest paying and most prestigious field to go into. Finance sounded more exciting, and I liked the idea of their being no ceiling on compensation, whereas software engineering seemed capped at $200k/yr. Of course now things have changed, and tech comp at big corporations tops out at more like $500k/yr (or more if you get equity and win the startup lotto), and tech is way more respected than before. High finance still pays the most, but those jobs are basically limited to Ivy League graduates, the hours are insane, authoritarian work cultures, no remote work, and IMO the work is extremely boring and utterly meaningless, even moreso than software engineering where at least you're actually creating something.

Of course my views nearly a decade since graduating have evolved. I gave in and took on a career in software engineering, which I've attempted to leave at times but always ended up returning (though once I'm financially independent you better believe I'll be gone for good). But at least at the time those were some reasons why I dropped my CS major despite being convinced since high school that that was my calling.


???????????

Computer Science is by far the most popular stem major all around the world!

If somebody have numbers showing opposite, I would like to see them.


The featured article has these "numbers showing opposite".


Check the graph, it actually isn't...


Did you actually look at the article?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: