Live data from Hacker News

Why do so few people major in computer science?

danwang.co

261–270 of 627 posts

Re: Why do so few people major in computer science?

#261
post #192

Earlier quoted context omitted.

What's interesting to me about that data is the high rate of biological and agricultural sciences grads, relative to all other sciences. CS grad rates seem to fall right about where they should on XKCD's Purity Scale [1] (if CS had been included in it). 2004 was an outlier for CS, but it has reverted to its mean since. But bio and ag sciences are beating out Psychology, which is a bit of a reversal. Biology isn't eas…

Although biology and organic chemistry are much harder then CS anything, they can be learned in school and from school resources only. No one expects you to already come in already knowing how to code or configure linux. If you are good students willing to work, you will learn them, period. With cs, you are expected to already know a lot that was not taught in school - meaning that all kinds of cultural and social ef…

Organic chemistry looks complicated but it is, by and large, just an enormous amount of memorization. The kind of complex systems reasoning you have with any non-trivial computer science isn't there.

By contrast, even though it is the same subject matter, chemical engineering is (correctly) perceived as being vastly more difficult than chemistry because it requires reasoning about complex system-level behaviors that has no analogue in chemistry. This creates the oft-observed effect that being skilled at chemistry has surprisingly low correlation with being effective at chemical engineering despite being the same domain.

Re: Why do so few people major in computer science?

#262
post #221

The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. Even if you are of the opinion that CS is math, and coding doesn't come into it, you will hit a coding wall early on. In fact, every exercise in CS has this problem. You add a new thing (eg inheritance), and it breaks. B…

I don't think it's even the programming that's the problem. There's a ton of Stupid Computer Shit we all know, mostly from messing around on our own time, that makes programming or doing anything else with computers much easier. A set of skills for navigating and troubleshooting issues, and a hard-earned intuition for where and how to look for answers. My CS program was really easy and I still don't know how people w…

I think GP hits the nail on the head there with the homework analogy, and you with yours. Just talking to my friends in other careers about the work that I do makes me check time and time again just how many assumptions of knowledge I make when talking about anything vaguely technical (which is possibly a criticism of how I explain things, but also/even if so says lots about this issue).

What surprises me is the lack of consolidated resources addressing these basic pain points. I don't think it would be hard to come up with a list of examples just by looking at a normal work day and taking a step back; really evaluating where you're relying on basic knowledge to do even the most mundane of tasks. Once you've been doing this for a few years those tasks are just that - mundane - but for beginners it's having difficulty with those basic parts that is a real turn off. "How will I ever be any good at this if I can't even download code off this thing called Github". If someone could point me towards some kind of existing resource covering a bunch of different areas in this way I'd be really interested in having a read.

On a related note, I'm reminded of one of Dan Luu's related essays on debugging [1], which I recommend reading if you haven't already.

[1] https://danluu.com/teach-debugging/

Re: Why do so few people major in computer science?

#263
post #252

Earlier quoted context omitted.

novice programmers should not be starting a CS degree

What makes you say that? Where would you have them start instead? Bumble through learning to program without the theory behind any of it? That seems like a cart-before-the-horse scenario.

Not necessarily a bad idea. This will give you a better appreciation for why you would want to use the established paradigms taught in CS courses.

Re: Why do so few people major in computer science?

#264
post #229
post #173

Earlier quoted context omitted.

> The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. I would say that this basically screams "badly taught programming". Missing semicolon does not take down work, it just needs to be put back in and ide should help you. "Even if you are of the opinion that CS is math, a…

I took a short course (1 credit hour) in Java when it was new enough that there where no IDE's. IMO, limiting courses to established languages is kind of a waste.

What's your point?

Re: Why do so few people major in computer science?

#265

The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. Even if you are of the opinion that CS is math, and coding doesn't come into it, you will hit a coding wall early on. In fact, every exercise in CS has this problem. You add a new thing (eg inheritance), and it breaks. B…

> Oh and learn git, too. And Linux. Just so you can hand in the homework.

They should know linux/unix/gnu before they start on anything cs related.Are you really suggesting the people that don't know anything about computers should be taking cs?

Git would have made debugging the missing semi colon a lot simpler because it makes the divide/conquer approach simpler.

Re: Why do so few people major in computer science?

#266
post #173

Earlier quoted context omitted.

> The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. I would say that this basically screams "badly taught programming". Missing semicolon does not take down work, it just needs to be put back in and ide should help you. "Even if you are of the opinion that CS is math, a…

novice programmers should not be starting a CS degree

I think the founders of what now is CS would be lumped in with the very, very bright but still novice programmers. Most of the field has nothing to do with actual hardware anyway.

Re: Why do so few people major in computer science?

#267

The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. Even if you are of the opinion that CS is math, and coding doesn't come into it, you will hit a coding wall early on. In fact, every exercise in CS has this problem. You add a new thing (eg inheritance), and it breaks. B…

Being a software engineer is often about the merging of the discipline of CS and the art of programming. I think most software engineers are strong in one and get by in varying degrees in the other. The few that are strong in both end up being the "very good" programmers we all know or have heard about. For some, that semicolon is a nagging reminder of their mistakes. For others, it's a small detail they zoom past as…

You start saying 'software engineer' and end with programmer.

Clarify your terms. There is a huge difference between willing to take on liability for your faults versus slinging code.

Re: Why do so few people major in computer science?

#268
post #169
post #124

Earlier quoted context omitted.

I disagree. The things you say may have been true decades ago, but are not entirely accurate today. The US's banking industry's reputation took a big hit in 2008, and it has become increasingly common for top university students to head into tech over finance since then. Not to mention, firms like Goldman Sachs are replacing many of their traditional traders with software engineers. Outside of top law schools, the pr…

Finance may have taken a hit recently, but if you're in the northeast (NYC, Boston, etc.), it still has much higher prestige. It also has a much, much higher compensation ceiling. The same goes for lawyers working in cities. Many law students are underemployed, but overall there's a much higher compensation ceiling. Management consultants weren't mentioned, but a large percentage of top grads end up there, being groo…

Also: how many of those professions simply assume that anyone good will be doing something else by the time they're in their 40s? A 50 year old lawyer or doctor might choose to be more supervisory but nobody is going to think they're a failure if they aren't, and their experience will be valued rather something they have to prove isn't holding them back.

> Many of the Ivey League students gravitating to tech are likely envisioning themselves as founders or C-suite executives, not engineers. Outside of the SV bubble, software engineer is not a top-tier job. Nor is it a particularly well paying job. In SV though, it has prestige.

My general rule is to follow the money, and at most companies the compensation levels don't look like engineering is a prestige position. Not bad, to be sure, but definitely outside the inner circle even at many companies where it's a core competitive attribute.

This isn't new: during the dot-com bubble, there were plenty of people who got decent numbers but the people getting rich tended to be management, sales, etc. with all of the talk of “passion” and highlighting the lucky few winners looking suspiciously like a way to get people to donate enough unpaid overtime to make someone else very rich.

Re: Why do so few people major in computer science?

#269
post #173

Earlier quoted context omitted.

> The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. I would say that this basically screams "badly taught programming". Missing semicolon does not take down work, it just needs to be put back in and ide should help you. "Even if you are of the opinion that CS is math, a…

novice programmers should not be starting a CS degree

Poppycock. I studied CS at UVA in the late-90s and had no previous programming experience. I was an experienced computer user, which wasn't a given in the 90s, but I hadn't done any programming. There wasn't anything in the curriculum that required previous experience.

Linux wasn't required for entry-level courses. At the time, they were taught using C++ and a Borland IDE on Windows.

Similarly, source control wasn't introduced immediately. I'm pretty sure CS101 assignments were turned on paper, in addition to email.

And the department offered many options for lab time, office hours, and tutoring. I worked as an undergraduate TA for 2.5 years, which basically meant holding lab hours 3-4 times/week for 2-3 hours at a time, in addition to grading assignments and exams.

Re: Why do so few people major in computer science?

#270

The grief factor of learning to code is on a different scale to every other major. One missing semicolon will take your whole tower down, and you realise this in the first day of practical exercises. Even if you are of the opinion that CS is math, and coding doesn't come into it, you will hit a coding wall early on. In fact, every exercise in CS has this problem. You add a new thing (eg inheritance), and it breaks. B…

"One missing semicolon will take your whole tower down, and you realize this in the first day of practical exercises."

Isn't that what makes CS easier? You get immediate feedback. You know if it will be right or wrong before you even turn it in.

Post reply on HN