Someone graduating with a degree in a technical discipline should have both up-to-the-minute skills in that discipline and also a sophisticated understanding of the theory of the field.
This falls apart at graduation + n years, unless you accept that up-to-the-minute skills must be maintained and regathered as the minutes progress.
If it's possible for an educated mind to continue to keep up-to-date, then one must accept that an educated mind, freshly graduated with a sophisticated understanding of the field can, and probably should, pick up the up-to-the-minute skills as part of the on-the-job training any new graduate acquires.
There's always a ramp-up in any new role, especially so for someone who's never worked professionally before. Given a choice, I'd rather aim for an education providing the depth, and the up-to-the-minute ramp-up happening on the job rather than the other way around, because I've never seen a developer's day job provide any significant theoretical depth beyond what is required to get the job done. If you don't learn how compilers and operating systems and low-level memory management and design patterns and concurrency and big-O notation work before you hit the workforce, you're not very likely to pick all those up at work.
This falls apart at graduation + n years, unless you accept that up-to-the-minute skills must be maintained and regathered as the minutes progress.
If it's possible for an educated mind to continue to keep up-to-date, then one must accept that an educated mind, freshly graduated with a sophisticated understanding of the field can, and probably should, pick up the up-to-the-minute skills as part of the on-the-job training any new graduate acquires.
There's always a ramp-up in any new role, especially so for someone who's never worked professionally before. Given a choice, I'd rather aim for an education providing the depth, and the up-to-the-minute ramp-up happening on the job rather than the other way around, because I've never seen a developer's day job provide any significant theoretical depth beyond what is required to get the job done. If you don't learn how compilers and operating systems and low-level memory management and design patterns and concurrency and big-O notation work before you hit the workforce, you're not very likely to pick all those up at work.