Learning to think (again)
My daily code challenge. One small problem a day, solved by hand, to rebuild the habit of thinking about code in the age of LLMs. The whole thing lives in an independent repository, Learning to think (again); this page is just a friendlier window onto it, and today’s challenge is loaded live from that repo.
Today’s challenge
Loading today's challenge…
Why I do this
Large language models and coding agents have changed how I write software. Along the way something is quietly eroding: my ability to think about code. It is easy to believe that reading part of what a model produced is the same as understanding it. For me that belief is false, so this is my counterweight: one short challenge per day, written by hand, to keep the muscle alive. If you recognise yourself in that, you are welcome to try it too.
Start with what set me off: Gilles Louppe, Atrophy.
How I run it
- No LLMs, no agents, no autocomplete beyond plain editing.
- Reading the official documentation is fair game when I am stuck.
- One challenge per working day, five days over seven.
- Each one should take about 20 minutes, not more.
- The goal is not the perfect solution. The goal is to think the problem through and write the implementation myself.
A small irony: the challenges themselves are written by an LLM agent. I solve them by hand, but I do not invent them by hand. The point was never to refuse the tools, it is to make sure I can still think without them.
Difficulty
Each challenge carries a rating from one to five stars. Filled stars (★) count, empty stars (☆) do not.
- ★☆☆☆☆ warm up
- ★★★☆☆ needs real thought
- ★★★★★ hard
Topics
The mix is weighted toward the tools I use most.
| Topic | Share |
|---|---|
| Python | 40% |
| JAX | 25% |
| PyTorch | 15% |
| C | 10% |
| Math | 10% |
The Math track is pen and paper, no code: integration, linear algebra, and the derivations behind deep learning, at the level of a master’s degree in engineering.
The daily log
Loading the log…