Ask HN: Would you get a CS degree today?

39 points by reilly3000 ↗ HN
I’m looking for feedback from the community. My son made a plan to get a 4 year degree from a decent state university in computer science but is having second thoughts. He is looking at ~$130K in costs and 4 years of not working vs trying to find work and build a resume organically. He’s a fine young developer who loves C++ and learned Java, web dev, and EDA in his teen years for fun. His written several languages and toy compilers, ordered PCBs for his own gaming device, and built a social network in the 6th grade. He’s looking forward to higher level coursework but dreading the intro classes. His motivation for getting a degree was to be marketable to employers, but also to gain a better understanding of fundamentals. With AI making entry level programming jobs scarce, does it really make sense to invest the time and money? If not, what sort of pathway into a programming career would be a good alternative? Any and all advice appreciated.

54 comments

[ 3.6 ms ] story [ 57.1 ms ] thread
upvoted for visibility, quick reaction - not for $130k no way, is he self motivated enough to spend a year at home self of self study? i am a 39yo tech founder who also learned C++ at high school age, the world was different 20 years ago but 130k is a huge amount of debt, and my career was generated almost entirely from side projects. My actual degree is in computer hardware engineering despite the software career. It made no difference
If the goal is to learn about computer science, then yes absolutely. However, if the goal is to better one's chances of securing a meaningful and well-paid job, the answer is no.
Disclaimer: I’m a tenure-track community college instructor in computer science in Silicon Valley.

Assuming your son is in the United States since you mentioned “state university,” an option for reducing costs is attending a community college to get the lower-division courses in CS, math, physics, and liberal arts finished at a considerably lower cost. This also allows your son to buy some time and assess the state of the market two years from now. Two years of community college tuition is much lower than two years of university tuition, and depending on the state it might even be tuition-free.

If your son is still in high school, I also highly recommend he take Advanced Placement tests and score sufficiently well on them so that way he will get college credit for those courses. This could potentially save time in college, thus reducing costs.

I graduated 15 years ago, so who know if my advice is worth anything anymore...

I think the best part of my computer engineering program at the University of Waterloo was the integrated co-op system. (Basically, internships.) It meant my degree was 5 years instead of 4, but I got work experience and professional connections at several companies and came out with a slight profit instead of a ton of debt. I even turned my last internship into a full-time job after I graduated.

Absolutely not. I feel terrible for people coming out of school with CS degrees right now.

Life is already difficult for young people right now and 6 figures of college debt is just putting another obstacle in their path.

For what it's worth, I don't know that the open source route is particularly fruitful either. I hear people recommending that as a way to get hired, but I never hear much about it making a difference in the hiring process.

Just my .02, though.

For what it’s worth, college for me played a much bigger role in developing my soft skills than it did the hard skills. I find these things sorely lacking with many people I work with, especially those who are extremely technical. I think these skills helped to advance my career more than anything else, and would be transferable to nearly any type of job.

I did end up with a CIS degree (computers in the business college), rather than a CS degree (engineering college). I’m not sure how the required coursework might influence the development of various soft skill. It was never something explicitly taught, just things I was forced to develop in order to get through to graduation.

> His motivation for getting a degree was to be marketable to employers

In my 20 years in the industry, I was only asked once in an interview about my degree.

> but also to gain a better understanding of fundamentals

I believe there are many courses online, such as Coursera and others if he wants to learn more. None of them will have the social aspects or networking, but they are far faster and cheaper than the traditional path.

My suggestion is to sit down with your son, and start looking at the job market for junior or graduate jobs and see if it will make sense to invest $130k and 4 years of his life.

If he realises that this is not the way forward, I would suggest he start looking for local hackathons where he can join, learn, network and have fun.

I work in a big tech company and interview candidates for software engineering jobs every day jobs. I don't pay too much attention to the resume but I don't think I've ever interviewed a candidate that didn't have a college degree. A lot also have PhDs too.

I don't know if AI will reduce demands for SWEs, but it seems pretty risky not to get a degree IMHO.

In the end I believe degree is the simplest filter for recruitment and sometimes promotions. Thus at reasonable price it is not worst idea.

Even more so as demand reduces.

Knowing what I know now, I'd do mathematics or a hard science degree and learn programming on my own.
I feel the exact same way as someone who is a teacher and researcher of CS. If I were to do it all over again, I would’ve done a bachelor’s in math, with an emphasis on discrete topics (combinatorics, graph theory), linear and abstract algebra, and category theory. I would have then pursued graduate education in computer science.

I’ve found myself drawn to areas of CS such as graph machine learning and programming language theory where I wish I had stronger math chops beyond calculus, linear algebra, and introductory discrete math.

Absolutely. I learned so much from my degree. Even at a decent school, the top level classes walked me through algorithms, compilers, operating systems, and graphics in a way I might not have done myself. Plus, the best people in my class were great, and discussing how to problem solve with them for coursework was very very helpful. The whole thing was very helpful as practice in a bunch of different areas of CS.

On the practical end, your degree is still a big filter for how companies screen applicants. A lack of a CS degree makes it way more difficult to get in the door. I know there are counterexamples, but 99% of my coworkers had CS degrees. Unless the money is a huge burden, or the school you would go to really is crap, then yeah, the degree makes the rest of the journey much easier.

As advice, try to get evaluated out of the intro courses and skip to higher level stuff. Often if you can show a prof that you can program (before the school year begins) you can place right into a course that is at your level.

The AI arguments are also facile. A CS degree is still the best training to be ready to use AI effectively. You understand more about how it is built than everyone else, plus you know way more about every tool surrounding the AI, and would have an easier time making your own.

I know some people have success with alternative paths. But the main road is the main road for a reason here.

Edit: Please also look at the best schools for CS, and don't just discard them as options. My coworkers out of these schools got even more out of their classes and costudents than I did. Your son sounds talented, and the best schools can help talent go even further.

4 years is a long time, especially these days, it is hard to say what the world will look like in 4 years let alone the CS industry but if he enjoys programming to the extent that it seems like he does to me it absolutely makes sense to study it and build his skills if doing that won’t put you all in massive debt.

My personal belief is that not hiring entry level engineers is unsustainable unless we get AGI capable of both outputting and _maintaining_ software better than humans, and if that happens all bets are off anyway.

I dropped out halfway through because I had a job offer after an internship in Berlin, and working for money and exploring Europe seemed a whole lot more fun than finishing my degree back in Canada. It was the best decision I've ever made, and our tuition was only CAD 5000 per year.

I don't know. Some people will do better if they follow the established path. Others blaze their own trail and don't do well in rigid environments. I know I did not.

Ten years later, the best part of my studies are the ones that felt like a distraction and a waste of time back then: mandatory engineering and liberal arts classes. I would have learned programming on my own either way, but these other things added so much depth to my life!

I think that there are so many ways to live your twenties and grow as a human and as a professional. I strongly doubt that saddling yourself with debt is the best way to do it. Given four years of your full attention, you can achieve so much more, provided that you have the curiosity and discipline to try. I just wonder where the strength to explore the world beyond your main interest would come from.

Did you have parents that you could either stay with or could subsidize your living expenses?

Most people have an addiction to food and shelter and can’t wander through life aimlessly finding themselves trying to be a better citizen of the world.

Learning programming and being employable directly out of school is entirely different.

> I dropped out halfway through because I had a job offer after an internship in Berlin, and working for money and exploring Europe seemed a whole lot more fun than finishing my degree back in Canada. It was the best decision I've ever made, and our tuition was only CAD 5000 per year.

How long ago did this happen?

That would have been around 2015
Yes, but my recommendation for decades has been to study CS if you want, but if anything else interests you then get a CS minor or double major. If he's designing PCBs of his own, he may be interested in EE or CMPE as a major (and if he does CMPE, depending on the school, it's already effectively a CS minor). Programming is relatively easy to get into without a degree or with an unrelated degree, other disciplines are much more difficult to break into without the diploma.

If he's actually interested in CS, then a CS degree (or minor) makes sense. If he's interested in programming, study just about anything else and minor in CS or double major. Being an AE or MechE that has a much better than average (for the discipline) grasp on programming is a better edge career wise.

I work in a FAANG company, and our recruiters know better than to send us candidates without a 4yr degree minimum in any engineering (no CS required but degree required)
Maybe, ever since I graduated from college I learned again and again that pretty much anything worth thinking about in life boils down to math for me. I'd maybe/probably study CS, as a minor or double major, but Pure/Applied Math programs can be more intellectually enriching in this day and age. This is a completely person analysis, it'll change for everyone.
If he wants to move and work abroad, he's likely going to need a degree to meet visa and sponsoring requirements. Doesn't have to be a CS degree, though.
I'm a CS professional of 15 years, getting a CS degree for visa purposes. I'm doing it via the University of London's World Class on Coursera [1], and it costs around ~20-25K USD for the whole thing. If all continues to go well, I'll be done in 3.5 years, all while working full time.

So that's another option to consider: do the CS degree part-time while working on breaking into the industry. You can adjust your workload each semester depending on circumstances, so it's flexible for someone job hunting.

[1] https://www.coursera.org/degrees/bachelor-of-science-compute...

Your son is not the average student. He will level up in school and will get hired if his interpersonal skills measure up to his tech chops. We have students who have not written their own compilers getting hired straight out of their BS today.

The competition is fiercer now, but good devs will still get hired. Average devs have a lot more trouble these days.

Does your son need to go to school? Maybe he's hireable as-is.

Finally, has he looked at financial aid? It can take a bite out of that debt.

God no.

I'd just study law or something incredibly hard that hasn't been tokenized yet.

> a decent state university ... He is looking at ~$130K in costs

130k seems high for public school. How much of that is room and board?

Sounds like your son already has strong computer science skills. I would advise he focus on something OUTSIDE of that in college like business or finance. That way he can have another tool in his toolbox. That’s what I would do in hindsight.
If he enjoys programming for the sake of it I think it’s valuable but it’s not necessary. He could also get a full CS degree for a fraction of the cost if you’re factoring that in.

The job market is bad but lots of hiring for AI positions, both research and application of AI are still in demand. But this could very well be cyclical.

No matter what someone has to train the AI, control the AI, etc.

I think it depends on where you live. Here in the Bay Area I am assuming we have the fiercest competition of all. Companies here have their pick of thousands of H1B students with masters degrees who have optimized for leetcode interviews and are highly motivated to do whatever it takes to stay in this country and bring their family over.

Companies no longer want people who loved programming for the joy of it and the art of it.

Paul Graham (remember him?) had an essay about 20 years ago that may be relevant to this: https://www.paulgraham.com/hs.html "What You'll Wish You'd Known"

It says when trying to figure out what to study, think about what might give you most options for the future, a future that you might have almost NO way of predicting now. He calls this "staying upwind." He gives an example:

Suppose you're a college freshman deciding whether to major in math or economics. Well, math will give you more options: you can go into almost any field from math. If you major in math it will be easy to get into grad school in economics, but if you major in economics it will be hard to get into grad school in math.

And given a choice between studying two subjects that interest you, but one is easier for you and one is a bit harder (but still within your abilities), opt for the harder one:

The best protection is always to be working on hard problems. Writing novels is hard. Reading novels isn't. Hard means worry: if you're not worrying that something you're making will come out badly, or that you won't be able to understand something you're studying, then it isn't hard enough. There has to be suspense.

You don't have to automatically agree with everything in his essays as Great Truths, but it's worth considering his ideas.

(comment deleted)