Questions about the arduino bootloader.

Hello, I have a question regarding the Arduino bootloader, as I'm still a little confused even after reading a bit about it.

So it's to my understanding that the bootloader is used so that you don't need external hardware to upload code to the chip. I've read that it is not necessary in all circumstances to have the bootloader when uploading Arduino code, is this true?

I know in the past I have programmed external atmega328 chips on a breadboard by attaching it to an arduino uno's RX, TX, ground, 5V, and reset pins (Oh, and the arduino had its DIP socket empty). To be honest, I don't remember if this chip had the bootloader on it or not. For this method of programming is the bootloader required?

I have also been looking at these serial USB programmers:

If I were to use one of these to program the chip, is a bootloader required?

Thanks in advance to anybody who has input!

Using TX RX, you need a boot loader.