I think there is a common wrong way of considering programming among non-programmers: customers and people thinks programming is easy, extremely easy but the truth is the opposite. Just try to think how much time does it require to build a simple mobile app or a webapp and how many different knowledges you have to master to do that (front vs server programming languages and frameworks, persistence technologies, deploy tools and so on). And i'm not talking about the complexity of an "enterprise application".
I think this common and misleading sense of easiness is due to the fact that people thinks that you have a lot of work already done thanks to all those opensource libraries, thanks to the ready-to-go tools like wordpress, thanks to all those beautiful and simple programming languages that every child can learn...come on, there is always an easy "build a twitter like app tutorial" so it obviously can't be that complicated thing :D
The truth is that like any other job, you must love programming to do it very well, because programming requires a lot of thinking, designing, studying, patience and perseverance and all these skills are not for everybody.