I've been learning more about marketing over the past 5 years. Here's what I've learned so far:

1. Pick one strategy to test at a time and commit to it

2. Pick one platform/audience and commit

3. Have a newsletter and funnel people to it

These steps are mostly because I'm a solo founder and don't have a lot of time. If I experimented with multiple strategies at the same time, I'd quickly run out of time for development.

And building a newsletter is just the most reliable way of contacting people en mass these days. Twitter/Facebook/etc. all have algorithms that can filter you out. Email is a more reliable way of connecting.

As far as marketing strategies go, as a dev, I'd highly recommend the "indie maker / build in public" strategy. This is perfect for devs because it means a lot of your effort is duplicated as marketing.

Here's how it works:

1. Sign up for Makerlog/Twitter/WIP.chat or another community that lets you build in public

2. Post what you're working on before, during, and after it's done

3. Ask for advice and feedback when you need it

This will let people get involved in your product's development and give them a reason to cheer you on when you launch your product or get a new customer. My most popular tweet of the past year (other than my launch post) was getting my first customer. It was also responsible for me getting my second and third customers.

Once you've gotten comfortable on these platforms, you can try this more full process (which I outlined for myself yesterday):

1. Post a rough idea for an article/product/ebook/course to your social network of choice and get a feel for what people like or don't like about the idea. This doesn't have to be a fancy post, just a sentence or two. E.g. "I'm thinking of making a beginner JS course, what do you think?"

2. A few days later, ask a question about how to proceed with your idea or if anyone has done it before. E.g. "Which course platform for releasing paid courses do you like the best?"

3. Again, a few days later, post an outline of your approach for tackling this idea or talk about the content/features you're thinking about including in it. This will again help you measure interest and see where the real value of your idea is. E.g. "Here's what I plan on covering in my course: ___. Would this be useful for beginners to JS?"

4. Work for a few days. Then post a preview of the progress you've made so far. This could be a few lines of code, a blurry screenshot of the final design, or even a picture of you working on your laptop. Just show people that you're actively working on this and give them something to get excited by. Remember: they're probably just as interested in your journey as the final product. Don't focus on the product too much — you're also telling a story about what it takes to build a product.

5. Offer a taste of the final product. Make a thread or post with some of the actual content/features of the ebook/post/product. This could be a 5 minute video from the first lesson of your course. A screencast of you using your app. Or a the first page or two from your eBook.

6. Post a beta tester sign up form that gives people early (or instant) access to the MVP version of your idea. People who sign up are your true fans and will probably give you the best feedback over time. This form can be made with any email marketing software.

7. A week or two later, post a few quotes from early users showing what people said about their first experience of your product. E.g. "I wish I had this when I was first learning JS. I'm learning new things every 2 minutes!"

8. Finally, plan your launch! A few weeks or days before your big launch day, tell people you're launching. Tell them your goals, your hopes, and what your product will let people do (that they couldn't do before) once it's out in the world.

9. Post on Product Hunt, Hacker News, as well as on your social platform of choice. Make sure the product doesn't feel done yet. You want it to be a little rough around the edges. But it should solve a problem and that problem should be clearly stated on the home page.

10. After the launch, post about a piece of feedback you got from a user who signed up during the launch. It could be negative or positive piece of feedback, as long as it was useful to you.

11. Post about an update you made because of user feedback. This will show that your audience is important to you and are active participants in your journey.

12. Don't stop posting. Repeat the last two step (gathering feedback and making improvements to the product) over and over again until your product really starts to get good.

12. After you've improved the product enough that it can be considered a 2.0, launch it again.

The nice thing about this process is that it's symbiotic. Your audience benefits just as much as you do: for every idea of theirs you implement, they benefit by a) seeing their opinions matter and b) getting a final product that's more useful to them.

And, to top it off, you and your audience get to create a story together. It's the story of a fledgling idea coming into reality and finding its way. And they get to help it grow and help it along. It's a pretty magical process when it's done with intention and the desire to make people's lives better.