I've been recently seeing posts here on Hashnode about the 100 days of code challenge. It seems like a delightful idea. And a fun one too! So I decided to hop on the bandwagon as well.
A few caveats though
No 100 consecutive days
I have a lot (and I mean A LOT) of trouble being consistent. I have been dealing with ADHD all my life. So I will not make it mandatory for the challenge to be consecutive days. Will help me avoid burnout as well.
Both our behavior and our thinking benefit from external scaffolding: systems we put in place that help encourage certain behaviors. I think of this blog as such. In the end, I want to end up with 100 posts. Regardless of whether they happen one day after the other. When life gives you lemons...
Code & stuff
To me, the challenge's goal is not to code per se, as much as learn new and useful stuff. It is necessary to stop and think before starting to write software. So too, it is necessary to stop and think before starting to learn.
Deliberate practice requires, well, deliberation.
So I will maneuver some of those days for research and not so much for coding. The result will always be a blog post reporting either my work or my findings.
I have identified some topics that seem interesting and useful. Many of them I already have some experience on. And some of them are still new to me, so it is a good research opportunity!
On the technical skills aspect:
- Algorithms and Data Structures
- REST APIs, Web servers and Databases
- Web3 and Smart Contracts
- Game dev and Generative Art
- Frontend and Native clients
- Type systems and Functional Programming
- Unit and Integration testing
- Software Design and code quality
- Mathematics (ML and FP)
On the soft-skill side:
- How to make interesting GitHub repos
- How to create a portfolio
- How to contribute to open source projects
- Coding interviews
- General problem solving
- Topics in Cognitive Science useful for software development
The choice of topics follows a practical goal of course. These topics are, to the best of my knowledge, needed to become a software developer.
I would like to read if you have suggestions for extra topics.
Let us see how it goes :)