For open source web work, I know Khan Academy needs help and I believe Resig has recently re-vamped their exercise framework, which is the main place for new contributors.
For closer-to-hardware hacking, I learned by making little games for Game Boy Advance and Atari 2600. The Nintendo DS also works similarly, although the hardware is a little more abstracted.
I really feel the GBA is ideal. It has a good combination of bitmap, sprite, and tile drawing modes, fairly good development tools, and lots of interesting bit twiddling to achieve what you want: http://www.gbadev.org/ You can also pick up transfer cables and a flash cartridge to put it on real hardware, which makes it a fun demo piece.
Atari is all assembly, GBA is mostly C with pieces of assembly inlined here and there.