Just like with everything related to programming: you learn it by doing it.
Some blocks in Minecraft are composed of multiple things. Take for example the furnace: it is a
Block
, it has a
TileEntity
, it has a
Container
and a
Gui
. The
Block
can be rotated in 4 directions and has an on/off state.
So start for example with making a faster furnace. That will cover a lot of stuff for you.
Now I'm not saying the furnace does it in the best way possible, as it isn't. It uses 2
Blocks
while the on/off state could be stored in metadata.
So try to mimic something from vanilla, and then change it. If you have issues, make a thread on the forum and we will help if we can.