If you cannot afford to buy a USB programmer for AVR, don’t worry, you can make one by yourself. This programmer uses a Atmega8 microcontroller with a few external passive components. The good thing is you don’t need any USB controller because it is implemented in the firmware inside Atmega8. Yes, you are right, you need an AVR programmer once to load the firmware inside Atmega8. You figure out how you gonna manage that.
This programmer has been tested under Windows, Mac OS X, and Linux and worked well. It can program a chip at speed up to 5Kbytes/sec. The firmware for Atmega8 and necessary drivers for host computer are available for free.
For more detail: Open Source USB AVR Programmer for Students and Hobbyists using Atmega8 microcontroller