I get co ops from first and second tier schools and they usually join lacking a lot of fundamentals of CS.
However in my experience most of them pick things up relatively quickly and end up becoming good engineers and reliable team players.
At a BSc level with no experience we should be looking for genuine curiosity, motivation and interest in learning and solving hard problems.
Everything else can be taught.
We have even expanded our program to include interns with degrees in other areas of science such as mathematics, physics, materials and mechanical engineering, some with very little programming experience, with great results.
Our objective is always to hire them and retain them, so we do invest plenty of resources in training them well.
We almost exclusively hire new grads and have coops/interns from first tier schools. We kind of have this stupid bias against everyone else in our hiring process.
These engineers all turn out to be okay but we don't end up with any new or advanced ideas out of this pool. We cargo cult every behavior that Google does because a few of our senior engineers were ex-early-Googlers.
If feels like working with the blind. There's no interest from our engineering teams about new developments in the field and they don't even recognize when the work that they're doing is a fit for new patterns.
99% of these people don't know what a CRDT is and don't recognize when they're accidentally building one. Once every six months or so someone will post on Slack about their eureka moment of just discovering what a Bloom filter is and how it might apply to long-lived problems that we have.
To someone entirely from the practical/self-taught/trade side of things it's a kick in the teeth knowing what I bring to the table and how my org depends on me but doesn't respect me enough to hire other people with the same background.
However in my experience most of them pick things up relatively quickly and end up becoming good engineers and reliable team players.
At a BSc level with no experience we should be looking for genuine curiosity, motivation and interest in learning and solving hard problems.
Everything else can be taught.
We have even expanded our program to include interns with degrees in other areas of science such as mathematics, physics, materials and mechanical engineering, some with very little programming experience, with great results.
Our objective is always to hire them and retain them, so we do invest plenty of resources in training them well.