¿Que es mas aconsejable aprender primero?Un lenguaje está definiddo y sujeto al paradigma de programación que éste soporta (y practicamente todos los lenguajes de hoy en día son
multi-paradigm, están diseñados para soportar múltiples paradigmas), así que lo correcto sería empezar por aprender acerca de los distintos paradigmas de programación,
aunque por otro lado, considero que no debes darle más importancia de la necesaría a ese tema, ya que por una parte aunque hayas leido sobre los conceptos, hasta que no llegues a la práctica no se puede apreciar y entender claramente las diferencias si nunca has utilizado un lenguaje de programación, en ese caso el entendimiento no se consigue leyendo conceptos, se consigue descubriendo las diferencias en la práctica, y segundo, porque hoy en dia los más populares y usados lenguajes son multi-paradigma (exceptuando algunos pocos) y el paradigma que predomina generalmente y mundialmente en lo referente al desarrollo de aplicaciones me atrevería a decir que es el POO/OOP (Programación Orientada a Objetos/Object Oriented Programming), sin haber echo una comparación estadística sobre ello.
¿Por qué?En mi opinión, porque primero se debe aprender y conocer el/los concepto(s), y luego decidir la herramienta para llevar a cabo el desarrollo sujeto a ese estilo específico de programación, no se debería hacer al revés, ya que podrías cometer una elección erronea del lenguaje que vas a utilizar y luego arrepentirte para volver a empezar desde Cero.
¿Que lenguaje escojer?C#, C++, o VB.Net, cualquiera de ellos (entre muchos otros) serían una elección perfecta, yo solo nombré mis lenguajes favoritos (y no en ese orden), pero realmente la elección de un lenguaje debe depender de las necesidades y metas que tengas a la hora de programar, pues no es lo mismo desarrollar una simplista aplicación gráfica para Windows con un par de botones para llevar a cabo una tarea cotidiana, que una compleja aplicación Web son soporte para la manipulación de bases de datos, o un Driver para un dispositivo de Hardware (por decir algo),
así como también debería depender de la plataforma para la que pienses programar, y sin olvidarnos de la importancia que se le debe dar también a la comodidad que te transmitan algunos factores distintivos del lenguaje, como por ejemplo su sintaxis, sus capacidades/límites, y su facilidad de uso en tu entorno.
⇲ Aquí puedes ver una tabla comparativa de los paradigmas que soporta cada lenguaje:
Comparison of multi-paradigm programming languages¿Conclusión?Mi conclusión sería que, debes aprender sobre los distintos paradigmas de programación, pero no debes basar la elección del lenguaje unicamente en ese aspecto, ya que hay otros aspectos que ya he comentado los cuales son igual o más importantes, al fin y al cabo una vez elijes un lenguaje tienes que adaptarte a su modo de empleo, sus reglas.
PD: Respecto a estas cuestiones en general, porfavor, utiliza el buscador del foro, este tema de orientación sobre lenguajes de programación se ha preguntado y respondido cientos de veces en el foro.
Saludos