I dont know why are you using Atmega16u2 and why you need a AVR programmer to program self made arduino.
Its very easy to build arduino on breadboard, you just need Atmega328 IC, a crystal, few capacitors and resistors.
First you have to Burn Arduino boot loader into Atmega328 IC and then make the complete circuitry no breadboard or perfboard.
Then finally to program the arduino use USB to serial FTDI module, you will be able to program it with ARduino IDE same like Arduino.
THere are many online tutorials online to build it, the complete Arduino on breadboard will look like this
Image source is [<LINK_TEXT text=“https://circuitdigest.com/microcontroll … rduino-ide”>https://circuitdigest.com/microcontroller-projects/how-to-burn-bootloader-in-atmega328p-and-program-using-arduino-ide</LINK_TEXT>, also find complete explanation there](How to Burn Arduino Bootloader in ATmega328 IC and Program it using Arduino IDE)