¿Qué es un algoritmo? | CourseIt Blog
logo courseit

¿Qué es un algoritmo?

34

Según wikipedia: un algoritmo es un conjunto de instrucciones o reglas definidas y no ambiguas, ordenadas y finitas que permiten típicamente solucionar un problema, realizar un computo, procesar datos y llevar a cabo otras tareas o actividades.

Pero si estás acá es porque probablemente ya te cruzaste con esta definición o una similar y no tuvo mucho sentido para vos o no terminaste de entender como escribir un algoritmo o en que casos tenemos que utilizarlos. En este articulo vamos a tratar de bajar esta idea al lenguaje lo mas humano posible para que podamos responder de una vez por todas a esta pregunta que parece simple pero no lo es.

La forma mas simple que se me ocurre para definir un algoritmo es: Un bloque de código reutilizable que sirve para resolver un problema especifico.

Un bloque de código es al fin de cuenta un conjunto de lineas de código que tienen cierta coherencia entre si. Por ejemplo, imaginemos que queremos crear un programa que determine si una persona es mayor de edad o no. Para resolver este problema vamos a crear un algoritmo (bloque de código que sin importar cuál sea el valor de la entrada de datos (edad) va a poder determinar si la persona es mayor o menor de edad.

Hagamos un primer desglose de la información que tenemos:

  • ¿Qué problema queremos resolver? Queremos saber si una persona es mayor o menor de edad
  • ¿Qué información necesitamos para poder resolver este problema? La edad de la persona

Entonces teniendo en cuenta esto podríamos escribir el siguiente código.

function isAdult(age) {
  if (age >= 18) {
    return true
  }

  return false
}

Si pasamos ese código al español podríamos decir que verifica si la edad de la persona es mayor o igual a 18 años. Si ese condicional pasa devolvemos true, caso contrario, devolvemos false

El codigo que escribimos es un algoritmo? Si. El algoritmo que escribimos es totalmente genérico y reutilizable? No.

Esto se debe a que nosotros estamos asumiendo que la mayoria de edad siempre es a partir de los 18 años, pero esto no aplica a todos los países. Por ejemplo, en Tailandia la mayoría de edad es a partir de los 20 años o en Austria es a partir de los 15. Teniendo en cuenta este dato, podríamos modificar nuestro codigo a lo siguiente:

function isAdult(age, adultAge) {
  if (age >= adultAge) {
    return true
  }
  
  return false
}

Este ultimo código es un algoritmo? Si. Este algoritmo es totalmente generico y reutilizable? Si.

Eso quiere decir que nuestro segundo codigo es mejor que el primero? No necesariamente. Lo importante a la hora de escribir un algoritmo y resolver un problema es entender el contexto y el alcance del problema que queremos resolver. Por ejemplo si nuestro producto es internacional, el segundo codigo es el correcto mientras que el primero no, pero si nuestro producto o servicio tiene un alcance exclusivo de Argentina o Mexico, la segunda solución es genérica por de mas y la primera probablemente sea la mas adecuada.

Los algoritmos no son magia negra, no son formulas secretas que genios crearon. Un algoritmo cómo ya dijimos al fin de cuenta es un bloque de código que resuelve un problema en especifico de una forma genérica.

Si te interesa este mundo y tenes ganas de aprender mucho mas, te recomiendo CourseIt Pro en donde vas a encontrar un montón de contenido en video y texto que te va a servir tanto para conseguir tu primer trabajo como para crecer a nivel seniority.

Si te gusto el articulo tambien te recomiendo que me sigas en Twitter (https://twitter.com/JuaniGallo) en donde todos los dias comparto tips sobre programacion y sistemas en general.