Yo no soy ningún especialista porque no tendré mi placa arduino hasta dentro de un mes, pero por lo que he estado leyendo es un lenguaje propio, que sale de C++ o de java. Eso lo hace muy parecido a estos dos lenguajes pero no es lo mismo que estos lenguajes es mucho más facil.
Los microcontroladores para los distintos dispositivos que puedes conectar a arduino ya están programados. Si tienes conocimientos avanzados de programación puedes toquetearlos, pero sinó, no hace falta. La verdad es que por lo que he visto no es nada complicado y aunque no tengas nociones de programación te puedes defender muy bien.
Si quieres mandame un mp y te paso el manual en español que viene con arduino para que veas como es el lenguaje.