Las interfaces permiten la conexión e interacción entre el hardware, software y usuario. Existen diferentes tipos de interfaces clasificadas según su transmisión de datos (serie o paralela) y su función (dispositivos de entrada como teclados o de salida como monitores). La programación de bajo nivel con lenguajes de máquina y ensamblador permiten un control directo del hardware pero tienen poca portabilidad. Las interfaces se diseñan considerando la aplicación y ergonomía del usuario.