> Frankly, most 35 y/o engineers don't truly appreciate the intricacies of intra-thread concurrent algorithms
You don't need to know the intricacies, just the foundational basics. Locks, blocking threads, deadlocks etc. Any half decent CS course will teach you these concepts.
It is necessary to know such things exist, but expected that their details will be looked up when relevant. Some people write low level concurrent code all the time, and they need to be up on all those details all the time. But many people only do so intermittently, and they only need to be aware of the existence of tricky details in the space, and have the capacity to get up to speed on them.
Do you mean any half-decent concurrent programming CS course? Because your intro (or even intermediate) CS courses don't come anywhere close to broaching those topics, even at elite universities.
The real issue IMO is that you can get a CS degree without taking a concurrent programming course
Students aren't looking for internships after 3 weeks though. You usually start applying at the end of the year. By then, your CS course should have covered the very basics of concurrent programming.
Maybe we have different definitions of "CS course"
You don't need to know the intricacies, just the foundational basics. Locks, blocking threads, deadlocks etc. Any half decent CS course will teach you these concepts.