AI Is Widening the Gap Between a CS Degree and a Software Job

We had a flawed educational pipeline that relied on employers to handle the vocational pieces. AI is making that system unviable.

Share
AI Is Widening the Gap Between a CS Degree and a Software Job
Photo by Cullan Smith / Unsplash

I've been thinking about this a lot lately. I work with both companies and higher education providers, and what I'm seeing and experiencing in my own work tells me that the gap between what companies want and what higher education delivers is widening because of AI.

There aren't many people who live in tech, business, and education at the same time, so I feel like I have a unique perspective on where things are going. But to get there, I need to provide some background.

This post isn't as "tight" because I'm still figuring out how to express what I'm seeing.

My Origin Story

Back in 2013, I founded my first business: The Software Guild, the first .NET and Java coding bootcamp in the country.

No, wait, this story starts before that.

Around 2005, I first started helping my employers with hiring, and by 2013 I was the top dog in the IT department. That meant all hiring and firing decisions for the software/infrastructure part of the org went through me.

I've always been a teacher and mentor, and I wanted to hire junior talent. Even if you don't have that mindset, the economics are pretty compelling. You hire for talent, invest a year or so training them up, and then there's this sweet spot between novice and capable mid/senior employee where they outproduce their salary.

When the market is sending you $150k/year mediocre senior developers, and you can hire 2 juniors for the same spend, it makes sense to invest in talent if you can afford the time to skill them up.

I've founded several startups. In a startup with a limited runway and burning cash, it often doesn't make sense to hire for talent; you need work done today. But most companies aren't in that situation.

The problem was that whenever I opened positions for junior talent, I got a flood of applications from people with technical degrees who couldn't do anything useful.

And I really mean that. I literally used to use FizzBuzz to weed out candidates. Candidates with computer science degrees who couldn't write a for loop with an if-else branch. While I love mentoring and teaching, you can't invest in someone who shows up without even the most rudimentary skills.

Eventually, after training a lot of people up, including two women from the call center with no technical background, I realized how much I liked teaching and how poorly traditional education handled technical training.

What do you mean by poorly handled?

Computer science graduates don't want to hear it, but most developer jobs at companies are more like trade skills than computer science. Every company runs on its data, and a lot of software and custom code shuffles that data around: emails to customers, API calls to partners, reporting dashboards, application interfaces, etc.

You don't learn this in most college programs.

Yes, understanding data structures is important because you should pick the right one for the task. No, being able to hand-code one from scratch isn't important, because every language has a library with those things already built in.

So, many computer science programs teach the science, but not the practical application businesses want. This is compounded by the artificial limits of the credit-hour system. To prove my point, I'm going to poke at Columbia University's degree requirements. Take a moment and look.

Because of how college scheduling works, courses are disconnected. The curriculum is organized around discrete subjects rather than demonstrating mastery of an integrated system.

Here's what I see in the program:

  • Math Requirements: Calculus? Not useful for the vast majority of developer work. I took up to Calculus II in school, and I've rarely encountered application-development work that requires calculus outside very specialized software, like when I did contract work for a defense company.
    • Stats is useful; everyone should understand stats due to the prevalence of ML and such.
    • Linear Algebra is also genuinely useful, but also not required for the majority of work.
    • Arguably, students should have learned these topics in high school.
  • Computer Science Core: Only a few programming classes, one of them being Data Structures. Does anyone know of any jobs that only require Java? Yeah, me neither. In the credit hour system, that's not many total hours of programming experience.
  • Area Foundation Courses: Students have to choose 4 from a wide variety of courses that are completely disconnected from each other. Nothing guarantees the student has to combine these things into a production-like system.

So you usually end up with a graduate who knows "things" but can't do "stuff."

What an employer wants is "Here is a deployed application; it has multiple front-ends, services, application layers, data layers, authentication, and connections to other systems. It runs in containers on a network. Here's how you monitor, troubleshoot, and extend it."

Even back in 2005-2013, I was less than impressed with fresh grads. They rarely had built anything "full stack". A mile wide and an inch deep, with skill gaps.

If you want to invest in junior talent, you kind of have to take what the market offers. But it was really frustrating, and it eventually led me to launch my first coding school.

Enter the Guild

The Software Guild had the word "guild" in it for a reason. I wanted to get back to apprenticeship and focus on practical skills built around what regular companies need.

To be honest, it was a smashing success. In the three years I ran the program, it had a 92% job placement rate. Let me assure you that is unheard of in higher education, where, if you include dropouts, most programs' placement rates are well under 50%.

The placement rate was good: good inputs and good outputs. We used an aptitude assessment and pre-work projects to screen candidates. My acceptance rate was under 15%.

I have a copy of that aptitude assessment for free now, just for fun, here: https://www.skillfoundry.io/courses/developer-aptitude-test/

Employers were skeptical, but the grifters in the bootcamp space hadn't poisoned the well for everyone else yet, and they loved my students. In fact, I get so many corporate training gigs today because of the connections I made while running the Guild.

They liked my students more than college grads because they knew how to build full-stack applications. They got how the pieces fit together, which made the time from hire to "useful employee" much shorter.

Anyways, back to the main point.

AI is removing the bottom of the ladder

Regardless of whether you were hiring my students or from a higher education program, the arc of bringing in a junior was pretty standard:

  1. Bring them on to the team
  2. Give them a bunch of grunt work not worth the senior's time
  3. Give them feedback and hope they grow
  4. If they grow, give them more complex and interesting work
  5. Rinse and repeat (or fire them if they can't grow)

Well, AI tools can do most of the grunt work now. The value is shifting towards judgment and engineering:

  • What should we build? (budget, need, value)
  • How should we build it? (tools, languages, frameworks, etc.)
  • How do we integrate it with the rest of our systems? (architecture and domain experience)
  • How do we secure it? (systems and risk analysis)
  • How do we validate that it's correct? (quality control)
  • Will people even want to use this? (Empathy, even more domain experience)

Unfortunately for the young people today, higher education teaches you almost none of these things.

In fact, the only way to learn these things is to build systems, which is what my programs still do, but even so, I've had to start expanding my course offerings with things like self-hosting, because the role of developers is becoming less about memorizing syntax and more about designing solutions that integrate into existing systems.

This is also why vibe coding is still bullshit: if you don't know how things work and how these systems come together, you cannot provide the context the AI tool needs to do significant work with quality.

I use AI tools in my day-to-day where they make sense, and let me assure you: the term "agent harness" is good, because you need a harness to keep them in bounds. If you leave a gap in your specification, AI will happily fill it with slop.

So, higher education already wasn't the most ideal path to the technical skills that employers value, and now that many students are overusing AI on the fundamentals, they are actually widening the gap between where they are and what employers want, because the only way to build good systems is to build shitty systems first.

I'm a good architect because I've painted myself into a corner dozens of times back when I was learning, and I'm still learning today.

The path used to look like: fundamentals => crappy junior work => feedback => better work => judgment => seniority

Now it looks like: AI => ??? => seniority

This is the problem education is facing. If employers increasingly expect new hires to arrive already capable of exercising engineering judgment, universities can't keep ignoring the vocational aspects of the craft. And students can't use AI to skip that part either.


I don't really have a clean conclusion here; all I can say is that the graduates I've been interviewing, and the stories I hear from my senior/hiring manager connections, tell me that AI is multiplying a problem that was already there.

And this is where I'm stuck. Employers use degrees as a filter, but I think the computer science degree, especially at current tuition pricing, is a poor investment for the majority of people who just want a tech job.

If you want to break into tech careers, you'll need the discipline to go slow, learn how to build connected things well, and then go faster with AI where it makes sense.