I know what you're thinking - 'Not all music contains drums?' - and you're right. However, most music does. FACT. So you can't cancel out having this as a key skill. It is something you must learn how to master.
So let me explain what it is. Drum programming, also known as sequencing, is basically composing with drums. It's where you piece together all your percussive elements to create rhythmical loops/sequences to accompany your music.
The one thing that is most important when programming drums is groove. If your drums aren't making you want to nod your head or dance your ass off then you're not doing it right, assuming this is your main goal of course. (Why wouldn't it be!?)
In order to achieve a solid groove you need to be taking note of two elements: Drums & Bass. When these two are rhythmically flowing alongside each other nicely.... there is your groove. One of the most simple grooves is having the Kick on 1,2,3,4 (snare being on 2 & 4), then having the bass (+) on the off-beat something like 1 + 2 + 3 + 4.
That being said, that is the most simple groove out there. This is where really knowing your sh*t when programming drums comes into play as you'll need to start adding in other elements such as Hi-Hats, Toms, Shakers, Percussion etc. So as you can start to understand, it's all about building and layering different rhythms on top of one another.
Creating great drum sequences doesn't just come from building up great patterns, you also have to think about the samples you're using just like I mentioned in this blog post.
Over the years I have wasted a lot of money on sample packs, so I feel confident enough to say - I know a good sample pack when I hear one. So to help you get started here are some links to some great sample packs I have personally used:
If you're looking for some great free sample packs then try these suppliers: