Compatibility wise, my experience has been slowly degrading. I've had to force the Intel GPU driver to use DRI 2 or X11 wouldn't work (this might have something to do with the manual config in the sound system I needed to get the sound working when I bought the laptop because Intel hadn't released proper drivers yet).
I'd use Wayland, but that just doesn't work with the Nvidia GPU (even though it should in modern drivers). A recent kernel update broke sleep for me, it now no longer goes to sleep and immediately wakes up.
I also occasionally get full system freezes whenever GDM tries to load the login screen, either on boot or when switching users. Those have been becoming more rare lately but it's still happening every now and then. Just a black screen, the computer slowly heating up and nothing.
Lastly, for firmware updates you just need to boot Windows every now and then. Some firmware updates come through fwupdmgr, but others need to be installed manually or through a Windows install.
Perhaps I need a reinstall Linux, perhaps I need to switch distros. It works fine with it works: touchpad is nice and responsive, has full multi finger gesture support in Wayland, the keyboard is good and the palm rejection is a pain when trying to game on the touchpad but it works great for normal typing. I've also found it a lot quieter and longer lasting on Linux than on Windows, where the CPU and GPU either underclock dramatically or the fan spins up constantly.
From my experience with Dell XPS/Precision, Lenovo Thinkpads, IBM Thinkpads, and finally MacBooks, the MacBooks are far ahead. The Thinkpads trackpad are way too small, and Dell's are now days large enough but too imprecise. Both the Dell ones will sometimes trigger a click when typing on the keyboard since the trackpad is too sensitive.
Why is everyone teaching Python?
Of course a lot of the data science/machine learning is being done in Python, but that is likely due much of the frameworks/tooling around is Python in general in that world.