If you listened to the rhetoric, you might be fooled into thinking that everyone needs to be a coder. This is a bad; programming isn’t for everyone and nor should it be.
Having skills or understanding that makes you able to do programming-type things is great and can really help, but full-scale programming isn’t a must for the majority of jobs.
What we need, on the other hand, is people that can describe their needs in a precise and reasoned fashion — in a way that makes it possible for a person that doesn’t understand the subject matter and domain intimately to create or acquire the thing you need.
The problem is that understanding the problem is almost — if not entirely — like imagining a solution; the next obvious step is to create this solution. The problem is that creation is only a small part of programming; it’s testing, maintenance and support that cause problems.
Buying solutions seems like a defeat for many coders, but buying the things that you can buy while focussing on creating and supporting the things you can’t is better than doing half of a proper job on everything. But, don’t be fooled into imagining that buying something means no work; it means a lot of work in preparation — your acquisitions chops coming to the fore — and afterwards in checking and rolling out the solution and maintaining the relationship with a vendor.