As I've finished building my next project, Wave Radio, I'm now reminding that the coding which takes a lot of time is really the easiest part of any project.
It's not that it requires little effort but the effort required is finite and measurable. If you're building a project with X features, and a specific design all you really need to do is get those tasks done and you're finished. It's a lot of work but you know exactly what needs to be done.
Getting people to use your project? That's infinitely harder because there are so many options. There's designing promotional material that you can only know how good it is after testing it. There's picking the right marketing channels then figuring out the best tactics to pursue those channels. The permutations you can take within those tasks are far more varied and the outcome far less determined than coding.
When you're building a project there are a lot of options to get it done but whichever tools and methods you choose there's a clear route to your destination. Marketing requires a far broader approach and the right one isn't always clear. Each project requires different tactics and the tools and methods that worked last time might not work again.
Maybe this is only my perspective as someone who learnt to code first and is now trying to figure marketing out. What do you think?