For programming the AVR microcontrollers, Atmel has provided special software that can be downloaded from the Atmel website. Software is AVRStudio. This software uses assembly language as the language of instrumentality. AVRStudio addition, there are some third party software that can be used to create programs on the AVR. These third-party software using high level programming language like C, Java, or Basic. To make removal from the computer into a chip, can be used several ways such as using JTAG cable or using artificial Atmel STK.
However, you also can use the schematic circuit above to make a downloader ATMega microcontrollers based USB ports. Here is my USB downloader which I successfully created. Imade the USB ASP Downloader based ATMega8. hopefully can help you.