But what happens if there is a person with a great idea, no programming skills and not enough money to invest in developing the product? How should a young person approach this?
you've got to change one of those things.
there are plenty of reasonable obstacles to not starting something - it's your job to decide whether or not it is worth finding ways to overcome them.