Controller devices do many tasks, but we can clearly see couple important groups – data processing and communications with a real world. Scott wrote a nice guide for starters where he covers Arduino communication possibilities.
He describes most common communication protocols you may use in Arduino boards. These include I5C, TWI, SPI, USART, LIN, USB and other. When you will want to attach some external chip or display you will probably face one of these, so if you are not familiar with take a look and study each. Arduino software already have all of these libraries ready to use.