Tienes que aprender a programar, y tienes que aprender ahora. Aprender a programar te puede ayudar a mejorar considerablemente tu salario. Hay salarios en programación que son absurdamente altos, pero esto es solo para quienes logran construir aplicaciones y solucionar problemas programando.
Pero espera, no tiene que ser necesariamente difícil. Por eso, esta es una introducción a la programación absolutamente desde cero. Si quieres aprender a programar o ya estás aprendiendo un lenguaje de programación, pero te cuesta entender algunos conceptos, esto te puede ayudar a resolver unas cuantas dudas.
Qué es programar
Comencemos por lo básico: qué es programar.
Programar es un set de instrucciones que tú le das a una máquina. Son como las instrucciones que te daba tu madre cuando eras pequeño, como ordenar tu habitación, hacer tus tareas o comerte toda la comida.
Pero cuando programamos debemos ser un poco más específicos.
Supongamos que somos unos niños pequeños, estábamos jugando afuera en la calle y ahora nos toca entrar a nuestra casa. Si entre nosotros hablamos y decimos “entremos a la casa”, para nosotros va a ser sumamente sencillo, ya que tenemos las instrucciones completamente automatizadas dentro de nuestro cerebro.
Pero si le tuviésemos que explicar eso a una máquina, se vería algo más o menos así.
Ejemplo de instrucciones para entrar a la casa
Vamos a definir “entrar a la casa” e indicar paso a paso qué es lo que tenemos que hacer para poder entrar.
El primer paso es acercarse a la puerta.
El segundo paso sería levantar la mano.
El tercer paso es tomar la manilla.
El cuarto paso es girar la manilla hacia la izquierda.
El quinto paso sería empujar la puerta.
El sexto paso sería soltar la manilla.
El séptimo paso es caminar hacia adelante.
El octavo paso es darse la vuelta en 180 grados.
El paso número 9 sería levantar nuevamente la mano.
El paso número 10 es tomar la manilla.
El paso número 11 es empujar la puerta suavemente hasta que tope.
Si cuando nosotros estuviésemos conversando fuésemos tan específicos, nuestras conversaciones serían absurdamente largas. Por eso nosotros tendemos a obviar ciertos pasos.
Pero los computadores no pueden obviar estos pasos. Necesariamente tenemos que enseñarles cómo realizar ciertas acciones.
Qué puede hacer una máquina
Ahora que sabemos que a una máquina le tenemos que explicar a un nivel mucho más específico qué es lo que tiene que hacer, pasemos a ver qué puede hacer una máquina.
Un computador puede sumar, puede restar, puede multiplicar y también puede dividir. Además de esto, un computador también se puede acordar de ciertas cosas.
Puede recordar cosas como tu nombre, tu correo electrónico, la edad que tienes, tu contraseña, tu dirección, entre otras cosas.
Y una de las cosas de las cuales un computador también se puede acordar es de todos los pasos que nosotros le indicamos que tiene que seguir para realizar una acción.
Qué es un lenguaje de programación
Ahora que sabemos qué cosas puede hacer un computador, veremos la herramienta que se utiliza para indicarle estas acciones que debe realizar.
Estas acciones se realizan mediante un lenguaje de programación.
Un lenguaje de programación es un lenguaje formal, algo así como el español o el inglés, pero orientado a conversar con las máquinas.
Algo sumamente importante es que tiene reglas gramaticales definidas. Esto nos permite entregarle instrucciones a una máquina, como acercarse a la puerta, levantar la mano, tomar la manilla y todas esas instrucciones.
Con estas instrucciones nosotros podemos recolectar datos de las personas y presentarles estos mismos datos también a las personas, pero de otra forma.
Y es en este momento que debemos empezar a hablar de la diferencia entre dato e información.
Diferencia entre dato e información
Vamos a comenzar con dato.
Un dato por sí solo no tiene absolutamente ningún sentido. Por ejemplo, podría ser 36, podría ser Chanchito o podría ser feliz.
En este momento nosotros no tenemos ninguna idea de qué significa esto.
36 podría ser la cantidad de manzanas, podría ser una edad o podría ser la cantidad de veces que has muerto en Dark Souls.
Chanchito podría referirse al animal, también podría referirse a un corte de carne o podría ser como te dicen tus familiares de manera cariñosa.
Feliz podría ser el nombre de una canción o podría ser tu estado anímico.
La verdad es que solamente con esto no sabemos exactamente qué es. Esto se conoce como dato.
Cuándo un dato empieza a ser información
No es hasta que asociamos un dato con otro que nosotros podemos darle un sentido, y es ahí cuando esto empieza a ser información.
Por ejemplo, tenemos 36 años y tenemos también a Chanchito feliz. Pero aun así esto no queda muy claro. ¿Será que 36 años está asociado a Chanchito feliz? No necesariamente.
Ahora asociémoslo. Vamos a escribir usuario y vamos a dejar esto dentro del usuario. Ahora ya sabemos que tenemos un usuario, que un usuario es una persona que tiene 36 años y que es un Chanchito feliz.
Esto es información, y esa información es relevante.
Hagamos otro ejemplo de dato e información: salchicha.
Pero salchicha qué. ¿Salchicha de un hot dog? ¿Salchicha un perro salchicha?
Hasta que nosotros no asociemos este dato de salchicha con algo más, no sabemos exactamente qué es lo que tenemos. Cuando colocamos antes “perro salchicha”, ya sabemos que se trata de la raza de un perro, aunque técnicamente la raza es Dachshund.
Esto ya deja de ser un dato y tenemos información.
Qué son las variables
Los lenguajes de programación cuentan con variables y con funciones.
Una variable es como una caja que contiene datos, y también nosotros le podemos indicar un nombre a esta caja.
Vamos a crear nuestra primera variable:
x = 10
Ya sabemos que 10, en este caso, es un dato, y x es el nombre que tiene la variable.
Si nosotros quisiéramos abrir esta caja de x para ver cuál es su contenido, nos daríamos cuenta de que su valor es 10. Pero 10 qué. La verdad es que no tenemos idea de qué contiene esa variable de x.
Eso es porque el nombre de x no es muy representativo.
Dar nombres a las variables que tengan sentido
Cambiaremos el nombre de la variable para que haga más sentido.
En lugar de x, vamos a colocar edad. Ahora, casi por arte de magia, ya sabemos que 10 significa 10 años.
Ahora vamos a hacer lo mismo, pero el nombre de la variable, en lugar de ser edad, va a ser cantidad. Esta también le vamos a dar el valor de 10.
Ahora nosotros tenemos una variable que se llama cantidad y contiene 10 unidades de algo. También tenemos otra variable que se llama edad, que contiene 10 y que en este caso significa 10 años.
Este es un concepto que vas a ver mucho cuando empieces tus primeros pasos en programación: darle nombres a las variables que tengan sentido.
Variables con texto
Vamos a continuar creando más variables.
Después de cantidad, vamos a crear nuevamente una variable x, pero ahora vamos a escribir comillas dobles dos veces, y dentro de estas comillas vamos a escribir Chanchito.
Pero Chanchito qué.
Vamos a crear otra variable:
animal = "Chanchito"
Ahora ya sabemos que Chanchito es un animal.
Vamos a continuar creando otra variable:
menu = "Chanchito"
Ahora ya sabemos que, en este caso, para la variable menú, Chanchito es comida.
También podemos crear otra variable:
holaMundo = "Chanchito feliz"
Ahora ya sabemos que Hola mundo es un Chanchito feliz.
Tipos de datos
Cuando un computador se encuentra manejando datos, como por ejemplo la edad, si es que es un Chanchito feliz, etcétera, solo puede hacerlo con algunos tipos de datos.
Ahora, qué es un tipo de dato.
Vamos a crear una variable que se va a llamar animal y esta va a contener el valor de Chanchito.
animal = "Chanchito"
Chanchito es un String. Un String puede ser una palabra, una frase o una oración. Para hacerlo más amplio, String se refiere a texto.
Integer
Veamos el siguiente tipo de dato:
edad = 36
En este caso, 36 es un integer. Un integer se refiere a un número entero.
Para los que no lo saben, un número entero es un número sin decimales. Esto quiere decir que 1 es un número entero, 2 es un número entero, 3 es un número entero, pero 3.5 no es un número entero.
Float
Un número con decimales se conoce como float.
Por ejemplo, si tenemos la cantidad de harina:
cantidadHarina = 0.5
0.5 es un float.
Char
El siguiente tipo de dato son los caracteres, también conocidos como char.
Un carácter vendría siendo solamente un carácter.
Por ejemplo:
caracter = "a"
Esto se conoce como char. Este tipo de dato se utiliza bien poco al principio, pero existe.
Boolean
Ahora vamos con otro tipo de dato que existe en programación: los boolean.
Un boolean podría ser perfectamente el estado de si te encuentras casado o soltero.
Por ejemplo:
casado = true
Esto es un booleano. Un boolean puede tener solamente dos valores: true o false. No puede ser absolutamente nada más. Solamente tiene que ser true o false.
Ejemplos de tipos de datos
Vamos a ver un par de ejemplos con tipos de datos.
holaMundo = "Chanchito feliz"
¿Qué tipo de dato es Chanchito feliz? Es un String.
Ahora veamos otra variable:
cantidadDeJuegos = 12
¿Qué tipo de dato es este? Es un integer.
Ahora pasemos a algo siguiente:
numeroDeCalzado = 10.5
¿Qué tipo de dato es este? Es un float.
Ahora vamos a preguntar otra cosa: si te encuentras cansado o no. Vamos a decir que estás lleno de energía, así que lo vamos a dejar en false.
cansado = false
¿Qué tipo de dato es este? Es un boolean.
Ahora ya sabemos qué son las variables y qué tipos de datos estas pueden tener.
Qué son las funciones
Ahora podemos pasar a las funciones.
Para ver las funciones, vamos a volver al primer algoritmo que escribimos cuando comenzamos: entrar a la casa.
Las instrucciones que creamos para entrar a la casa son 11. Pero si nosotros tuviésemos que programar estas instrucciones cada vez que quisiéramos ingresar a la casa, tomaría bastante tiempo.
Esto también haría que nuestro código fuese sumamente difícil de seguir.
Además, si por alguna razón quisiéramos cambiar una de esas instrucciones y no tuviésemos funciones, tendríamos que estar revisando constantemente nuestro código para ver dónde más aparecen todas estas instrucciones y modificar absolutamente todas las ocurrencias.
Afortunadamente existen las funciones.
Las funciones son una forma de recordar el algoritmo que nosotros escribimos y así no tener que repetirlo constantemente para indicárselo a la máquina.
Lo escribimos solamente una vez y luego sencillamente llamamos a la función.
Ejemplo de función
Una función nos permite reutilizar algoritmos que hayamos construido.
Podríamos escribir:
function entrarALaCasa()
Aquí escribimos function en inglés, seguido del nombre de la función, que en este caso va a ser entrar a la casa, y abrimos y cerramos paréntesis.
La primera letra de cada palabra se puede colocar en mayúscula para que sea más fácil de leer el nombre de una función o el nombre de una variable.
También existe otra forma de darle nombre a una función usando guiones bajos:
entrar_a_la_casa
Las dos formas buscan lo mismo: que sea más fácil de leer.
Llamar a una función
Luego de crear una función, lo que hicimos fue indicarle a la máquina que existe una función que se llama entrar a la casa.
Pero en ese momento todavía no estamos ingresando a la casa.
Para ingresar a la casa, tenemos que necesariamente llamar a esta función. Para llamar a una función en cualquier lenguaje de programación, escribimos el nombre de la función seguido de abrir y cerrar paréntesis.
entrarALaCasa()
Escribimos el nombre de la función para indicar qué función queremos ejecutar y luego le indicamos con paréntesis que esa función queremos que sea ejecutada.
Qué es un algoritmo
Lo que redactamos entre el paso 1 y el paso 11 se conoce como algoritmo.
Un algoritmo es un set de instrucciones que nosotros redactamos para poder solucionar problemas.
En este caso, el problema que queremos solucionar es entrar a la casa.
Existen algoritmos buenos y algoritmos malos, pero todos van a depender del contexto en el cual nosotros los creemos.
Algoritmos buenos y algoritmos malos
Pensemos ahora en otro algoritmo para poder entrar a la casa.
function entrarALaCasa()
El primer paso es acercarse a la puerta.
El paso número 2 es patear muy fuerte.
El tercer paso es caminar hacia adelante.
En este caso, el algoritmo que acabamos de crear tiene menos pasos, pero tiene varios problemas.
El primero: hace mucho ruido.
El segundo: rompe la puerta.
El tercero: ahora cualquier persona podría entrar a la casa y nosotros no necesariamente nos daríamos cuenta, porque la puerta ahora está rota.
Quizás si un equipo de policía está intentando ingresar a una casa con urgencia, este algoritmo sería el más indicado para ellos. Por eso el algoritmo puede ser bueno o malo dependiendo del contexto en el cual lo queramos ejecutar.
Ahora pensemos en otro posible algoritmo.
function entrarALaCasa()
El primer paso es correr en dirección a la ventana.
El segundo paso es saltar.
El tercero es hacerse bolita.
De todos los algoritmos que hemos escrito hasta ahora, este podría ser quizás el más eficiente. Sencillamente vamos corriendo y saltamos hechos una bolita dentro de la casa.
Pero este algoritmo también hace mucho ruido, te puedes cortar y tu madre seguramente se va a enojar mucho si rompes la ventana.
Como ves, existen múltiples algoritmos para resolver exactamente el mismo problema.
Qué es la orientación a objetos
Ahora que ya sabemos qué son las funciones y para qué se utilizan, hablemos de orientación a objetos.
La orientación a objetos es un paradigma. Una forma de ver la vida. En este caso, una forma de cómo podemos resolver problemas.
Piensa que un paradigma de programación es algo así como la filosofía en cuanto a cómo se debe resolver algo.
Existen muchísimos paradigmas: funcional, imperativo, estructurado, pero el que más vas a escuchar hablar es el orientado a objetos.
Algo importante es que un paradigma muchas veces es sencillamente una preferencia en cuanto a cómo resolver algo, y nada más. No indica si algo está bien hecho o mal hecho. Es solamente una preferencia.
Clases y objetos
Volvamos a la orientación a objetos.
Hablemos de las personas. Por ejemplo, tú. Tú tienes un nombre, tienes una edad, tienes vestimenta, color de cabello y ojos.
Casi todas las personas tenemos esas características. Así que podríamos decir que estas son características típicas de las personas.
Entonces podemos escribir algo como persona, y usar propiedades como edad, nombre y color de cabello.
La edad puede ser un tipo de dato integer.
El nombre puede ser un String.
El color de cabello también puede ser un String.
Con esto ya tenemos algo así como el plano de cómo podemos crear una persona. Algo así como el plano de una casa, pero en este caso es un plano para crear personas.
Crear objetos desde una clase
Ahora empecemos a crear personas en base a este plano.
Podemos crear una variable de nombre personaChanchito y asignarle propiedades:
Edad: 36.
Nombre: Chanchito.
Color de cabello: castaño.
Con esto creamos una persona en base al plano de construcción que teníamos antes, que se llamaba persona.
En este caso, personaChanchito es un objeto, y persona es una clase.
A ver, más despacio.
Persona es una clase, algo así como el plano de construcción de una casa. PersonaChanchito es un objeto, algo así como la casa ya construida.
No el plano, sino la casa ya construida.
Pero nuestro objeto personaChanchito se crea en base a la clase persona. Así que también podemos decir que personaChanchito es una instancia de la clase persona.
En programación este concepto se utiliza muchísimo, y sirve para evitar duplicidad de código. Algo así como escribir menos código, pero hacer más cosas.
Métodos dentro de objetos
Ahora creemos otro objeto: personaFelipe.
Este tiene 15 años de edad, su nombre es Felipe y su color de cabello es rojo pasión.
En este momento tenemos la clase persona y también tenemos dos objetos: personaChanchito y personaFelipe.
Ahora podemos asociarle un comportamiento a cada una de estas personas.
Por ejemplo, decir nombre.
Dentro de decir nombre, vamos a decir: habla tu nombre. Eso indica que nos estamos refiriendo al nombre de personaChanchito o personaFelipe.
Pero si hacemos esto en cada objeto, estaríamos duplicando código.
Entonces, qué podemos hacer para no duplicar código: mover ese comportamiento a la clase persona.
Cuando agregamos estas acciones dentro de la misma clase, al momento de crear una instancia, esta acción o este método se copia a cada una de las instancias de cada objeto.
Un método es algo así como una función, pero que se encuentra dentro de un objeto.
Esta es una de las principales razones por las cuales vamos a querer utilizar la orientación a objetos.
Para qué sirven los objetos y las clases
Puede que pienses que una persona que pueda decir su nombre no es muy útil, y tienes razón.
Pero esto sí es útil en el caso de los usuarios.
Los usuarios tienen correo electrónico, tienen un nombre, tienen una contraseña, tienen métodos para iniciar sesión, para cambiar sus contraseñas y también pueden contar con imágenes si estamos trabajando en una red social.
Las aplicaciones son muchas, pero lo importante que tienes que aprender es que los objetos y las clases se utilizan muchísimo en programación para reutilizar código y no tener que escribir tanto.
Qué son las condiciones
Ahora podemos tomar la función que hicimos antes de entrar a la casa e indicarle quién queremos que entre.
Vamos a definir una nueva función de entrar a la casa, pero aquí vamos a hacer un pequeño cambio. Vamos a indicar que queremos que una persona entre a la casa.
A continuación vamos a hacer algo nuevo: preguntar si esta persona tiene más de 17 años, o sea, si tiene 18 años o más. Por ende, si es mayor de edad.
Entonces, si persona.edad es mayor a 17, vamos a indicarle correr hacia la ventana, saltar y hacerse bolita.
Pero si esta persona no es mayor de edad, entonces le vamos a indicar: vete de aquí.
Esto se conoce como una condición y es parte del control de flujo de las aplicaciones.
Dependiendo del dato que estemos viendo, podemos tomar distintas decisiones y ejecutar distintas porciones de código o distintos algoritmos.
En este caso, si la persona es mayor de edad, la dejamos entrar a la casa. Pero si es menor de edad, le decimos vete de aquí.
IF y ELSE
Esta condición se conoce como if, y el “si no” se conoce como else.
Esto lo vas a ver en casi todas las aplicaciones que construyas.
Sirve, por ejemplo, para validar que el usuario es mayor de 18 años o que el usuario tiene un permiso en específico para acceder a alguna parte de la aplicación que estás construyendo.
Qué son los errores
Ahora vamos a ver un nuevo concepto: los errores.
Supongamos que tenemos esta misma función de entrar a la casa y que también va a entrar una persona, pero ahora escribimos algo que intencionalmente está mal.
El paso número uno es acercarse a la puerta.
El paso número 2 es caminar hacia adelante.
Si la puerta llega cerrada, la persona sencillamente se va a golpear en la cara y no va a poder entrar. Esto debería arrojar un error.
Pero si la puerta llega a estar abierta, la función se va a ejecutar sin ningún problema. Por eso tu código funcionaría para algunos casos y para otros casos no.
Esto se llama bug.
Un bug es un error que puedes introducir de manera involuntaria en el código. Cada error va a entregarnos un mensaje diferente.
Por ejemplo, un mensaje de error podría ser: error, puerta cerrada.
Los mensajes de error van a variar dependiendo del lenguaje de programación y también de qué se está ejecutando.
Por eso es muy importante aprender a leer los mensajes de error que te entrega el lenguaje de programación con el cual estás trabajando, para así poder intentar solucionar la lógica que escribiste en tu código, en este caso, tu algoritmo.
Editor de código
Después de esto ya deberías poder lanzarte a aprender casi cualquier lenguaje de programación, ya que con esto deberías entender las bases.
Pero antes de lanzarte a construir tu primera aplicación, vas a necesitar un editor de código.
¿Por qué? Porque escribir código al comienzo no es tan fácil. Da un poco de miedo y al principio te vas a equivocar muchas veces.
Existen dos tipos de programadores: los que escriben código y se equivocan, y los que aún no han escrito código.
Pero esto no te debe desanimar. Escribir código es divertido. Es como tener tus propios superpoderes.
Para poder canalizar tus superpoderes, lo mejor que puedes hacer es utilizar una herramienta especializada: un editor de código.
Puedes utilizar cualquiera, pero uno de los más populares es VS Code. Es fácil de utilizar y se puede extender de manera muy sencilla. Además, tiene el respaldo de Microsoft, una de las compañías más grandes del mundo.
Conclusión
Programar es darle instrucciones a una máquina. Pero a diferencia de una persona, una máquina necesita instrucciones mucho más específicas.
Para empezar a programar necesitas entender qué es un lenguaje de programación, qué es un dato, qué es información, qué son las variables, los tipos de datos, las funciones, los algoritmos, la orientación a objetos, las clases, los objetos, las condiciones, los errores y los editores de código.
Con estos conceptos ya tienes una base para lanzarte a aprender casi cualquier lenguaje de programación.
Al principio te vas a equivocar muchas veces, pero eso es normal. Escribir código es como tener tus propios superpoderes, y mientras más practiques, mejor vas a poder solucionar problemas programando.



