Salut,
Je rejoins les avis précédents, il n’y a pas de "must-learn" pour débuter (ou même après). En général, tu vas regarder le langage en fonction des besoins (et de différentes contraintes, comme par exemple le temps). Néanmoins, les langages que tu retrouves très souvent en tête de liste sur les sondages sont le Java, C(++), C#, Python, PHP et autres langages bien connus du genre.
Il n’y a pas de langage à tout faire, ou pas encore, bien qu’il existe, si mes souvenirs sont bons, des langages qui peuvent ensuite être automatiquement traduits vers d’autres langages. Donc avec un même code, tu peux le transformer dans différents langages.
Dans le même style, il existe des technologies permettant de viser plusieurs plateformes mobiles avec un seul code. Par exemple Xamarin permet de dev pour plusieurs plateformes avec le langage C#. Cordava permet de faire le même style avec du HTML, CSS, JS.
Bref, il vaut mieux que tu es une idée assez précise de tes besoins et à partir de là tu pourras t’orienter dans le choix du langage et des technologies associées. Sinon tu risques d’apprendre un langage "pour rien", c’est-à-dire que à peine regardé, tu vas oublier ce que tu as vu et tu ne verras pas comme il faut les notions derrière du coup.
EDIT : vu tes besoins, j’aurais tendance à t’orienter vers le Java, C/C++ ou C# selon la plateforme. Tu pourras, entre autres, faire du client/serveur pour le contrôle distance. Le C/C++, si c’est pas codé avec les pieds peut-être intéressant si tu as besoin d’un bon niveau de rapidité et une gestion fine de la mémoire, sinon mieux vaut opter pour Java qui fera "moins peur" pour débuter (c’est pas une raison pour coder avec les pieds hein). C# (en plus de C++) est un langage très performant (surtout avec .NET) si tu dois t’orienter sur du Windows. Et en plus y a Xamarin si tu veux pas apprendre 36 langages pour faire du dev mobile par la suite… Bref, le choix est large