Our industry moves incredibly fast. The skills I learned over the past 10 years are different than what new developers are learning. The fundamentals have stayed the same, but with all of the libraries and packages available there are many layers of abstraction on top of them. So I wanted to make something that I can do everyday to help stay sharp and learn things in ~30 minutes. Here’s the 30 day challenge I’m doing for… the next 30 days.
These are some of the areas I feel like I need to develop and explore. As I start working through this list, I’ll probably come back and update it with less vague details. Some of these will likely take more than 30 minutes, but I’m going to try and time-box it for a while.
Day 1
Make a quick sort function in TypeScript and Python and explain when you would use it.
Day 2
Make a hash table in TypeScript and Python and explain when you would use it.
Day 3
Explain the concept of graph traversal and write sudo code for it.
Day 4
Implement a linked list in Python and TypeScript.
Day 5
Implement topological sorting in Python and TypeScript.
Day 6
Implement a stack in TypeScript and Python.
Day 7
Translate one backend endpoint from your most comfortable programming language to one you’re less comfortable with.
Day 8
Design a system to handle a large number of SMS messages.
Day 9
Design a user record system for a non-relational database and what the tradeoffs are compared to a relational database.
Day 10
Design a CQRS architecture for a healthcare app that reads patient data and writes data updates.
Day 11
Design a distributed system that integrates data from 3 third-party services.
Day 12
Make a Connect Four game API with Python and TypeScript.
Day 13
Make a small spreadsheet UI with React and TypeScript that has WCAG in mind.
Day 14
Explain what RAG (retrieval-augmented generation) is and make a small example in Python.
Day 15
Explain what a LLM (large language model) is and make a small example in Python.
Day 16
Set up a server on your local machine that can host a small frontend, backend, and database.
Day 17
Do a small hardware project.
Day 18
Implement a PKCE security flow in Python and TypeScript.
Day 19
Build a deployment pipeline in GitHub Actions.
Day 20
Implement a multithreaded and parallelized application.
Day 21
Implement an application that uses concurrency.
Day 22
Build a simple desktop app.
Day 23
Build a simple CLI tool.
Day 24
Build a simple SDK in TypeScript and Python.
Day 25
Design a system that lets multiple users edit the same content at the same time.
Day 26
Design an event-driven architecture for a fintech company that uses Kafka.
Day 27
Design a database and infrastructure that uses caching and connection pooling.
Day 28
Build a backend that supports multi-tenancy.
Day 29
Build an API and data pipeline with gRPC and Node.
Day 30
Build an ETL data pipeline.
Maybe this will be helpful for others too so feel free to share it. Here’s the GitHub repo where I’m putting all of my progress to give myself some level of accountability.