Wouter suggests using WLoader with a 16F877 to start with. I'd also like to do my own "bootloader" (perhaps more like a double-bootloader) that's more of a real-time remote code executer / arbitrary electronics I/O.
Start using some of these tools for design layouts. (see section 2 and below)