How to program an ATMega328 using a Serial Port without using programmers such as USBasp
If you can afford buying an Arduino UNO board (about 20EUR, original, but you may find compatible ones which are cheaper), you can use it to program another Atmel MCU, in particular an ATMega328. See this article on Arduino as ICSP and this one (programming breadboarded MCUs with an Arduino).

I've personally done that and it is seamless (Arduino UNO programming a breadboarded ATMega328P, exactly as shown in that article). BTW, I was also able to burn a bootloader on that chip, since I bought some ATMega328 chips with no preprogrammed bootloader.