Atmel AVR Microkontrollerz
notes on getting started with atmel's avr 8 bit microcontrollers
here are some homemakeable hardware to program the uCs. I've had best luck making them myself. The cheap commercial one doesn't seem available any more for environmental reasons, others are kind of expensive.
sp12 probably the simplest programmer possible, uses a paralel port. Software for use with this programmer for linux and windows is on the site above. Here are a couple of these I made.
serial in-circuit programmer This one is a little more complex. It uses an avr microcontroller to decode serial signals and program a slave microcontroller, so to build it you have to have a way to program a microcontroller already (bootstrap). I built one of the parallell programmers above to program the micro for use on this programmer so I could use it on my powerbook with a keyspan serial converter, which has drivers for mac and linux. I'm using this with the programming software uisp.
avr-libc - c library
avr-gcc,avr-gdb,avr-binutils - c compiler/debugger/toolchain
uisp - programmer
avrasm - assembler (nicer for hand coding assembly than the gnu as)
I like these devices because they are cheap, powerful, well-designed, and tons of support through good free software availability which can be compiled for any unix (There are also free tools for windows) and a huge userbase. Poking around the web reveals tons of projects and howtos.