Calculator a question aimed at devs about roms?

Ok so I am interested in developing roms but since I am only gonna begin(still thinking things through) I was hoping you guys can help me with some doubts:
1) Do you prefer building on windows or Linux?
2) Is there an advantage on working with Linux?
3) Is working with Linux on a virtual machine in windows the same?
4) Is there a way to test the rom without having to flash?
5) Is there anywhere you think one should begin or read before actually getting to work?

Thanks in advance