HN comments on CS degrees are always a hot mess because quality in the United States is extraordinarily variable.

At the high end, you have places like MIT/Stanford/UIUC//Harvey Mudd. As far as I can tell, none of the bad stuff that's said in these threads is even remotely relevant to the programs at those places^1.

At the low end, you have branch campuses of state universities and small colleges where half or more of the CS courses are taught by mathematicians who did not study CS, have never worked on even academic code projects, and have never worked as anything other than an academic^2. This is pervasive in Data Science. You're way better off with a boot camp than a data science sequence taught by a desperate pure math PhD taking whatever work they can find.

And there's everything in-between.

A lot of these debates are probably happening between folks who went to good programs and folks who went to mediocre/bad programs. Not all, but quite a lot.

So, when reading comments on HN about how useless or wonderful a CS program was, always ask (at least rhetorically) "where did you go?"

I gave the big famous names because that's the easiest way to make the point. There are tons of really high quality programs whose names you won't immediately know. My intention here is not elitism... BUT!...

It is 100% true that the quality of CS programs is incredibly varied. Way more than it was even 10 years ago. The rapid increase in enrollment and unwillingness to pay even half decent wages for CS faculty has caused an explosion of what I would characterize as fraud in CS higher ed.

So, in the spirit of helping parents identify good programs without depending on name recognition/elite signalling alone:

When deciding if/which college/university to send your child to, carefully read through CS faculty bios. Ideally there will be a good number of faculty with street cred in both academics and industry. In addition to checking out CS faculty buios, also check out the names of instructors in previous years' course schedules. For example, make sure that CS/Data Science courses aren't being staffed by math folks unless those people have significant industry experience in addition to their math phd, or work in an area of applied math where they're doing lots of coding, etc.

Checking who teaches the courses in archived course schedules is more important than department bios! The department bios are a first check, not the final answer. Here's why: at many places you'll have a few half decent CS faculty who are just "fronts" for a department that is mostly staffed by way lower quality labor. It's the EXACT same bait and switch as consulting shops who have super experienced principal/senior-level engineers participate in the sales pitches and once the ink dries you're working with cheap grunts in a body shop.

Three things to watch out for in particular:

1. Non-CS (usually math) phds without substantial industry expertise. They're teaching tons of intro DS/CS courses instead of taking a math job in industry or academia for a reason.

2. Folks with an online masters and maybe a year or two of full time industry experience.

3. Tons of CS courses being offered in the evenings or early morning by faculty whose names don't appear anywhere on department websites (these are industry workers doing ad junct labor... they can be EXCELLENT, and if you get a course taught by one of these people in the middle of the day it's often a gold mine. But if they're always teaching around the 9-5 schedule it signals that their employer considers this a side gig and the course's quality is probably going to depend on how busy things happen to be that quarter at the instructor's "real" job. Okay as an occasional stopgap or an option, but a huge warning sign if this is a standard modus operandi for core courses. Teaching well is a big job; doing that plus engineering without full employer buy-in is dangerous.

Again, there's nothing wrong with the first two categories of folks teaching CS courses per se. The problem is that they just aren't worth the tuition dollars you're paying or the time you're putting in.

Again, think about how much you will be spending. Repurposing math phds or junior engineers as CS faculty just isn't appropriate at those price points. At tends of thousands per year, your child deserves PhDs with industry experience or senior/principal engineers who have decided to start teaching full time. That's what is being sold to you! It's what every other deparmtent at the university gets! Don't pay shitloads of money for less.

--

Footnote 1: Those "good" programs have other huge issues -- cost, stress, elitism. Most importantly, some of the best CS departments even at otherwise accessible universities are extraordinarily selective due to capacity issues. But the curricula are extraordinarily rigorous in terms of both theory and SE skills. The only complaint I've ever had about these hires is writing ability.

Footnote 2: Warning: rant incoming! Honestly, regional accrediting bodies should probably start refusing to accredit CS/DS programs that aren't primarily staffed by faculty with either appropriate academic background or significant industry experience. And parents/students should consider civil suits when they enroll in an accredited program in CS that is taught by pure math phds with no industry experience and who have no business teaching CS or SE. The status quo is embarrassing for the entire industry. At the end of the day, universities need to start investing in good CS faculty or else face displacement by competitors who are willing to invest in human capital. Budgeting $80K for an instructional position pretty much explains why most CS departments are essentially fraudulent.