To program an Atmega 168-PU microcontroller, users can utilize free software options like AVR Studio or the Arduino IDE, which provides a user-friendly environment and includes necessary drivers. While programming requires a physical programmer, alternatives like using an Arduino board with a bootloader can simplify the process. Eclipse with the AVR plugin is another option, though it may be more complex and buggy. Hobbyists can also purchase an Atmega with an Arduino bootloader for easier programming, but an AVR programmer is recommended for better reliability. Overall, various free tools and methods exist for programming the Atmega 168-PU effectively.