← Back to context

Comment by pojzon

3 years ago

Brother is teaching at the University among other things and from the stories he sometimes tells me:

I do not worry about agism or work at all.

Lets just say that when we were studing, most ppl were not the brightest tool in the shed. Now its supposedly many many times worse.

Agreed. I hire interns every year, and I am continually astounded at just how incompetent so many people are who are months away from finishing a master's in computer science. On paper, I wouldn't expect a shortage of software developers. But as a practical matter, more than half of everyone I talk to who is about to finish their CS degree is very clearly not going to last long in this field. Not just because they are incompetent, but because software so clearly doesn't interest them. Right now they think the salary will be enough to keep them happy. Think again.

  • > so many people are who are months away from finishing a master's in computer science

    Because by hiring masters degree interns you're not exactly scraping the cream off the top...

    Masters degrees in Computer Science -- unless used as an immigration thing -- make no sense.

    The make no sense for the research route -- in CS in the USA, you go straight to a (zero tuition + living wage stipend) PhD from undergraduate. No reason to pay for a master's degree.

    The make no sense for the SWE route either.

    Masters students are mostly in it for either a domestic degree or because they couldn't find a (good enough) job out of undergraduate.

    Most departments know this and treat their MS program as a total cash cow.

  • I've always considered Computer Science to be a distinct field from programming (or "Computer engineering", if you will). I mean, a brilliant particle physicist does not necessarily make a good engineer, an astronomer doesn't necessarily good telescopes, and a cancer researcher doesn't necessarily make for a good GP.

    Not that these people automatically lack the ability to do these things well – some do, some don't – it's just that they're different fields with different training, mindsets, interests, etc.

    • I would call it "software engineering" personally, but "computer engineering" is adequate, and it has a nice parallel to "computer science". But yes, I think they're distinct, as distinct as chemical engineering is from chemistry.

      In chemistry, they worry about the properties of individual atoms, and how those atoms combine to form molecules, and how much energy that takes or gives off, and where the electrons distribute themselves in the molecule, and how that affects the properties of the molecule. In chemical engineering, they worry about how to efficiently make this stuff in multi-ton quantities without blowing up the city, and cost of raw materials, and disposal of waste products, and things like pipe bursting strength. Yeah, they'd better know some chemistry, but they need to know a lot more than that.

      In the same way, computer engineering or software engineering is about the efficient construction of larger-scale programs that adequately meet the need they are written to address. Let me unpack parts of that definition.

      "Efficient": Well, that's actually a bit of a lie. What I should have said is "somewhat less inefficient", but my description was already long enough. But large scale software construction is inefficient, and the larger it is, the more inefficient it is. The fundamental reason is that brain-to-brain transfer of information is lossy. The bigger the program, the more brain-to-brain transfers involved.

      "Larger scale": There's something called the "rule of 10", that says that for every factor of 10 larger the program gets, a new set of problems comes to predominate. You still have at least 10 times as many of the old problems, but you also come to have new problems. On truly large programs, the biggest problems may be transfer of knowledge between generations of workers.

      "Adequately meet the need": I didn't say "bug-free". Larger programs have bugs. They have databases just to keep track of the bugs, and steps to reproduce them, and to decide which ones to bother fixing, and to figure out who (or at least which team) should fix them.

      I'm not sure that many CS degrees to much at all to prepare people for any of this. But I suspect that 90% or more of people with a CS degree are going to wind up working as computer/software engineers rather than as computer scientists, and so I suspect that there's a mismatch between education and career here.

  • Where are you from, if you don't mind sharing? I believe it depends on the education system. From my point of view in France new grad need 1 to 2 years to be "work ready". They just have to learn how work life is working.

Do you mean students are less intelligent these days?

  • I suspect it's a result of the bucket being wider and larger - many many people have latched onto the idea that "software" is the way to make lots of money, so people are signing up to learn it.

    In the past CS (if there even was a CS degree/course offered) would me mainly populated by "the nerds" who were really into it, money be damned.

    Arguably this could be why the educational requirements around other well-known lucrative positions became so difficult.