What matters for a programming laptop
For most day-to-day development work, three things matter more than anything else: enough RAM to run your editor, a browser, and a couple of local services at once; a fast enough CPU that builds and test runs don't feel like a coffee break; and a keyboard and screen you don't mind staring at for eight hours.
At the sub-$1,000 price point, you're mostly choosing between Apple's M-series MacBook Air and Windows ultrabooks like the Dell XPS 13.
RAM and storage
16GB of RAM is a reasonable floor if you're running Docker, a browser with two dozen tabs, and an IDE simultaneously. 512GB of SSD storage is comfortable for most stacks, though it can fill up quickly with multiple language toolchains installed.
macOS vs Windows
This mostly comes down to what you already use, and whether your tooling assumes a Unix-like environment (macOS, or Windows with WSL) or not.
See our full MacBook Air vs Dell XPS 13 comparison for a spec-by-spec breakdown.