For anyone coming on to ask about programming for the NES, here is a sorted list of beginning tutorials written on this forum by bunnyboy.
Nerdy Nights - Week 0 (Intro)
Nerdy Nights - Week 1 (Number Systems and Core Programming Ideas)
Nerdy Nights - Week 2 (NES Architecture Overview)
Nerdy Nights - Week 3 (6502 ASM, First App)
Nerdy Nights - Week 4 (Color Palettes, Sprites, Second App)
Nerdy Nights - Week 5 (Multiple Sprites, Reading Controllers, More Instructions)
Nerdy Nights - Week 6 (Backgrounds)
Nerdy Nights - Week 7 (Subroutines, Game Layout, Starting Pong)
Nerdy Nights - Week 8 (16 bit math, pointers, nested loops)
Nerdy Nights - Week 9 (Numbers, Bin -> Dec)
Advanced Nerdy Nights #1 (CHR Bank Switching)
Advanced Nerdy Nights #2 (MMC1 CHR and PRG Bank switching, WRAM + Battery)
Advanced Nerdy Nights #3 (Horizontal Background Scrolling)
Advanced Nerdy Nights #4 (Sprite 0 Hit for a Status Bar)
Nerdy Nights - Hacking 1 (Hex Editing)
Nerdy Nights - Sound 0 (Intro)
Nerdy Nights - Sound 1 (APU Overview and Square 1 Basics)
Nerdy Nights - Sound 2 (Square 2 and Triangle Basics)
Nerdy Nights - Sound 3 (Periods and Look-up Tables)
Nerdy Nights - Sound 4 (Sound Engine Basics)
Nerdy Nights - Sound 5 (Sound Data, Pointer Tables, Headers)
Nerdy Nights - Sound 6 (Tempo, Note Lengths, Buffering and Rests)
Nerdy Nights - Sound 7 (Volume Envelopes)
Nerdy Nights - Sound 8 (Opcodes and Looping)
Nerdy Nights - Sound 9 (Finite Loops, Key Changes, Chord Progressions))
Nerdy Nights - Sound 10 (Simple Drums)
Since there have been alot of questions lately about how to program for the NES, I recommend this thread be stickied and updated each time a new tut gets posted here. Have fun, and be sure to thank everyone who contributes for being awesome : )