In the right environment (not just university), I'm pretty sure those can be learned in as little as four years. That is, I think you could take someone from zero to somewhere above junior IC in that time.
In the first couple of years they'd need a lot of independent projects with mentorship to start, then get plugged into an actual team with good peers and pairing.
They only need the basics of data structures and algorithms. They might see dynamic programming and AVL trees, but that needs less focus than the practicals of HTTP, MySQL, image processing, version control, hardware, etc.