Was die Frage nach einem Programmer angeht: nimm einen AVRISP mk II. Der funktioniert garantiert mit dem Studio. Wenn Du erfahrerner bist kannst Du auch andere nehmen, mir wäre das aber die geringe Ersparnis den Ärger nicht wert (ich habe 2 MK II Programmer und ein No Name Teil hier).
Ich kann hier Udo nur zustimmen. Ich selbst verwende den AVRISP mk II mit dem Atmel Studio 6.0 (allerdings nur für die C/C++-Entwicklung). Ist sehr gut in das Atmel-Studio integriert. Direktes Flashen des Controllers und Starten des übersetzten Programms mit einem Maus-Klick (Menüpunkt Debug->Start without Debugging). Auslesen und Setzen der Fuses, Auslesen des Flash aus dem Controller, Löschen des Speichers, usw.
Und wenn du Assembler lernen willst (und zum Debuggen), brauchst du teilweise eigentlich noch nicht einmal einen Controller und einen Programmer, denn du kannst das Programm stattdessen im Simulator des Atmel Studio laufen lassen. Schritt für Schritt oder bis zu einem Breakpoint, du kannst die Prozessor- und I/O-Register anzeigen lassen und setzen, Speicherbereiche anzeigen lassen, usw.