No estoy seguro de sentirme calificado para dar una respuesta sobre el idioma de inicio; Estoy tan alejado de cuando comencé a aprender programación que no estoy seguro de qué hace que un idioma en particular sea bueno o malo para aprender. No estoy completamente convencido de que haya una respuesta correcta / incorrecta a esto; puede muy bien ser algo donde lo que es bueno para la persona A sea malo para la persona B, y viceversa.
Sin embargo, puedo abordar cómo creo que deberías aprender a programar. Primero que todo, debes pensar de esa manera: estoy aprendiendo a programar, y no estoy aprendiendo a programar en el lenguaje X. Entonces, la primera pregunta es: ¿qué es la programación?
En su nivel más básico, la programación es el proceso de creación y entrega de una solución de software a un problema o para abordar una oportunidad. Para poder hacer esto, necesita comenzar por comprender el problema o la oportunidad. A partir de ese entendimiento, puede desarrollar una idea sobre cómo abordar ese problema u oportunidad. Luego, implementará su solución, la probará y la depurará. Finalmente, lo entregarás a sus usuarios.
Una cosa importante acerca de ese proceso es que un lenguaje de programación solo está directamente involucrado en la parte donde está implementando, probando y depurando su solución. Puede restringir o ayudarlo en su diseño y en la entrega del sistema.
Una segunda cosa es que el proceso no es lineal. No siempre se pasa del análisis, al diseño, a la implementación, a las pruebas y la depuración, y finalmente a la entrega. En cualquier momento, puede descubrir una razón para volver a una etapa anterior. Usted determina que su comprensión del problema fue insuficiente, puede descubrir que su diseño no aborda completamente el problema o es completamente inapropiado, su implementación puede resultar defectuosa, puede ser que sus usuarios encuentren un error.
La razón por la que describo todo esto es que la forma en que sugiero aprender a programar es trabajar en un proyecto que involucre todo ese proceso. Con demasiada frecuencia, parece que las personas se centran en las herramientas de programación: lenguajes, estructuras de datos, algoritmos, etc., y no abordan el aprendizaje sobre cómo usar esas cosas para crear un producto.
Para elegir un proyecto, debe considerar sus intereses y su nivel de habilidad. Comience por averiguar qué tipo de cosas le gustaría hacer. ¿Son interesantes los juegos? ¿Quieres crear una aplicación móvil útil de algún tipo? ¿Quieres construir un sitio web? ¿Te gustaría una calculadora que hace algunas funciones matemáticas menos estándar? ¿Quiere hacer algo que pueda usar para catalogar los libros en su hogar? Mire sus propios intereses y descubra qué le gustaría tratar de hacer.
Ahora, pasamos al nivel de habilidad. Obviamente, ya que estás empezando, eres bastante limitado. Entonces, no quieres hacer algo realmente complicado o involucrado. Una posibilidad es considerar comenzar con un proyecto pequeño, uno que no implique muchas funciones, que pueda comprender rápidamente. Otra posibilidad es crear un conjunto de características inicial, pequeño y simple que pueda formar parte de un proyecto más grande. Por ejemplo, si desea crear un programa de juego de ajedrez, puede comenzar con una visualización muy minimalista de una única posición de juego estática.