A Plea to CS Programs Everywhere
I’ve been hiring devs for many years off and on now. And one thing that doesn’t seem to be improving much is the general preparedness of fresh graduates for making software in the “real world,” certainly not the world of business-oriented software.
Look, I get the value of all the foundational stuff you learn in CS. Even though I don’t have a CS degree myself, I did what I could to pick up a lot of it on my own study time. I’m not saying it’s not valuable, nor am I suggesting that a university CS degree become the equivalent of a trade school degree.
That said, I am seeing people who, for instance, have ZERO experience with SQL. Like, I actually had someone say “I haven’t done a JOIN yet.” Seriously?!? As far as I know, some very very large percentage of software jobs will end up leveraging a relational database, and probably one that uses a form of SQL. Maybe it’s an elective? If so, hello CS student —do yourself a favor and take the friggin course on relational databases. I would even suggest it be required, especially if the degree is at all oriented towards business software.
Cloud/distributed systems/SOA/microservices over HTTP (REST) are another thing that probably should be a semi-requirement these days. That plus relational and NoSQL databases could even be part of the same course as foundational.
On the front-end, require something — either mobile app dev or Web dev. Neither of these is going away any time soon, and at least one course in these would really jumpstart new devs’ careers.
I’m not asking for much — just a few extra courses that target whatever is current. Have your TAs tell you and update your courses if you don’t know/have time to keep up yourself. :)
(Please no lectures on “that’s not how CS degrees work.” If they don’t, they should. Not many CS grads do not want to pursue a career in industry, and even if they don’t, it won’t hurt them to know this stuff!)