Live data from Hacker News

Why do so few people major in computer science?

danwang.co

311–320 of 627 posts

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

#311
I've always had a personal explanation that I have nothing but anecdotal evidence to back up. The most important skills that make someone a good coder are that they enjoy solving problems, and are willing to work single-mindedly on something until it is done. If you have those skills, there's really no reason to go to college to learn anything.

In fact, I would bet that the graph in the article corresponds inversely to how easy it has become to learn programming on your own. From manually copying code out of a magazine when I was a kid, to stackoverflow today.

I submit that the coders who DO get degrees are people who really enjoyed school (for reasons unrelated to learning), people who didn't really know what they wanted to do in life and school was expected of them and/or the path of least resistance, and people who are much more into research than the average developer.

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

#312

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…

Agreed. I learned this in our new student orientation. "If you can't recompile a linux kernel by the time you graduate, you have learned nothing. Oh, yeah, also, we wont teach you that - it's just something you will run into. " -- Professor Norman S. Matloff

Compiling a linux kernel is just following a set of instructions. You don't need to know anything about computer science to do that.

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

#313
post #196
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 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. The point is that the incidental complexity is there, and that it's something that has to be dealt with, to even begin to get to the fundamental part of the problem. That you have to be using the right IDE (and learn how to use it, and learn to recog…

And yet I had zero problem learning Logo when I was like 10 years old. Neither did _most_ of the other 10-year-olds in the class. They didn't all take to it as much as I did, but the majority of the class was not stopped by the frustration of syntax errors.

If you can teach programming to 10-year-olds without it being too frustrating... on the other hand, I suppose you could argue that younger people will have an _easier_ time, for the same reasons (human) language acquisition is easier for children. I dunno.

I'm not sure how it relates, but what I think was _really_ an immense aid to people of any age learning programming in the 80s was that computers and software were _simpler_, meaning that you could very quickly approach the level (at least at first glance) of 'real' software with what today seems like 'toy' software. The text adventure games I started writing as a child weren't actually _fun_ for anyone to play but me, but they _looked_ like a real text adventure game that other people played, they had the same form. Or the ascii-graphic blackjack game. There was gratification with a pretty low bar.

I have no idea how I'd become a programmer today. It's an entirely different path. People ask for me for advice, and in my head, I'm like, well, first be a child in the 80s with an Apple IIe, then start writing for the web when all you need to know is HTML and you write it in Perl cgi-bin... I have no useful advice.

I do have a CS degree, which I got in the 90s.

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

#314

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 That is not true. You do not put your "whole tower" back together again when you move cursor and type the missing [';']. [edit]

I guess GP was thinking of programming in punch card languages, where one incorrect hole punch could mean you'd have to redo the whole thing.

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

#315
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…

Hundreds to thousands of hours? I think you're overestimating a weee bit.

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

#316

Earlier quoted context omitted.

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…

+1

I also started a CS program in '95, with practically no previous programming experience. (10 PRINT "HENRIK IS THE BEST", 20 GOTO 10 doesn't count)

One thing our university did though was that the introduction course was in Scheme, which evened the playing field immensely, because most of the kids who could program were self-taught in Pascal or C, and where pretty stumped when confronted with a functional programming language.

But my university's approach didn't help the abysmal graduation numbers either, there were so many classmates that dropped out during the first year. A bunch dropped out because the programme was an engineering programme, and they failed the math parts, but did good on the CS parts. Most of those switched to other programmes that were more pure CS and were successful.

But there were a lot of students who just lacked that elusive thing that makes a person a good programmer. There's been a lot of studies, and lot of previous discussions on HN of those studies, but the jury is still out, we have no idea how to effectively screen people for programming ability. The only thing we can do is toss them into an education and see if it sticks. The original article asks:

> Isn’t it reasonable to expect that people with an aptitude for math, physics, and engineering will also have an aptitude for CS?

And the answer is a resounding no.

Funnily enough, this whole thing ties into the problems of recruiting good programmers, another HN staple topic. We can't tell if someone will be a good programmer before an education, and we can't even quickly tell if someone is a good programmer after an education, or even after years of working in the industry! If there was a quick way of identifying good programmers, we wouldn't be in this mess.

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

#317
post #304

Earlier quoted context omitted.

> The number of grads for difficult degrees and the quality of grads seems to be another story. This is why I never believed the "There is no STEM shortage" stories. They were mostly based on the assumption that all STEM grads were qualified to work in STEM. That's not true in any field where you can complete a degree with a C or D average. I find it unfortunate that some of the larger software companies filter out a…

At the risk of sounding foolish, but isn't it easy for a company to filter out applicants in technical fields, simply by asking technical questions?

Yes, and that's what they've done at every programming job I've ever had.

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

#319
post #315
post #221

Earlier quoted context omitted.

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…

Hundreds to thousands of hours? I think you're overestimating a weee bit.

Maybe. But I am sure I had put in a thousand hours programing my C64 by the time I had finished 8th grade. And I doubt I'm alone.

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

#320

Earlier quoted context omitted.

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…

+1 I also started a CS program in '95, with practically no previous programming experience. (10 PRINT "HENRIK IS THE BEST", 20 GOTO 10 doesn't count) One thing our university did though was that the introduction course was in Scheme, which evened the playing field immensely, because most of the kids who could program were self-taught in Pascal or C, and where pretty stumped when confronted with a functional programmi…

>And the answer is a resounding no.

Agreed. Apart from understanding logic, complex math is such a small part of development. I would say programming requires the overlap of knack for math and a pure creative interest like painting. That's much, much rarer.

During the dot boom, there were plenty of CS grads, but after the dot bomb and the market dried up, people lost interest. Also, the pay and incentives aren't nearly as good as they were during the dot boom.

Add off shoring, constantly pushing down wages, and the fact that most US businesses make programming miserable, that's probably most of the big picture.

Post reply on HN