Say goodbye to setup() and loop(). Understand what really happens when your code runs.
Write a bare-metal C program without any Arduino libraries. Understand main(), includes, and the build process.