#programming  Tal vez te encuentres liderando un equipos de desarrolladores, eres un tester que quiere automatizar o simplemente quieres aprender a programar.

Sea cual sea tu caso, decidiste aprender a programar y ahora te preguntas ¿por dónde empiezo?.

Los pasos que te voy a describir a continuación son los que he utilizado cuando me ha tocado enseñarle a alguien a programar. También te servirá a futuro, cuando decidas aprender un nuevo lenguaje de programación.
Considera que los pasos que describo a continuación son para que aprendas a programar, no a desarrollar una aplicación.

Programar no es lo mismo que desarrollar una aplicación. La segunda requiere aprender más cosas y por ende lleva más tiempo.

Ahora sí, revisemos estos 5 pasos para aprender a programar:
Paso 1: Define un objetivo claro

Decir que quieres programar sin tener un objetivo en mente es como decir que quieres aprender a tocar un instrumento musical sin saber qué canción te gustaría interpretar o al menos qué tipo de música.

Te doy algunos ejemplos de lo que podría ser un objetivo: entender qué hace un determinado código, automatizar casos de prueba o desarrollar una aplicación completa.
Tener un objetivo claro te ayudará a saber hasta qué punto profundizar en conocimientos.

Te recomiendo que definas objetivos que puedas alcanzar en corto plazo. Idealmente con pequeños logros que te motiven.
Paso 2: Selecciona un lenguaje de programación

Como lo mencioné antes, este post está orientado a aprender a programar y no a desarrollar aplicaciones.

Por lo tanto, te recomiendo empezar con uno de los dos lenguajes que voy a mencionar.

En primer lugar, te recomiendo empezar con Python. Es simple, no es tan estricto en la sintaxis, sirve para el desarrollo de aplicaciones tanto de backend como de frontend y el mercado lo está solicitando cada vez más.
Al final de este post, te dejaré algunos recursos para aprender Python por si te interesa.

En segundo lugar, te recomiendo Java. Es más difícil entrarle al principio, pero te servirá a futuro porque el mercado lo sigue pidiendo.

Ambos lenguajes se pueden ejecutar casi en cualquier sistema operativo, lo cual es una gran ventaja.
Paso 3: Comienza con los fundamentos

Sin importar el lenguaje que hayas seleccionado, te recomiendo aprender los siguientes fundamentos:

    Variables y Constantes: Para saber cómo se guardan temporalmente los datos que uses al momento en que se ejecuta tu programa.
Operadores y Expresiones: Para manipular los datos en tu programa, crear fórmulas matemáticas o armar oraciones de texto que podrás mostrar como mensajes.
Flujos de Control: Para definir el comportamiento de tu programa. Hay varios tipos de comandos para hacer esto. Los más básicos son:

    Condicionales: Con ellos le dices a tu programa qué debe hacer en determinado caso, por ejemplo: “si se da X condición haz algo sino haz otra cosa”.
    Bucles: Te servirá para repetir una serie de instrucciones hasta que se cumpla una determinada condición.

Estructura de Datos: A veces las variables no son suficientes y necesitarás manipular un grupo de datos relacionados. Para eso existen las estructuras de datos. La más utilizada son los arreglos.
    Funciones o procedimientos: Te permitirá crear un mini-programa y poder utilizarlos dentro de un programa principal, cuando lo necesites.

Con estos fundamentos tienes bastante para divertirte, pero se pone más interesante si aprendes sobre los siguientes temas:

    Programación Orientada a Objetos: Es una forma especial de organizar tu código que facilita la reutilización de funcionalidades en toda una aplicación. Se usa muchísimo actualmente, por lo que se convierte en esencial para todo futuro desarrollador.
    Gestión de Archivos: Me refiero a que tu programa sea capaz de alimentarse de datos externos (como un archivo de texto) y generar información que sea utilizada, a su vez, por otros programas.
Cuando estés aprendiendo cada uno de estos fundamentos, por ejemplo “cómo usar un WHILE”, muy probablemente te preguntes ¿y para qué me sirve este determinado comando?

Te ayudará saber que aprender estos fundamentos es como aprender a usar un martillo, un destornillador, una lija, entre otras herramientas. Por separado tal vez no tenga mucho sentido, pero lo tendrá cuando vengan los desafíos a resolver como programador.

Esto último se relaciona con el siguiente paso.
Paso 4: Aplica lo aprendido en pequeños desafíos

Ahora que tienes varias herramientas a la mano, llegó el momento de ponerlos en práctica ¿y cómo puedes hacerlo? con pequeños e interesantes desafíos.
Te doy algunas ideas de pequeños programas que puedes realizar para poner en práctica los fundamentos:

    Juego de adivinanza de un número.
    Juego del ahorcado.
    Contador de palabras de un texto.
    Conversor de unidades (de galones a litros o de cm a metros por ejemplo).

En mi experiencia, hacer pequeños juegos es muy didáctico y divertido. Lo mejor es que no se necesita tener una interfaz gráfica para hacerlo.

Este último punto es muy importante, durante esta fase de aprendizaje, te recomiendo que sólo hagas programas que se ejecuten por la consola de comandos del sistema operativo de tu computador.

Hacer programas que requieran el manejo de interfaz gráfica es muy divertido, pero cuando se está aprendiendo desde cero, es mejor dejarlo para una fase posterior. Para cuando te sientas más seguro(a) con los fundamentos.
Normalmente, hacer uso de una interfaz gráfica requiere el manejo de librerías adicionales y muchas horas de programación.
Paso 5: Replantea tus objetivos

Los primeros 4 pasos te llevará al menos 3 meses (tal vez menos) dependiendo de la energía que le imprimas al aprendizaje.

Pero una vez que hayas aprendido los fundamentos, llegará el momento de decidir si estás conforme con tu aventura o ahondar en tus conocimientos de programación.

Sólo en caso de que decidas hacer lo último y desees entonces desarrollar aplicaciones, te recomiendo:

    Aprender sobre las buenas prácticas de programación: Si vas a desarrollar aplicaciones ¿por qué no hacerlo con calidad?. Me refiero a programar con la mentalidad de que tu código sea eficiente, fácil de mantener y de entender por otras personas.
    Experimentar con otro lenguaje: No te quedes sólo con el lenguaje con el que aprendiste. Abre tu mente y anímate a jugar con uno diferente, incluso más adaptado al tipo de software que vayas a desarrollar.

Recomendaciones finales

La única forma de aprender a programar es programando, es decir, invirtiendo horas frente al computador echando código.

Investiga y practica mucho, no hay otro secreto que la perseverancia.

Te advierto que esto de la programación hace que uno se frustre muchas veces, es normal. Así que si sientes que no eres capaz de resolver un problema, te recomiendo dejarlo para el día siguiente y consultarlo con la almohada. Siempre me ha funcionado.
Te deseo ¡mucho éxito! y que programes lo más pronto posible tu primer “Hello World”.
Recursos para aprender a programar con Python

Te recomiendo estas documentaciones para aprender a programar con Python desde cero:

    Invent with Python (documentación en español, disponible en la web o PDF con juegos didácticos)
    A Byte of Python (tutorial para aprender Python en inglés, disponible en la web)
Publicado por: Frank Luzón 09/06/2020
Ingeniero de Sistemas graduado en Universidad Metropolitana de Caracas, Venezuela 1998. Erradicado en Chile desde 2014. Actualmente trabajo como Especialista SQA para TSOFT Chile. Comparto conocimientos sobre desarrollo de software.