¿Cómo aprender a programar?
> local_ai_tl_dr()
> Aprender a programar implica investigación y práctica, así que comienza con proyectos personales y busca conocimientos en línea. La frustración inicial es común, pero la clave es encontrar un enfoque personalizado y disfrutar del proceso de aprendizaje. ¡Comienza a escribir código y no dudes en hacer preguntas!
¿Que es programar?
Investigación
Programar para mi es estar todo el tiempo investigando.
Y creo que esta es la habilidad más importante de empezar a programar: saber investigar y saber que vas a estar todo el tiempo investigando.
Es lo que más me costo entender porque pensaba que un programador se sentaba y programaba, que ya sabía todo lo que tenía que hacer.
Y bueno, con el tiempo y la experiencia es un poco así a veces... pero la mayoría de las veces no, porque intentamos hacer algo nuevo, porque nuestra memoria tiende a fallar, etc.
Frustración
Empezar a programar para mi fue un camino muy frustrante. Porque decís, dale, en serio porque no le puse un “;” el programa entero deja de funcionar? y porque no me dice exactamente donde es que rompe así lo arreglo? O PORQUE NO LO ARREGLA SOLO SI TANTO SABE?!
Y si, es cómo la escritura o una errata en un libro, te puede cambiar el significado de la oración por completo.
Pero creo que para no frustrarse tanto o frustrarse pero que eso no signifique dejar de intentar, hay que ver los errores que te tira la maquina como un error de comunicación, nada más. Vos le estas queriendo decir algo y la maquina no entiende, no pasa nada, se lo decís de otra forma, en algún momento lo va a entender.
También hay formas para que la maquina “hable de más” cuando cometemos algún error, esto es algo que también podemos usar (Investigar verbose, logging y bloques try, catch / try, except, finally)
Resolver problemas
Para mi alguien que sabe programar es alguien que puede pensar los problemas desde otras perspectivas, alguien que puede analizar cual es el problema a resolver y pensar una solución. Después, pasar eso a código no es tan complejo. Ya hoy en día si sabes plantear problema + solución, una AI te lo puede resolver fácilmente en el lenguaje que se lo pidas.
Igual si, necesitas saber al menos 1 lenguaje de programación, porque si no, solo tenes todas las dotes para ser un programador pero sos un analista. De todas formas, una vez que aprendes a programar en un lenguaje, te manejas más o menos con el resto. Es cómo saber un lenguaje tipo inglés, vos sabes decir “Hola” y cuando quieras saludar en inglés, vas y ves como se dice “Hola” en inglés y vas y decís “Hi” o viceversa. Así mismo, existe el mismo problema, hay cosas que solo tienen sentido en inglés y que no tienen una traducción literal en español, pero hay una forma de decirlas, tipo: This type of music is not my cup of tea, que no se traduce literalmente Este tipo de música no es mi taza de té, si no que es algo tipo Este tipo de música no es mi estilo. Claro, no es lo mismo que si lo supieras hablar pero te manejas.
English
Hablando de inglés, esto es importante, a la larga o a la corta o a la mediana, vas a tener que aprender inglés. La mayoría de los lenguajes de programación si no todos, están pensados desde el inglés y usan muchas palabras en inglés.
Cómo empezar tons?
Primero por lo básico: Saber investigar, saber inglés, manejar la frustración y resolver problemas.
Investigación
Esto de la investigación es sencillo y aplicable a cualquier aspecto no solo a la programación. Empezas a leer una documentación, un vídeo y no entendes una palabra, vas y lo buscas. Si cuando lo encontras se hace referencia a algo que no entendes, vas y lo buscas y así recursivamente.
El loop sería algo así:
Donde buscar, bueno acá esta la papa. 🥔
#google me parece una cagada porque contrachrome.
Sin embargo su algoritmo de búsqueda nos puede servir, por lo tanto hagamos uso de él con startpage.com, un motor de busqueda que usa la “potencia” de google pero con privacidad. Otro buscador que recomiendo es duckduckgo.com.
Navegar en internet en estos tiempos es tortuoso porque tenes popups, anuncios, cookies y muchas cosas más que te distraen de lo que queres hacer. Por eso para mi en esta parte de investigación es crucial tener instalada la extensión de uBlock Origin, y si en el ambiente donde estas no hay mucha iluminación o soles usar dark theme, podes usar dark reader.
Si vas a investigar en youtube recomiendo usar DeArrow y SponsorBlock.
Mi idea con todas estas herramientas, que ya a esta altura son calidad de vida, por cierto: de nada, es que puedas avanzar con la menor cantidad de trabas posibles. Por lo tanto si instalar o usar algunas de estar herramientas te esta trabando, no las uses y seguí avanzando.
Inglés
Te vas a cruzar con muchas cosas en inglés y para traducir cosas a tu idioma, lo mejor para mi es (además de ya saber inglés), deepl.com, un traductor que hace uso de AI (desde antes de la salida de chatgpt). La otra es saber inglés. Al menos lo que a mi me funciona es leer, ver series ó películas y consumir contenido en inglés.
Frustración
Para manejar la frustración acá cada cual haga lo que pueda. Yo lo que hago es: 1. Tomar distancia: irme a dar una vuelta, mirar los pájaros, escuchar música, hacer otra cosa. 2. Buscar el problema: Que no te de vergüenza o este sentimiento de Yo ya debería saber esto o culpa tener que ir y buscar el problema o la solución por que no te sale sola; Copia y pega el error que te tiro el programa en el buscador que quieras y chau. 3. Buscar ayuda: Si posta te bloqueas mucho y tu problema no esta en ningún foro o web que encuentres, ármate una cuenta en uno y postea tu problema. Puede ser que a nadie le haya pasado lo que te esta pasando, probablemente a otra gente le vaya a pasar y seguro alguien puede ayudarte a resolverlo; Por lo tanto, es una buena idea pedir ayuda.
Resolver problemas / Cómo empezar
Y bueno, buscando, investigando, haciendo uso de los pasos anteriores:
* ¿Cuales son los lenguajes de programación que existen?
* ¿Con que lenguaje de programación puedo hacer {esa cosa que queres hacer}?
* ¿Que lenguaje de programación aprender en 2025? arre
Si tu interés va por el lado de linux y usar la terminal:
- ¿Que es linux?
- ¿Cómo usar linux?
- ¿Que es una terminal de comandos?
- ¿Que comandos se pueden ejecutar en linux?
Esta bueno que vayas buscando y viendo que onda. En el mientras tanto, voy a recomendar el lugar en donde empece a programar: freecodecamp.org, que lo encontré buscando. No te cobran y tienen varios cursos/certificaciones copadas.
Para mi una buena forma de empezar fue con HTML y CSS con la certificación que tienen de Responsive Web Design Certification (Todo en English, no se si you understand me)
Porque diseño web? Para mi es más fácil porque podes ver el output de tu código en tiempo real.
A todo esto, hay gente que dice que HTML, CSS son lenguajes de marcado, no lenguajes de programación. Que se vayan todos a lavar el orto. Con respeto.
Igual podes arrancar por el que quieras, yo arranque con ese, después me fui al de Scientific Computing With Python y por un tiempo me maneje con esto, Python, HTML y CSS.
Lo importante es que hagas lo que te interese o lo que te llame la atención. Si el diseño web te importa 0 y vos lo que queres es hacer una aplicación en Android, entonces anda y busca como programar una aplicación en Android.
La mejor forma de aprender a programar es programando, equivocándote y haciendo una herramienta / aplicación o juego que te entusiasme.
Esto último lo aprendi de s4vitar, un hacker que ahora se dedica a dar cursos y que se yo, al chabon le preguntan como aprender Bash (Born Again SHell, la terminal de comandos de linux) y el tipo dice que la mejor forma de aprender es hacer una herramienta, ponerse un proyecto y hacerlo. El dice una cosa así: Como hago una herramienta que detecte cuando se esta realizando una conexión de tipo reverse shell a mi maquina, matar esa conexión, bloquear la ip en mi firewall, enviar una notificación a mi teléfono y en mi pc?
Y bueno empezar desde cero buscando:
- ¿Qué es una reverse shell?
- ¿Cómo se ve el proceso de una reverse shell?
- ¿Cómo matar un proceso?
- ¿Qué es un firewall?
- ¿Qué es una ip?
- ¿Cómo bloquear una ip en mi firewall?
Bueno, se entiende, no? Ir buscando desde lo más básico hasta lo más complejo. Desglosar el problema en partes más chicas e ir resolviendo las partes y cuando te queres dar cuenta resolviste todo.
Por último dejo algunas creadoras de contenido relacionado al mundo de la programación, administración de sistemas y ciber-seguridad:
Hector De León Andre de love code linux s4vitar (Sobre todo cuando resuelve maquinas en HTB y los videos viejos de aprender a programar en bash) La chica de sistemas tierra de hackers CodinEric ZK ciberseguridad
Las cosas que digo acá es probablemente un gran remix de toda esta gente de donde aprendí y aprendo