Comment by alistairSH

7 days ago

Maybe I’m an oddball, but I’d rather hire a new grad with sound fundamentals, but learned on an older tech stack, then somebody with all the buzzwords but no fundamentals.

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.

Yeah. I see a phrase like “hirable skills” and… it feels like “skills” that are probably going to be outdated every couple of months.

  • 100%.

    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.

The Pythagoras theorem doesn’t change even if you use an LLM. Fundamentals shouldn’t either. Don’t see why schools should see this any differently.

  • > The Pythagoras theorem doesn’t change even if you use an LLM.

    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.

  • I agree. That's why universities should never teach any practical real world programming languages. They should stick to Scheme and MMIX.

    • I don't mind Scheme - love it. But MMIX is one heck of a convoluted, "fantasy-alien" assembly language that I cannot stand. Gave up reading TAOCP because of it. Knuth should have stuck to pseudo-code or plain C.

    • Not sure if that's sarcasm or not, but when I was in uni (late 90s), it was C++, which was very much a practical real-world language. There was a bit of JavaScript and web stuff, but not much (but Javascript was only 4 years old when I was a senior, so...).

You're sound.

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.

Yes it is just you. Every application for a job gets hundreds of applications. A company is not going to hire someone with no experience or knowledge over someone who does.

  • > A company is not going to hire someone with no experience or knowledge over someone who does.

    “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 yet juniors can’t find a job to save their lives now…

      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)

I mean yeah, I agree, but is it that hard to keep relevant technology in the mix? I'm not saying everything has to be cutting edge!

  • Sure, but are C++ or Java really that outdated. AFAIK that’s what most schools teach. Maybe with some JavaScript as well. It’s not lime they’re teaching Fortran or COBOL.

    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.

    • > Sure, but are C++ or Java really that outdated.

      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.

      1 reply →

  • Many professors view teaching as a secondary obligation. Even if they don't it takes more time to learn to teach something than just to learn it. Our field is moving so fast that outside of the major innovations, it would be quite difficult to keep up being a good teacher on everything, while also doing research, and doing the actual teaching. In addition, most new tech isn't very interesting, or useful. Like every couple of months I'm getting another peak at SOTA Python or JS and the "innovation" is just another layer of duct tape that doesn't really improve much.

    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.