I started the #100DaysOfCode challenge on March 21st and finished it today, August 7th. FINALLY! 🥳 And yeah, that's way more than 100 days 🙃
For those who don't know, the #100DaysOfCode challenge consists of coding at least one hour every day for the next 100 days. Every day during this period you also must:
- Tweet your progress using the #100DaysOfCode hashtag.
- Engage with at least two other people doing the challenge.
The purpose of the challenge is to help you form a habit and to meet other people doing the same. Check the full challenge description on their official page.
When I started this challenge, I was at a point in life where I was looking to improve many of my current habits and to be more active on Twitter, and the challenge was a mix of both.
I want to share some thoughts about this journey and the challenge itself since I have mixed feelings. Before I go on, I want to say that this is my perspective. The perspective from an experienced dev who already codes in its 9-5 and has multiple side projects, not all code related.
Let's get to it.
Public commit is real
Yelling out loud that you'll commit and achieve something it's a powerful way to actually do it. And the challenge starts just like that, committing in public. It can help you build a habit if you didn't have one because it creates a sense of accountability. Even if no one really cares.
A more in deep view of this fact is in SWYX Learn In Public article. Highly recommended read 👌🏼
You meet great people along the way
The challenge invites you to share and engage with other people going through the same journey, and you end up creating bonds. I want to thank them:
- Alex was my accountability buddy from the very beginning. He's a humble, great developer who's constantly learning and improving his craft.
Annie and I engaged in some of our tweets for the challenge, and it's been a pleasure to see her Twitter following skyrocket. Do check her out for some mind-blowing CSS illustrations 🤯
Alfredo and I are also accountability buddies. He loves DevOps related stuff and he's on his way to write consistently!
It's daunting to do anything 100 times in a row
Starting to form a habit by doing one thing, for at least one hour, for 100 days in a row, is like rolling out a snowball uphill. It will eventually grow so big that it will crush you.
When I formed my habit of working out, it didn't start by saying: "I'm gonna exercise for one hour for the next 100 days". That's exactly how you don't create a habit.
You'll probably start highly motivated the first few weeks, but believe me, life gets in the way. You'll eventually start to fall off because it's a HUGE commitment. And it's especially hard if you are just starting out as a developer.
It's like starting to run before you crawl.
Instead, to create my exercise habit I said: "I'm gonna exercise for at least five minutes, three times a week". The secret is that five minutes is more manageable, and for that reason more likely to happen.
Once you start, you'll find yourself doing more than five minutes because, well, you're already there with your gym clothes on. You build up from there, and now the snowball rolls downhill.
Missing one day is not the end of the world
I wish this previous sentence was part of the challenge's website.
Whenever I couldn't find a time slot to work on the challenge I felt anxious. Even if no one would even notice that I missed one day. Not even your all-time-friends: the bots.
But you already committed publicly to the challenge! You feel pressured. And many days I would open my computer, do some silly change to my code, and tweet about it. Damn, I even felt stupid sharing changes so small that were nowhere near the 1-hour commit I should be doing:
David Ojeda 🇲🇽@davidojedalDay 66 of #100DaysOfCode
Today I only added a small gradient to my social links 😅
I'll probably finish this section tomorrow 💪🏼06:41 AM - 28 May 2020
That being said, take a break when needed. Nothing's gonna happen if you miss one or a couple of days. It's easy to burnout if you're also doing many other things at once. Your health is more important.
I learned A LOT
Not all 100 days of the challenge were related to a single subject or programming language; it was a huge mix of software-related work. Here are some things I did and learned during this journey.
Design
This is one of my weakest points, so I started with it. Color palettes, Figma and Tailwind CSS:
David Ojeda 🇲🇽@davidojedalDay 4 of #100DaysOfCode
- Settled on a color palette for my side-project: Indigo and green as primary/accent colors.
I don't know much about design, so I will change them later if not convinced- already tried four different palettes 😢. Dark theme colors still pending 🌑16:07 PM - 24 Mar 2020
Nina, a writing app (side project)
A web app to help me standardize my writing process:
Udacity's Front End Developer Nanodegree
I finished it in less than a month to take advantage of a discount 😁:
David Ojeda 🇲🇽@davidojedalDay 26 of #100DaysOfCode
I graduated from @udacity's front end nanodegree 👨🏼🎓🥳
It was a nice refresher of SCSS, JavaScript, and Webpack. I learned a lot! Thanks Udacity for this free month 🤘🏼04:11 AM - 17 Apr 2020
AWS CDK
I started another Udacity's nanodegree because they gave me another free month, this one was for DevOps. I couldn't finish it within the free month so I dropped from it, but I managed to learn anyways:
David Ojeda 🇲🇽@davidojedalDay 49-51 of #100DaysOfCode
Managed to deploy a web app using the #AWS CDK.
71 lines of TypeScript ➡️ 773 lines of CloudFormation template 🤯
The app template includes: VPC, S3 bucket, ASG, launch configuration, ALB, custom user data, IAM role and security group 🔐00:13 AM - 12 May 2020
Personal blog re-design
It was time for a new design for my personal blog, and I wanted to try Eleventy for a while:
David Ojeda 🇲🇽@davidojedalDay 83 of #100DaysOfCode
New blog design is finally out!! 🥳
Check it at davidojeda.dev
I suck at design btw 😅 It's missing many details, but I needed to release it to continue creating content.
It looks OK in mobile. It's missing animations on table/desktop size 👀06:23 AM - 25 Jun 2020
Personal finances blog re-design
I also have a personal finance blog in Spanish, it's called Perro Dinero 🐕💰. I use Squarespace because at the beginning all I wanted to do was to focus on writing. Now that I have the habit, I want more freedom, so I'm moving to Eleventy too:
David Ojeda 🇲🇽@davidojedalDay 97 of #100DaysOfCode
Still migrating my blog posts to Markdown 😅
Also did some minor style changes to my blog; liking it a lot so far!05:40 AM - 05 Aug 2020
Enjoy the journey
Engage and learn from others. I believe that's the most valuable takeaway of this challenge.
The rules and hashtag encourage you to comment on other's people work; positive vibes only 🤗. You meet new people, you learn from them, you expand your network. Do what you like, slow the pace if needed, but always have fun and enjoy the process.
Closing thoughts
The #100DaysOfCode challenge is a great initiative for new developers, it can help them to:
- Create a coding habit.
- Meet new people.
- Learn new languages.
- Showcase their work.
And the challenge is more than just coding, it's about sharing and community ❤️
I couldn't keep the 100 days streak or something even close because I already code every weekday. There were times when I didn't want to code on weekends, I wanted to disconnect. That's totally fine for me, but it didn't stop my anxiety.
So, was a great experience? It was!
If I went back in time would I do it again? I would!
Am I gonna do round 2? Not at all.
Do I recommend it?
If you're starting out as a developer or want to create a side project or habit and you need public accountability, go for it!
If you're an experienced developer with an already ongoing side project, the challenge might not be the best place to put your efforts on.
Thanks a lot for reading me, and I hope these words can help you through your journey, be it that you're already on it or planning to start 👋