Peanut butter and jelly are complementary goods, as are cars and gasoline, newer cars and electricity, electricity and basically everything else.
We don’t normally think of, say, Docker and Kubernetes as complementary goods in software engineering, because you can get both for the low price of free. Or can you? You still have to invest time in learning both, and as the famous saying goes…
Say it takes X hours to learn Docker adequately. If Docker suddenly becomes easier to learn, such that it now takes only X / 2 hours, it’s reasonable to assume Kubernetes will become more popular in tandem, because one of its complements now costs less and is hence supplied in greater quantities anyway. You don’t want a peanut butter only sandwich, do you?
I’m a big fan of vibe coding. I far prefer to spend what limited time I do allocate studying computer science to more timeless things like how loop invariants work.
Vibe coding is sort of the ultimate destination point of LLMs and software in general being heavily complementary for the vast majority of us. In the limit case, LLMs allow people with no programming experience at all to create in an afternoon a tiny script or application, where without the LLM they might have to complete a months-long course in Python before being able to create such a prototype with a few weeks of work. That’s far better than X to X / 2 – that’s more on the order of X to X / 10, or even X to X / 100.
Professional software engineers are expensive. They’re expensive because the right software in the right place can generate huge returns on investment. I suspect a paid subscription to any common LLM these days pays itself back handsomely as soon as your generic office worker starts to use it to automate the boring stuff.