I use all 3 (including Windows). You are going to want to go down the customisation rabbit hole on the Mac, and be thoroughly unhappy unless you try to understand the way why it is how it is and don't try to fight it.

That said, since you like i3, let me point out right away that window management on the Mac does _not_ work like you want it, and likely never will.

I use Moom (https://manytricks.com/moom/) for manually tiling windows since I can make it 99% consistent with what I have in Windows and Elementary, but I've used Amethyst (https://github.com/ianyh/Amethyst) when I felt like "going back" to i3, and it is sort of close enough.

That said, another important thing (if you intend to do development) is to absolutely not mess around with /usr/local and whatnot and understand how brew (https://brew.sh) works. Use pyenv, rbenv, etc. instead of messing about with system runtimes. Learn to live with the built-in terminal unless you absolutely must use iTerm (which I've stopped using because the built-in one is now plenty good enough), etc.

I also have some (old, and in need of update) tips over at https://taoofmac.com/space/howto/switch, but they're more focused on the Windows crowd, so take them with a pinch of salt.

I'm pretty satisfied with yabai for a tiling window manager. https://github.com/koekeishiya/yabai