Okay, so I did an experiment with Claude a few weeks ago. I asked it to write one fundamental piece of my SPA framework from scratch, without looking at it. The piece that manages memory, creates and disposes of current screens and their sub-components. I spent about 10 hours coaching Claude until it was able to write something quite similar to the 500 lines of code that I had written that sit at the heart of that system. Questions were like, "hey, don't you think maybe you should create a cleanup function for that component before destroying it?" You know, basic stuff like that.
Its code was crap.
Every time I corrected it, it said, "oh, you're right! That's so smart!" But at the end I had to debug the whole thing myself. And this was without even trying to tie anything to a back-end service or API.
So what if, in a few years, this is unnecessary and anyone who wants Photoshop with video capabilities can just will it into existence by asking an LLM to write it? Maybe that'll happen. I'll still have my proprietary frameworks and, unlike that thing you vibe-coded, they're battle-tested and I know everything they do. That's why the advice I'm giving to the OP is solid.
Every piece of code you write yourself is something you fully understand and it gives you the power to do more on top of it the next time. Saying that it doesn't matter because LLMs will take over, and no one will need to code, is just some kind of resignation, or laziness, or solipsism, or wanting to watch the world burn, or whatever. But whatever it is, it's not useful work and it won't profit the person who is writing code now and wants to keep their rights and not get screwed.
When people are sandboxing new vibe-coded copies of Photoshop - and asking an LLM why the colors are all messed up, which it can't see or understand - someone will still be asking for us to come make things and fix things.