Hi @FormosaTBM and welcomed!
Right. You may also consider MIPS as that is the most extended platforms for network devices. Once you manage one of the platforms, moving to a new one is easy because, the basics (as @_py said), are the same.
/self promo mode="on"
Take a look to the programming for wanabes series to get an idea of how these x86, ARM and MIPS assembly looks like and you will see how similar they are (Books and Sources for Beginners - #3 by pry0cc)
/self promo mode="off"
The opcodes does not change for a given processor. The mnemonics depends on the assembler you chose (NASM, GAS). The system calls change with the processor and the OS. Here I fully concur with @dtm. NASM is probably the best one to start, as you can easily use on both platforms. But, depending on what your goals are, you may easily end up using both.
I would say no if that is the case. However, lately, you can find quite some Linux malware. Not targeting desktop computers (as in the case of Windows), but targeting smartphones (Android), routers and IoT devices in general. All those, at assembly level are linux boxes.
And, to be fair, It is true that you can reverse those on Windows. Check the tools for both systems and chose the ones that better suits you. The Windows tools are probably more user-friendly, according to what others have said in the thread.
I would recommend to start with plain C, specially if you want to do it in parallel with assembly. C++ has a completely different ABI that will just make everything harder. Once you know C move to C++ if you want, but in general it is a bad idea to do it the other way around (that’s on my experience).
Finally, take all those comments as indications. Overall, what works fine for some person may not work at all for others.