Part of the problem is that we also put people through an extraordinarily difficult educational process (CS or similar) for what's largely become a skilled vocational problem. 90% of developers working on 90% of their work will never have to implement an algorithm of any kind that matters. They won't have to understand higher maths, computational theory, language theory, etc. They have to glue this piece from here with this piece from there and write some documentation that they did so.
On the flip side, spending four years learning about computability theory instead of the latest frameworks in foo language likewise doesn't prepare a CS major for employability. Their first employer will have to spend lots of time and money training them in the vocational skills they'll need.
Universities' attempts at recognizing this and educating students for this reality give us majors like Software Engineering and Information Systems which don't exactly match what the market needs either.
What's needed is to take a relatively smart, but ignorant person off of the street, and in 4 years spit out a mid-level developer, with specialties in web development, server development, etc. Their coursework should be nothing but learning languages, APIs, development environments and frameworks and how to coherently document their work.
For those specializing in web development, their senior project should be to build, from scratch, an entire e-commerce site, with product catalogs, promo codes, wishlists, shopping carts etc, including setting up all the servers, and gluing them together. The entire thing should be meticulously documented and launchable tomorrow.
Similar senior projects should go to those specializing in game development (like the senior projects out of digipen), desktop software development (make a basic office suite), server software development (write a database and web server from scratch with full APIs), etc.
In very specific markets this has already happened. Video Game development, for example has spawned vocation focused education like digipen.
CS is both over and underkill for most jobs. And the result is that we interview for CS skills, for a job that doesn't really need them.
On the flip side, spending four years learning about computability theory instead of the latest frameworks in foo language likewise doesn't prepare a CS major for employability. Their first employer will have to spend lots of time and money training them in the vocational skills they'll need.
Universities' attempts at recognizing this and educating students for this reality give us majors like Software Engineering and Information Systems which don't exactly match what the market needs either.
What's needed is to take a relatively smart, but ignorant person off of the street, and in 4 years spit out a mid-level developer, with specialties in web development, server development, etc. Their coursework should be nothing but learning languages, APIs, development environments and frameworks and how to coherently document their work.
For those specializing in web development, their senior project should be to build, from scratch, an entire e-commerce site, with product catalogs, promo codes, wishlists, shopping carts etc, including setting up all the servers, and gluing them together. The entire thing should be meticulously documented and launchable tomorrow.
Similar senior projects should go to those specializing in game development (like the senior projects out of digipen), desktop software development (make a basic office suite), server software development (write a database and web server from scratch with full APIs), etc.
In very specific markets this has already happened. Video Game development, for example has spawned vocation focused education like digipen.
CS is both over and underkill for most jobs. And the result is that we interview for CS skills, for a job that doesn't really need them.