Underc0de - La Casa de los Informáticos

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: Max.09 en Septiembre 06, 2025, 07:51:37 PM

Título: Quiero empezar a programar. (Duda)
Publicado por: Max.09 en Septiembre 06, 2025, 07:51:37 PM
Quiero empezar a programar, estudio adm de empresas, pero siento mucha pasión por los videojuegos, por los sistemas y por  la automátizacion.

Cómo puedo hacer para empezar de forma autodidacta.
Consejos básicos?
Dónde puedo sacar información?
Cursos gratis introductorios dónde puedo encontrar?

Título: Re:Quiero empezar a programar. (Duda)
Publicado por: cachorrotrenque en Septiembre 07, 2025, 11:47:19 AM
Hola Max, como todo al principio es bastante pesado y "aburrido" porque hay que incorporar los conocimientos que hacen de base a lo que es programación. Te paso lo que a mi criterio son fundamentales en la licenciatura que estudié:
- Lógica Simbólica: Sirve como la base mental para programar. Te entrena a pensar en términos de proposiciones, condiciones y consecuencias, lo mismo que hacés cuando armás expresiones booleanas en cualquier lenguaje. Te obliga a ser preciso (si A entonces B, pero no al revés), a detectar contradicciones y a estructurar razonamientos que después se traducen en algoritmos.
- Programación lógica: Es la materia que te mete de lleno en un paradigma distinto al típico imperativo. En lugar de decirle a la máquina cómo hacer las cosas paso a paso, le decís qué condiciones tienen que cumplirse y el motor lógico se encarga de resolverlo. Esto te abre la cabeza para entender que hay muchas formas de programar, y te da herramientas útiles para problemas de búsqueda, inferencia y validación de reglas (cosas que se ven en IA, bases de datos, reglas de negocio). Aprendés a pensar en términos de hechos y reglas, algo que después se traduce en consultas SQL complejas o en motores de inferencia.
- Programación orientada a objetos: Es la base de casi todo software grande que vas a ver en la vida real. Te enseña a modelar el mundo en términos de objetos con atributos y comportamientos, a organizar el código en clases, a reutilizarlo con herencia y a mantenerlo manejable con encapsulación. Además, muchos lenguajes modernos (Java, C#, Python, etc.) están fuertemente orientados a objetos, así que dominar este enfoque es prácticamente obligatorio.
- Algoritmos y Estructuras de Datos: Te enseña qué estructura usar según el problema (listas, pilas, colas, árboles, grafos) y cómo elegir el algoritmo más eficiente para recorrerlas, buscarlas u ordenarlas. La diferencia entre un código que anda y un código que anda bien suele estar acá: podés resolver algo con fuerza bruta, pero si no pensás en complejidad temporal o espacial, tu programa explota cuando los datos crecen.
- Matemática discreta: s clave porque te da la base para entender cómo funciona la computación por debajo: conjuntos, relaciones, grafos, combinatoria, probabilidad básica. Todo eso aparece en algoritmos, optimización, búsquedas y hasta en temas más avanzados como seguridad o redes
- Hay otras que considero importantes como sistemas operativos, arquitectura del computador, etc. que ayudan a comprender cómo funciona todo una vez que apretás Enter.
Fundamental: Práctica, mucha práctica, hay aplicaciones web por todos lados que te van ayudar. Lo importante para mí es entender cómo funciona todo, más que saber escribir y no entender el transfondo.