Putting deliberate practice into the framework of a structured routine is a fantastic way to quickly learn and push your skills forward in a specific area. Projects like #100DaysOfCode and #30DaysOfX are great frameworks for this.
I've done a few of these projects including a loosely-defined #30DaysOfCode, a #100DaysOfCode focused specifically on ReasonML, and most recently #30DaysOfWriting. Beyond the topical learning that came with each, I've picked up a number of strategies that will help make your first (or next) #30DaysOfX project a success.
Know your goal — the most important thing you need to do is be clear about the parameters of what you are going to do each day for this project and know what you want to get out of it in the end. When I started #30DaysOfWriting, I had a clear goal of getting better at writing and adding to my catalogue of published content. I wanted to achieve that by writing focused, single-topic short blog posts once a day of 30 days. It worked. Goals achieved!
Focus, Focus, Focus — narrow in on something focused and achievable, constraints inspire creativity, if you make the thing too broad, you are going to feel overwhelmed by the possibilities
Lower the barrier — get all obstacles out of the way so that you can put your energy into that one, focused thing. For instance, with my #30DaysOfWriting project, I didn't want to get caught up with fixing the publishing workflow for my personal blog, so I switched to dev.to which made it easy to just write and hit publish.
Make it public — each day, in the spirit of Learn in Public, share that day's contribution to twitter (or whatever community/platform makes sense for you). Making your commitment public will add a layer of accountability. You'll get feedback and encouragement as you go which will improve the overall outcome.
Keep an internal log — as you work on each day's contribution, you are going to have tangential ideas, unrelated ideas, or thoughts on the process as a whole. Document these things. You'll be glad to have them later even if you don't end up using many of them. By the end of #30DaysOfWriting, I had a list of nearly 20 additional writing ideas that I didn't get to. There were many more than 20 things in that list and they really helped on days where I wasn't feeling inspired. I'm excited to pull from this list in the future when I'm looking for a writing topic.
Give yourself some slack — it is unlikely that you'll be able to string together 30 straight days of a commitment. That's okay. A busy day, unexpected commitment, or vacation is likely to land in the middle of your project, keeping you from doing that day's thing. If you are legitimately committed to the project, then it's no big deal to miss a day. Don't try to make up two in one day. Don't feel bad about it. Both of those things create a toxic relationship for you with your project. Instead, slide your schedule back a day and pick up where you left off tomorrow.
Trust yourself — you are going to get through the first few days with a feeling of exhilaration. By something like day 7, you are going to wonder how in the world you'll be able to keep this up for another 20-some days. It will be a challenge, but trust that you've got it in you and keep pushing forward. Keep your goal in mind and give yourself some slack if you really need it.
Build up some confidence — The first I heard of this concept was in the form of #100DaysOfCode. That is a lot of consecutive days of writing code. That feels pretty daunting. That's why I like #30DaysOfX, it is much more manageable. I can imagine doing something for a month much more easily than 3+ months. Similarly, if 30 days feels too overwhelming, consider a different number of days, like 15, and build your confidence by succeeding at that.
What is at the core of all of these strategies is helping you build momentum and set yourself up for success. It's still going to be a challenge, but you'll come out the other side with a number of victories.
Let me know about your next #30DaysOfX project.