And I’ve always found summer internships to be good way to find out. Even better if the candidate is willing to work part-time through their senior year.
Indeed. But it does change if you want an answer on a non-Euclidian surface, e.g. big scale things on the surface of Earth where questions like "what's a square?" don't get the common-sense answer you may expect them to have.
I bring this up because one of my earlier tests of AI models is how well they can deal with this, and it took a few years before I got even one correct answer to my non-Euclidian problem, and even then the model only got it correct by importing a python library into a code interpreter that did this part of the work on behalf of the model.
For me, "hireable skills" (for a new grad) are things like "can do a basic whiteboard exercise". I'll ask them to sketch out a program to solve a business problem. I do higher ed software, so usually start with "build a class registration system from scratch" - they're recent grads, so the problem domain is known; there's plenty of space to discussion to move in several different directions; fits nicely in 20-30 minutes.
Bare minimum, I'd expect them to ask clarifying questions (particularly around system constraints, performance, etc). And then sketch out a very basic system diagram (I don't expect them to know AWS or Azure, but do want to see things like "ID provider", "course catalog", "waitlist service", etc. Then I'll pick a service and have them pseudocode some of it.
Sadly, somewhere around 50% of grads CANNOT do the above. I'm not sure how, but I've left interviews thinking "I hope they get a refund" more than a few times.
And with the advent of AI coding, I’d hope they can spend more time on system design, as that’s where I’ve found new grads are generally lacking.
In what sense is either "outdated" at all?? Especially Java. Anybody who's paying attention to Java since about Java 11 would know that Java is very much a modern language at this point. I don't write much C++ myself these days so I haven't kept up with that as much, but my subjective perception is that C++ is also modernizing quickly over the last decade or so.
FWIW, my employer just deprecated our legacy COBOL (1-2 modules out of many), replaced with Java. It took years to make that transition.
Cool tech usually also sees faster adoption in academia. Rust courses where offered at the uni I went to back in 2017 for example. According to my friends still involved with uni, there was also a strong shift towards more data science/engineering and HCD since then, both fields that saw major practical improvements.
The problem is when you've got a new grad with no fundamentals and 10 year old buzzwords.
I've had the unfortunate problem of having worked with someone who was that, except not even a new grad, they'd been at the same project for something like a decade and were between 10 and 20 years our of date in how to think about both what computers now did under-the-hood with the code and also didn't understand the fundamentals of writing that code in the first place.
“Solid fundamentals” are literally knowledge.
That said, you’re probably right. At least in data, hundreds of mediocre-to-awful hiring managers have convinced themselves that their stack is special and there’s no way someone without experience in Snowflake (or whatever) could possibly figure it out based on experience in other stacks.
On the plus side, it’s meant that anyone who’s not intentionally shooting themselves in the foot can find a ton of high end talent because they recognize that know a specific language is valueless compared to understanding how to code in the first place.
And someone without experience in Snowflake I guarantee you will try to treat it like the OLTP database they are familiar with and have horrible results. If you don’t think need that specific experience, you are kind of proving the hiring managers point.
I don’t have experience with Snowflake myself. But I know enough about OLAP columnar databases (Redshift) to know how the schemas should be designed (ie it’s in the name)
The CS theory (i.e. maths based) side of it really has stuck with me - only other thing being vi controls being hardwired in my brain even though I went on to become more of an emacs fan...
A course where 3+ students build something together in a single repo and the professor can view the commit and PR history would be amazing.
It's always puzzled me why people sign up for an academic education that has 'science' literally in the name and then complain when they get a theoretical education. It's not a tool workshop
Higher education is entirely up to you, it's not a company pre-training. If you want that there are literal vocational programs that are not computer science.
I’m actually surprised with as much money is in tech that there hasn’t been more influence towards shaping curriculum to be more industry relevant. Companies waste tons of money ramping up new grads and bridging the CS to SWE gap, surely the incentives are there for a different curriculum.
A junior developer can’t say “you know what I don’t want to work for your company because you don’t value cornerstone principals. I would rather sleep on the street”