I had a problem that will sound familiar. I kept starting big projects and finishing none of them. A huge idea on Monday, an empty repo by Friday. The green squares on my contribution graph stayed empty, and nothing I had built was something I could show anyone.
So I changed the rule. Instead of one big thing, I would build one small real program every day. Alternating days: one day C++, one day Python. One commit a day, no filler commits, no empty files. Every program has to actually work and be something a person could use.
That became two repos. cpp-foundry for the C++ days, py-foundry for the Python days.
The C++ days
Day one was a grade calculator. You enter your courses with credits and marks, and it prints each course with its grade points and your semester average.
Day three was Two Sum, the classic interview problem. Given an array of numbers and a target, find the two numbers that add up to the target and return their positions. I solved it in one pass with a hash map. For each number, check if the target minus that number was already seen. Time O(n), space O(n). The brute-force double loop is O(n squared), and I left that behind on purpose.
Day five was the LRU Cache. A fixed-capacity cache that evicts the least recently used item. I built it with a doubly linked list for the use order plus a hash map pointing at each node, so get and put both run in O(1) time. It is the kind of problem that shows up in real interviews and real systems work.
The Python days
Day two was a grade calculator in Python. Enter your previous average and credits, then your courses with credits and marks, and it prints each course with its grade points, your semester average, and your new overall average. It works for any semester.
Day four was a log analyzer. It reads a web server access log and prints an operations summary: total requests, unique IPs, status code breakdown, busiest IPs and paths, and the error rate. Lines that do not parse are counted and skipped instead of crashing the run. Standard library only, no dependencies.
How to run them
The C++ programs compile the usual way:
g++ two_sum.cpp -o two_sum ./two_sum The Python tools run directly:
python3 log_analyzer.py sample.log python3 log_analyzer.py access.log --top 10 What the streak taught me
A small finished program beats a big unfinished idea every single time. One commit a day sounds easy until you try to keep it up. The rule that saved me was the "real program" rule. If it does not do something useful, it does not count. No placeholder files, no empty commits just to colour a square green.
The streak is still going. One small program, every day.
Repos: https://github.com/MASHHOOD2019/cpp-foundry and https://github.com/MASHHOOD2019/py-foundry
![AMR AI and Embodied Intelligence — Ch.18: GPU and Accelerator Design [KR]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fospxyzadkcmpo8xjqyok.png)
![AMR AI and Embodied Intelligence — Ch.19: Cloud Robot Architecture [KR]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F59osofl1km4y8vngcpzs.png)
