Junior people who are very good at CS often struggle with "real-world software".
I had to explain to such a developer once why it was a bad idea to store multiple values into a single database column.
It was a simple task of adding a few integer columns to a table but he couldn't let go of the "optimizations" in his mind about how he could use binary bits to represent what we wanted to represent and all that...
A person with good CS fundamentals need to go through some tough times for a few years at dev shops where the rubber meets the road and then they'll develop a technical taste.