Hola,
Bueno para comenzar debes tener en cuenta que para cada sistema operativo tienes un lenguaje de programación, a menos que utilices entornos como Marmalade que te permiten programar una sola vez y exportarlo a los diferentes sistemas.
Acá la url a marmalade:
https://www.madewithmarmalade.com/Lo recomendable sería eso, claro que es licenciado. Si no tienes el presupuesto para pagar por ese SDK, puedes usar los lenguajes nativos de como dije antes. En el caso de Android usarías JAVA, el entorno de desarrollo Eclipse tiene un plugin para desarrollar aplicaciones de Android es bastante sencillo, el mismo Eclipse tiene un plugin para Blackberry, aunque para desarrollar en balckberry tienes que tener una firma digital la cual tienes que pagarla ya que de lo contrario al publicar o crear el paquete de la aplicación la necesitas, claro si usas ciertas librerias como la conexión a internet (obvio que la usarías). Para Windows Phone y RT usarías Visual Studio con el SDK respectivo, allí programarías en c# o VB .net además deberás conocer de. .xaml que vendría siendo algo como el lenguaje de "front end" de las aplicaciones .net actualmente (es sumamente sencillo en realidad), también si conoces Silverlight o has desarrollado en el te ayudaría muchísimo, cabe acotar que eso te sirve para Windows RT(tabletas) también. Por último tenemos IOS el cuál tiene una herramienta nativa de Apple llamada Xcode, la cual te sirve tanto para Iphone como Ipad ya que ambas corren en IOS.
Todo lo que dije antes te sirve para aplicaciones nativas que es lo que estas preguntando. Pero como estás comenzando te recomendaría que pruebes primero con aplicaciones web a ver que tal te va, ya que de esa forma se podrían ver en todos los dispositivos reduciendo el esfuerzo, en ese caso puedes usar: jqtouch, jquery mobil, son los que se me ocurren, aunque también podrías usar html optimizado para web, claro corriendo con un lenguaje que te parezca, jsp, aspx, php, etc..
Espero te ayude un poco.
See us!..