The biggest problem I have, is that, even though I know from experience that I should talk to customers to understand their problems and build a solution that provides them value, and spend time talking to them to understand the value proposition, how to communicate it, and how it fits into their workflow, I don't enjoy those bits, and I prefer to just code things I want to build. I prefer to willfully delude myself into thinking that the thing I want to build is something other people will want to pay for. Oh, wait, and I prefer not to charge people and not to sell ads. So there's that too. Am I doing this right?
Sounds like you could use some input from someone experienced with product marketing. They are all about this kind of communication, both expressing ideas to potential customers and hearing their feedback from initial exposure.
Probably if not you are trying to build a business.
But! That's just one reason to code anything, and you are probably "doing this" well enough for the other reasons (education, experience, job hunting, and the best one: fun).