> Any serious intro to CS course will have them as part of the curriculum (at least for linked list).
Your implied assertion is that a CS degree is required for programming. That's a good way to select for people like you, which is one of the strongest biases in hiring. One should also take survivor's bias into account, increasing the likelihood that if you're a programmer and did a CS degree, you think a CS degree is required.
Whether a "serious intro" to CS should include recursion and linked lists depends on whether you think:
a. a CS degree should prepare for a programming job
b. it should only prepare for a programming job
c. a CS degree actually prepares for a programming job
d. data structure knowledge is fundamental to programming in general
My personal answers are it should prepare for a programming job, but not exclusively, and that it doesn't usually (adequately) prepare for a programming job. In that context, it should include data structures, general computer architecture and similar historic/foundational topics. I wouldn't go so far as to call them fundamental, because that implies they're must haves. I also wouldn't go so far as to say any CS course that doesn't offer them isn't serious. Maybe that school has a greater focus on preparing for the job, or maybe someone's major is more akin to IT project management than technical.
In the end, a degree is:
* a proxy for general intelligence
* a basis for your social network
* a status symbol (school pedigree)
* an introduction to the topics covered
* an authority argument
* an indication of how well that person does at tests in an academic setting
That's it. If you're lucky, someone with a degree remembers most of what they covered in classes. At best, a CS degree is correlated to someone being able do fill a programming role.
What programming may require is:
* General intelligence
* Systems thinking (e.g. abstraction, information flows, decision trees)
* Programming language skills
* Patterns (architecture, design, OO/FP)
* Knowledge of data structures
* General IT knowledge (DevOps)
* Domain knowledge
* Framework familiarity
* Math skills
* Solving novel problems
* Absorbing new knowledge
* Communication skills (requirements gathering, expectation management, reporting, etc)
One could arrive at these skills through passion and dedication to the hobby, learning on the job, vocational training, a bootcamp, a CS degree, a PhD and more. Of these skills, the ones least likely to be required for the vast majority of positions are math skills and data structures - beyond the absolute basics.
I think it's important not to get our Ps and Qs reversed, don't you?