Live data from Hacker News

Why do so few people major in computer science?

danwang.co

421–430 of 627 posts

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

#421

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…

> The grief factor of learning to code is on a different scale to every other major. 'Cept physics. Misalign a mirror or shake the table and all your experimental data is bogus, and you don't find that out until you've analyzed your data and realize it's nonsensical. I suspect other hard sciences (chemistry, biology) have similar issues, but am not familiar enough to judge. I started out as a physics major and switch…

An example from chemistry: get a mixture of different chemicals in a lab class that you are tasked with separating and identifying. Screw up one separation step and lose one or more of the chemicals, you aren't getting it back. If you're lucky maybe you can take the NMR spectrum of the whole sample, isolate out the contributions from the other chemicals you were able to separate and then possibly be able to identify the missing one, but you're not going to be able to turn in an isolated sample of it so that'll at best cost you a bit.

An example from math: you make one tiny logic error while composing a proof and miss it until you start rereading, then you might have to start all over again from scratch.

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

#422
post #17

Primarily, because computer programming is low-status. (also, this is one of the main reasons why females are deterred from joining)

It has an almost duality to it. It pays exceptionally well, and can be exceptionally hard. Unlike building a bridge, we often see a lot of software slung together and say "Wow, this..this is terrible," unless you're one of those software developers who work for NASA or need to design pace makers or aviation safety equipment. (some of that stuff may be terrible too, but at least it's incredibly well tested).

At the same time we see Dilbert, We the Robots and Office Space all showing the mind numbing reality of what is software development. Games look amazing and every kid wants to be a game dev, until they hear about the months of 16 hour shifts, the insane deadlines, the rooms filled with devs, artists, animators, QA/testers and writers sleeping under their desks to get a title out.

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

#423

Earlier quoted context omitted.

The difference with math is, you can get partial credit.

There's no reason you can't receive partial credit in CS. If assignments are being graded solely on whether or not the output is correct, I'd say it's a flaw in the curriculum. FWIW, I do not remember this being the case when I studied CS in the mid-90s.

Just as counter example, all the assignments for my OS class at top-20 CS university were graded using a set of a few hundred tests that were hidden from us. For example, the first assignment was to implement a thread scheduler and over the years the course had developed a few hundred tests on which our grade was based. We were allowed to submit our solution three times, and we would be told how many tests we passed, but not why we failed any specific tests or what those tests were, with the highest of our submissions being our grade. The incentive of this process was two fold: first, it forced us to learn to write our own good tests and not rely on the TAs to spoon feed us exactly what we needed to do (in fact one student wrote a test that broke the reference solution and was added to the test suite for the next semester), and second it is completely intractable to expect a few TAs to scan through several thousand lines of code for each of a hundred students to discover how "close" to being correct their implementation is. Bugs are hard enough to find in code you wrote, let alone code written by an undergraduate just learning how to write systems code for the first time. In my experience TAing for both math and CS classes, finding bugs in students math assignments is significantly easier than finding bugs in code.

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

#424
post #192

Earlier quoted context omitted.

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…

trying to learn organic chemistry by memorizing mechanisms is like trying to learn maths by memorizing derivations... it might work for an intro course but you will quickly hit a wall.

chemistry and chemical engineering has very little to do with each other, despite the name. chem eng is focused on scale up while (organic) chemistry is focused on novel mechanisms

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

#425
post #412

Earlier quoted context omitted.

That just sounds like the professor didn't teach them about Java classpath before telling them to use a CLI; or this kid didn't read the course materials.

Sure, but if you have been playing around with environment variables in your OS since you where 8 years old the problem becomes a lot easier to troubleshoot, compared to someone who has never heard of environment variables.

That's likely a source of frustration. In class, professors and other students might assume you already knowing something as in indicator that you're passionate/interested and not knowing it means you're not. (A->B doesn't necessarily mean ~A->~B, right?).

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

#426
post #407

Earlier quoted context omitted.

That is not "computer science" any more than spotting constellations makes you an astrophysicist.

I don't really understand the point of this comment. Are you suggesting that those developers who lack a CS degree but can program effectively nonetheless don't really know "computer science," and therefore are weaker applicants? By extension, are you suggesting that most developer jobs have a need for applicants well-versed in Turing machines, automata, language parsing, trie data structures, and so on? You seem to…

'Are you suggesting that those developers who lack a CS degree but can program effectively nonetheless don't really know "computer science"'

In the formal sense, pretty much - most actual CS is pretty irrelevant to day to day development as it's pretty much a specialized branch of maths (note that the CS department I did a degree at is now part of a maths department so I'm perhaps a bit biased).

"strong coding ability doesn't correlate to strong academic CS ability"

Again I would agree with this - I had a supervisor who never wrote any code but he was very well regarded in his niche area - his area was purely mathematical.

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

#427

Perhaps "very smart" was an incorrect assessment on your part.

Oh, anyone who can't do CS must not be very smart, right? Basically if they don't have the same skillset as you, they're probably not too bright. Doesn't matter if they can draw near-photorealistically or pick up a new foreign language in mere months, or perhaps breed fascinating variants of plants in all manner of ways in their dorm room just off intuition; if they can't pass CS101, if their mind doesn't work their…

I'm just saying a person thought to be "very smart" should be able to do CS101, easily; and I don't think the examples you mentioned are indication of extraordinary cognitive faculties.

I taught myself near photo-realistic drawing, it's a mechanical skill--craftsmanship; had I continued to invest more time in perfecting the technique I would have got to what’s considered photo-realistic. My Spanish was decent after four months in Spain. Not once have I thought these things to indicate me being “very smart”.

I doubt having a mind that works a certain "special way" is vital to do CS; seeing heterogeneous groups of students graduate yearly.

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

#428
post #357

Earlier quoted context omitted.

>There's a ton of Stupid Computer Shit we all know, mostly from messing around on our own time This, I think, is the core issue. Like most of us here, I started playing with computers as a young child, from a Timex Sinclair 1000 as a pre-teen to a Commodore 128 as a young teen, then an Amiga and beyond. It wasn't work, it was fun, a hobby. And more importantly, by the time I hit college, I had literally thousands of…

I should have thought about beer money. But I was such an introverted geek. I do remember watching other people trying to figure out how to use a mouse or the most basic stuff. I've already studied algorithms and data structures and had a paying programming job. Most of the CS work seemed trivial but I did learn some math. The math did get hard so the degree was definitely not a breeze. Even with CS there were areas…

If anything, it's a disadvantage IME: the implicit lessons of the iDevice are that the world is made of non-user-serviceable black boxes that cannot be recombined to make anything substantially different than what you started with, and if one does ever manage to peek under the hood (and why would one do that, any more than they do with their fridge or their TV?) one sees only immutable non-deconstructible complexity.

Contrast this with the 8-bit era: devices made of multiple clunky components large enough to manipulate and simple enough to fully comprehend, shipping with "user manuals" that look like today's programming textbooks or service/maintenance manuals (where those exist today at all), a readily available developer environment giving full access to the hardware, tinkering with hardware and software as a matter of course to get anything interesting done at all... The experience is very different indeed.

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

#429
> Have people been deeply scarred by the big tech bubble? It bursted in 2001; if CS majors who went through it experienced a long period of difficulty, then it could be the case that they successfully warned off younger people from majoring in it. To prove this, we’d have to see if people who graduated after the bubble did have a hard time

As someone who graduated shortly after the bubble burst, I can attest that yes indeed we did have a hard time. I had a year of professional programming experience under my belt (took a year off) and still couldn't find anything for a long time. Eventually took a job making 24k at a failing company that was a nightmare to work at, quit that and did tech support for a county library district (they needed someone who could program but didn't have the budget to hire a developer) making 35k for a few years. I kept an eye on the broader market during that time but it seemed like everything required 10 years of experience.

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

#430

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…

FWIW I started my CS degree in 2001. My first CS class assumed I knew how to navigate a *nix system (I forget which one). I was also expected to already know at least one programming or scripting language of my choice that could be used on the school's servers. That included but was not necessarily limited to: Perl, Java, C/C++. Oh, and I also needed to know Matlab.
Post reply on HN