If a person without coding skills tells that it shouldn't be difficult to program whatever thing that they want, they either underestimate the work involved or they extremely underestimate the work involved.
Of course, the work that you get from this type of websites can easily be crap, but often it is also the case of a clear mismatch of expectations and amount of work. Add scope creep and you'll get those comments.
Best thing to do is very clearly specify what you want. And let the coder provide an estimate for that specification. If you or the coder make any change to the specification, re-estimate.
There are always two major problems with this:
1. You are not able to clearly write down a specification. By writing things down properly, you also get a much better idea about how much work that 'simple' idea/concept actually entails. And I am sure, most people have the wrong idea about how to write things down properly.
2. The coder provides a wrong estimate. He/she underestimates the work too, thinks too highly of their actual skills, etc.
What always helps:
Write short and concise.
Describe what you want to happen in case of success, describe what you want to happen in case of failure (in essence, write your testcases).
Use (mashed up) images to clarify whatever it is you want to happen.
Now both of you have a much clearer idea what needs to happen and there is much less chance of a mismatch between expectation and amount of work.