The funny thing is: Now that pre-made game engines have become ubiquitous, the developers of said engines are going to have the same problem: not enough new people are interested how the underlying tech works, so there is going to be a shortage of people that can work and develop those engines.
This is a huge problem currently, and I cannot understate how important it is to realize the scope of how important this will be moving forward.
Gameplay programmers are dime a dozen. Specialists (ie; I only do C#, don't tell me to do <x> language) will be dime a dozen.
Writing code that works isn't good enough to make money.
Writing code that works, lasts, and is able to sustain itself (without needing to staff too many of the people who 'know how it works without intervention', of course) is what people want from their engineers.
Engineers who can understand and build
systems - not just one part of a system - will be ultimately paid the most, and be the most valuable assets to have.
I actually didn't choose to be a generalist. I just picked up too many languages. Before too long, I realized that all programming is basically similar, and the differences are largely in minor functionality and naming / implementation of concepts.
As a generalist engineer, I think more than just about "getting the job done." I care more about "designing a system", and stuff like ACI compliance is something they don't teach you unless you are going for a "Database Architect" degree in college.
Problem is, you're not going to learn this in college as a 'bachelor's gameplay engineer student'. You'll likely hear it in the field from someone who was curious enough to look into it, or from someone whose primary role is "Database Architecture".
In fact, the only engineering knowledge I would ever recommend going to college is for mathematics; specifically, linear algebra.
I've legitimately considered just enrolling locally or reading books about the math I get lost in on my own.
Knowing what the data inside a matrix or vector actually represents is super important and I accidentally taught myself the fundamentals. It wasn't till I embarrassingly asked the CTO of my last company that I filled in the remaining pieces about view frustums and how they related to local or world space and he taught me in about 15 to 30 minutes the remainder of what I needed to know.
In short - you don't hire 'coders' or 'programmers'... you hire 'engineers' that build systems to last. And those people must be self-driven - most have the 'curiosity gene' that makes them want to find the solution.
They should know how to ask the right questions, but also know a path to find a solution for every issue they can think of, especially when there isn't someone to answer a question.