It does feel a bit like building on quicksand, but coding has always been that way for me. Well, less so with embedded than webdev, but still.
Pardon my lack of creativity but I'm not even sure what mastery with the new tools (LLMs) would look like. When you are so abstracted from the details and don't have to know anything, what _is_ mastery? (I am not asking rhetorically and if people have overcome this thought I would be interested in hearing from them.)
Knowing how to ask a machine questions in the right way? Playing as a manager in control of non-human developers? It all sounds really silly and something that is difficult to aspire to (and I can't imagine explaining my job to others with a straight face). I think I find it even more egregious because it's all built on paying rent to the LLM operators.
It's not that I don't enjoy results in their own right sometimes but I think I am definitely in the 'this is giving me an identity crisis' camp.
You say that you liked learning how things worked inside out, whether it was Postgres or whatever. You can still do that. You can learn it at a high level, and then it becomes like a magic word in your arsenal. You don't have to know or remember the details of implementation, but only the nature of its costs, benefits, and synergies with other systems. You just have to remember that high-level abstraction, maybe just a single vocabulary word, of a low-level reality - the exact syntax is really no longer a concern.
The better the agents get, the less there is playing manager. Really your job now is to have and execute vision. Execution is largely a function of having a map of the high level vision and low-level realities in your head, or just having in-the-moment intuition about these things... then just speaking it.
Also, there is developing personal libraries. You may find that in your business you repeatedly tackle similar problems. You develop and refine a library that your future agents can utilize. You develop prompts that make your work more automatic and more robust. And when I say you, I mean, you direct your agents to do it.
It's not so different from what it always was, except that years get compressed into months. What was slow and tedious is now... less so.
I don't know how much advantage I have in this new world, having programmed (sometimes more, sometimes less) for 30 years. My brother has never written a line of code in his life. He's been heavy into AI for a while, and he has developed some really incredible stuff. I think he may have already outpaced me. His $1500/mo+ in subscriptions definitely help.
They can build things, but it's all terrible really. Their "ideas" are terrible.
that's a good analogy and puts into words the way i've always felt about software development. Every so often the entire industry rolls over into something new. I've been here 30 years now and, in my experience, the skill that counts is being able learn new skills. To go back to the analogy, to build something new on top of what you've built in the past before everything is swallowed by the quicksand.
I think well north of 90% of people in software engineering have job expectations that, when assisted/automated with AI, boil down to exactly that.
It's a pain in the ass to work at such a job and find challenges or things to master--your superiors don't want you to do that, there's not enough time in the day, and you're tired from LGTM-now-make-this work.
That's most software jobs, because that's what most software companies want.