What is your question relating to the chip? It is used in the Arduino UNO and thus is integral to the Arduino platform - just use the Arduino IDE with the appropriate platform selected. Or program it directly using ISP and an oscillator. There are also numerous examples on the internet describing how to do this. This processor is my “go-to” chip when developing new circuitry as it is so easy to use.
All you need to program a ATMEGA328P in an Arduino UNO is a computer (Windows, Linux or Mac) with a USB port. Install the free IDE and plug in the USB-Cable and within minutes you can have the example “blink” program uploaded and can spend endless hours watching the little green LED on the board turn on and off, secure in the knowledge that you control it.
Or, if you want to program the ATMEGA328P directly, you can either purchase a cheap USB-ISP or use an Arduino UNO or other Arduino to program it.
The ATmega328 can be programmed in machine language or C using free development software from Microchip, but you will need an ISP programmer. The chip can also be programmed in C/C++ if you buy an Arduino board.