Start with the kernel. Don't try to build it on anything but linux, even if you have to use VirtualBox to do it. Once you get the kernel compiled, you'll need to build a boot.img with ramdisk. The best way to do this is to unpack an existing boot.img and extract the ramdisk. Read
this. However, don't use the script on the page to split the img, use unpackbootimg (you may have to compile it, but it's really simple) because it will give you the base as well as command-line arguments you need to rebuild the boot.img. Once you get that part done, you can flash the boot.img, make sure it works, tweak it, fix bugs, etc. Then put it in an update zip. Here you'll get to learn about edify scripting to flash the zip, see
here.
So, once you get the kernel going, and you've got a working boot.img and kernel update zip, you can expand on the kernel update zip to include the entire ROM. Again, it's best to start with an existing system. If you've got access to a nandroid backup of a rooted stock system, you can use unyaffs2 to extract the system.img. If the apk's and /system/framework are odexed, you'll need to deodex them. See
this for info on how to do it. Make sure you can put it all in an update zip and get it installed and working before you do any further system mods. If you modify framework-res.apk, you'll need to resign it as well as every app in /system/app or the phone won't boot.
Yep, lots of learning to do. But I just saved you, like, literally days of searching.