For relatively small (less number of pins than ATmega328) projects, ATtiny series, ATtiny45 or Attiny85 are good choice in terms of its physical size (8-DIP or 8-SOIC) and low power consumption.
There are many ways to program it. One of the popular device is USBtinyISP and DASA. Both of them work very well with WinAVR (AVRdude).
I’d like to share how I program ATtiny85 with JeonLab mini 1.3. The idea has been adapted from High-Low Tech Group and provideyourown.com. One missing note from High-Low Tech Group is that you need to add a 110-120 ohm resistor between VCC and Reset pins of JeonLab mini (or Arduino) to prevent Auto reset on serial connection as explained in here and here.
You will need a JeonLab mini or Arduino or any Arduino compatible board with FTDI USB interface. Here is an example with JeonLab mini v1.3.
For more detail: ATtiny programmer using Arduino ISP