2. Find a pain point in an area you understand or have experience etc, then talk to people about if it is something worth solving for them before you ever build something. Don't build until you have multiple people say it is worth it and ask when they can have it/demo it pay for it etc.
3. Build the simple version, one that is almost embarrassing in simplicity but is reliable and not bug ridden. The simple version must solve a key pain point and then get it in one or more client(s) hands for testing and refinement.
4. Keep refining 1 thing in the product at a time. Listen to clients but do not chase features only. Chasing features is a sure way to die by a thousand cuts, be selective on features that solve the need and which a client is actually paying for or using. I've had lots of customers say we need this feature or we can't buy, then you do it and they either still don't buy or never use the feature and drop you in 3 months. Be weary of this.
5. Stop second guessing so much. We all have doubt but the reason so many young people succeed early on in getting a product out is they don't have combined experiences telling them all the stuff that shouldn't work. As we age we see all the failures of the past and can let it cloud our drive and vision, you need to actively ignore this at some level but not stupidly so. At the same time the most successful founders are usually a little older who took that youthful inquisitiveness/naiveté forward but with life lessons on how not to shoot themselves in the foot.