Not "learn Python" — rewire Java instincts. Names instead of boxes, protocols instead of interfaces, comprehensions instead of ceremony. Every trap here (mutable defaults, aliasing, identity-vs-equality) is a production bug you'll actually meet included.
finlytics CLIA small command-line expense analyzer that uses everything above: read a CSV of transactions (context manager), model them (dataclass + dunders), tally categories (dict/Counter), stream large files (generators), fail loudly on bad rows (custom exception), and prove it with pytest. It's your first portfolio artifact — and the codebase Phase 1 will analyze with Pandas.
Full spec in the phase guide ↗ · then start BYO-1 (autograd) to bridge into ML.