Personally, I do not like Canonical and what the hell they do with Ubuntu. It's just so different and special in so many places and imho Canonical did so much wrong in places (Unity DE, to name one example...). Since you come from macOS, I rather suggest using elementary OS(still beta), which is free (just enter $0 as custom amount to pay) and based on macOS UX. Alternatively, Linux Mint (with Cinnamon DE; Mint actually is based on Ubuntu, but without all the Canonical stuff) is a very nice choice. It is more similar to Windows UX, but still so Linuxy :)
If you want to explore more distros, I can recommend KaOS (Review; it's still a tad beta, so you should not deviate from the standard config if you don't know what you are doing). KaOS takes away a lot of choices you have to make by only allowing a certain set of tools and libraries. All in all, that makes it very beginner-friendly, it looks awesome and it offers the latest and the greatest OpenSource tools as rolling release (while trying to maintain its stability).
You could also go away from Linux and instead have a look at the BSD world. All in all, I prefer BSD in some ways, even though I do not actively use it. Give FreeBSD or OpenBSD a try :)
As an example of the effect OpenBSD has, the popular OpenSSH software comes from OpenBSD.
However, I really suggest not touching Gentoo, Slackware or Arch Linux (or stuff based on them) if you do not want to spend days just installing the base OS to a workable state and then re-configure everything a few times while you install basic applications and start all over after an update broke the heck out of your system for the first time. But that's just my experience (and the reason why I moved away from Arch on my laptop, which I use very rarely either way) :D
By the way, we have a Linux node on Hashnode. Your post should use that node, not General Programming :)