This question already has an answer here:
I have never worked with micro-controllers in my life, and have a small experience in programming. I know a bit of java and TI-basic, but haven't ever made any useful programs. I have random micro-controllers sitting around (i have a few PIC's and an ATMEGA168.) First, I am wondering what hard-ware I need to get to connect it up to USB. (I don't think it can just be a direct connection), second what software should I get (mac or windows, or even linux it doesn't matter), and last, for someone horrible in programming, what is a good way to learn, and what language does it require. How do computers work to communicate with these devices?