Aprender a programar ¿por dónde comenzar?

Aprender a programar

El camino de aprender a programar puede introducirnos a una nueva manera de pensar, pero a la vez puede resultar muy desafiante. Existe una gran diversidad de lenguajes y paradigmas, pero la mayoría comparten principios lógicos fundamentales. Ya sea que estés desarrollando una aplicación web con JavaScript o trabajando en un modelo de Inteligencia Artificial con Python, comprender estos principios te permitirá moverte con facilidad entre tecnologías.

En este artículo explicaré los conceptos clave de la programación, aquellos que son transversales a distintos lenguajes.

1. Algoritmos y lógica de programación

Un algoritmo es una secuencia de pasos bien definidos para resolver un problema. La programación consiste en traducir estos pasos a código, asegurando que sean eficientes y escalables.

Ejemplo de algoritmo en JavaScript para determinar si un número es par o impar:

function esPar(numero) {
    return numero % 2 === 0;
}

console.log(esPar(10)); // true
console.log(esPar(7));  // false

Ejemplo equivalente en Python:

def es_par(numero):
    return numero % 2 == 0

print(es_par(10))  # True
print(es_par(7))   # False

Ambos códigos siguen la misma lógica: recibir un número, calcular el residuo o resto de su división por 2, comparar si es cero, y devolver un valor booleano.

2. Estructuras de control

Los lenguajes de programación tienen estructuras de control que permiten la toma de decisiones y la repetición de tareas.

Condicionales

Los condicionales permiten ejecutar código basado en condiciones lógicas.

Ejemplo en JavaScript:

let edad = 18;

if (edad >= 18) {
    console.log("Eres mayor de edad");
} else {
    console.log("Eres menor de edad");
}

Ejemplo en Python:

edad = 18

if edad >= 18:
    print("Eres mayor de edad")
else:
    print("Eres menor de edad")

En lo ejemplos anteriores se declara una variable en la que se define la edad. Luego se verifica si edad es mayor o igual a 18 y dependiendo del resultado tendremos dos opciones. Si la evaluación devuelve verdadero

Bucles

Los bucles permiten repetir instrucciones hasta que se cumpla una condición.

Ejemplo de bucle for en JavaScript:

for (let i = 0; i < 5; i++) {
    console.log("Iteración número:", i);
}

Ejemplo de bucle for en Python:

for i in range(5):
    print(f"Iteración número: {i}")

En estos ejemplo el bucle se ejecuta 5 veces, mostrando en consola del 0 al 4.

3. Funciones y modularización

Las funciones permiten dividir el código en partes reutilizables, mejorando la organización y eficiencia.

Ejemplo de función de suma en JavaScript:

function sumar(a, b) {
    return a + b;
}

console.log(sumar(5, 3)); // 8

Ejemplo equivalente en Python para cálculos matemáticos:

def sumar(a, b):
    return a + b

print(sumar(5, 3))  # 8

4. Manejo de datos

El manejo de datos es fundamental tanto en desarrollo web como en inteligencia artificial.

Listas y arrays

Las listas (Python) y los arrays (JavaScript) permiten almacenar colecciones de datos.

Ejemplo en JavaScript:

cont nombres = ["Dami", "Pedro", "Luisa"];

console.log(nombres[0]); // "Dami"

Ejemplo en Python:

nombres = ["Dami", "Pedro", "Luisa"]

print(nombres[0])  # "Dami"

Objetos y Diccionarios

Los objetos en JavaScript y los diccionarios en Python permiten estructurar datos en clave-valor.

Ejemplo en JavaScript:

let persona = {
    nombre: "Luisa",
    edad: 25
};

console.log(persona.nombre); // "Luisa"

Ejemplo en Python:

persona = {
    "nombre": "Luisa",
    "edad": 25
}

print(persona["nombre"])  # "Luisa"

5. Paradigmas de programación

Existen distintos paradigmas que aportan metodologías para la escritura del código. Dos de los más importantes en desarrollo web e IA son:

Programación Funcional

La programación funcional trata de evitar cambios en el estado del programa y usa funciones.

Ejemplo en JavaScript con Arrow Function:

const numeros = [1, 2, 3, 4, 5];
const cuadrados = numeros.map(n => n * n);

console.log(cuadrados); // [1, 4, 9, 16, 25]

Ejemplo en Python (con map y lambda):

numeros = [1, 2, 3, 4, 5]
cuadrados = list(map(lambda n: n * n, numeros))

print(cuadrados)  # [1, 4, 9, 16, 25]

Programación Orientada a Objetos (POO)

En concepto de POO se basa en la creación de objetos con propiedades y métodos.

Ejemplo en JavaScript:

class Persona {
    constructor(nombre, edad) {
        this.nombre = nombre;
        this.edad = edad;
    }

    presentarse() {
        return `Hola, soy ${this.nombre} y tengo ${this.edad} años.`;
    }
}

let persona1 = new Persona("Dami", 47);

console.log(persona1.presentarse());

Ejemplo en Python:

class Persona:
    def __init__(self, nombre, edad):
        self.nombre = nombre
        self.edad = edad

    def presentarse(self):
        return f"Hola, soy {self.nombre} y tengo {self.edad} años."

persona1 = Persona("Dami", 47)

print(persona1.presentarse())

En conclusión

Las bases de la programación son similares en la mayoría de los lenguajes modernos. Comprender algoritmos, estructuras de control, funciones, manejo de datos y paradigmas de programación te permitirá comprender como se trabaja tanto en desarrollo web como en inteligencia artificial.

Si logras dominar estos conceptos, aprender nuevos lenguajes o frameworks será más fácil. Ya sea que programes una API en Node.js o te interesa trabajar con una IA desde Python, la lógica básica siempre tendrá puntos en común

Si te interesa aprender a programar déjame un comentario o escríbeme un mensaje.

Más sobre Programación


Acerca de

Autor de los libros: Webmaster Profesional, HTML5: Comprenda el cambio y Apps HTML5 para móviles. Soy especialista en Desarrollo Web. Realizo proyectos basados en Inteligencia Artificial. Colaboré como autor y editor de contenidos para revistas, colecciones y diversos medios impresos y digitales. Brindo capacitaciones, clases de formación y consultorías sobre lenguajes de programación y herramientas para Desarrollo Web y móvil en modalidad online y presencial.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

*