Once seen as a near-guaranteed path to a well-paying tech job, computer science is no longer the sure-fire bet it once was for graduates.
While demand for software engineers and developers surged during the 2020/2022 tech boom, industry shifts driven by automation, hiring slowdowns, and a growing pool of candidates have reshaped the landscape.
Professor James O’Brien, a computer science professor at the University of California, Berkeley, says the pressure is particularly intense for new grads entering the workforce.
“The entry level jobs, … work that maybe wasn’t the most complicated work or the most difficult … are increasingly being automated,” O’Brien said in an interview with CTV Your Morning on Friday.
“And because those jobs are going away … we’re seeing a decline in the number of entry level positions that are available.”
O’Brien noted that artificial intelligence now writes at least 20 per cent of code in some organizations, warning the trend might get worse.
“We’re going to see in computer science something that we see happening in other fields as well,” he said.
“Those jobs are also going to start to get automated by AI, and as they go awaywe’re going to see growing unemployment, not just in computer science, but probably really across the board.”
O’Brien emphasized the global nature of this trend, pointing to similar hiring declines for graduates in countries like India.
For him, the challenge isn’t jobs moving offshore, it’s automation.
“It depends a little bit on what you think is going to happen with the evolution of the technology we have today,” he said.
“I personally think that the technology is going to continue to advance.”
Still, he said opportunities remain.
“I would encourage students (to not) just focus on learning low-level skills, like how to write code in a particular language, but instead focus on learning the higher-level concepts,” he said.
“That kind of stuff is still in the domain of where humans are better than the AI systems. ...
It’s the lower level mechanic of how to write the code (that’s being replaced) ... not deciding what the code should be doing in the first place.”

