Programming a ATmega328P on a breadboard - programmer cannot connect
The 328P has a weak internal pullup on the reset line, but it is recommended by the vendor to add an external pull-up if connecting any external reset circuit. In my experience, the MCU also needs to be powered externally. If you have any other SPI devices on the MOSI or MISO lines then make sure they are disconnected or in tri-state mode before programming. Do not use pull ups/downs on the MOSI/MISO/SCK lines... those are driven lines. Also, please note that the MCU can only be programmed while being held in reset state. If that doesn't work, ensure that your MISO/MOSI/SCK lines are connected properly and not reversed - pretty easy to do on a breadboard. I always use real Atmel AVR ISP Mk II programmers and have no problems. The items I've listed have been the only things I've run into when programming an AVR device. Cheers!