Fundamentos básicos de programación #ElCódigoRosa

Este primer módulo de fundamentos básicos de programación, dirigido principalmente a mujeres que desean incursionar en el mundo de la programación, se va a concentrar en el manejo de conceptos básicos y términos principales tratados con un lenguaje natural de la vida diaria para comprender y relacionar que todo lo que vivimos diariamente, podemos asociarlo con el ejercicio del desarrollo de software. Para esto, vamos a tratar algoritmos, lenguajes de programación, Front – Back, variables, condicionales, ciclos, operadores lógicos y finalmente la universalidad de los fundamentos en los lenguajes de programación.

Fundamentos básicos de programación

¿Qué es programar?

¿Qué te dice la palabra programar?

¿Has visto a alguien ‘programando’ o escribiendo líneas de código que cumplen una función?

Si buscamos la palabra ‘programar’ en textos y libros de tecnología, encontramos diferentes conceptos con términos técnicos que pueden llevarnos a otros y otros y otros, hasta que finalmente no terminas entendiendo nada si no eres una persona que ha estado desempeñándose en el área de tecnología.

Yo puedo resumirte el significado de ‘programar’ en una palabra: CREAR. Producir algo que no existe, con un objetivo y una función.

Entonces, ¿qué es un programador? ¿Un creador?

¿Será un programador ese ser mágico e inmortal que levita y además nació con poderes súper especiales que hacen funcionar ese ‘aparato’ que se dañó?

Pues no, un programador es un ‘Proveedor de soluciones’. Ante una necesidad, ofrece una solución; lo que cambia es el medio, porque a través de las líneas de código hace que un aparato funcione como lo desea para cumplir su función.

El objetivo principal de esta charla es demostrar que todo aquel que quiera, puede programar. Lo importante es ver la vida desde otro punto de vista, cambiar la percepción que tenemos del mundo y las situaciones que tenemos en frente, pues lo más importante después que tenemos la solución es implementarla de la mejor manera posible, donde la palabra clave es ‘optimización’.

Hay muchas formas de realizar una misma actividad, lo que hace la diferencia es las implicaciones de cada método, el mejor será aquel que ofrezca más, lo haga más rápido e implique menos, menos tiempo, menos recursos, menos afectaciones.

Este es el primer paso para acercarte a la programación, y lo que te espera si deseas ser programadora. Para ésto, lo primero que vas a programar es tu mente, de tal forma que de ahora en adelante estés 24/7 ofreciendo soluciones ante cualquier circunstancia y luego evaluar cual es la mejor.

Lo siguiente es entender y tener claro que como en toda industria, siempre hay alguien y muchos que saben más que tu y no dejarse desmotivar por ésto, por el contrario, utilizarlo como una oportunidad para nutrirse de conocimientos e ir creciendo progresivamente.

Ningún programador se hace experto sólo viendo o leyendo, toca atreverse, escribirlo, sentarse frente a esa pantalla de fondo blanco o negro y empezar a llenarla. En unos meses mirar atrás cuando esa pantalla estaba vacía y en frente cientos de líneas hechas por ti misma.

¡Quiero empezar a programar hoy mismo!

Pues te cuento que lo mejor de ser programador es que puedes tomar la decisión entre:

– Ser el que recibe el esquema y lo pasa a letras que hacen cosas ó

– Ser quien arma el esquema, la lógica y luego lo pasa a que otro lo escriba.

Esto depende de tu pasión – Personalmente, ¡a mi me encantan las dos!

Sea cual sea la posición que elijas, debes por lo menos entender de qué se trata lo que vas a hacer y cuál es el objetivo, para esto se define un paso a paso detallado, que en papel da un resultado (en teoría), lo que sigue es transcribirlo.

Por ejemplo, tienes un documento con un texto cuyo objetivo es llevar un mensaje a un público, pero ese público no habla español, entonces luego que te aseguras que está bien escrito y dice lo que quieres transmitir, lo traduces, con la certeza que el mensaje está ahí. Esto es lo mismo, si en el papel funciona, cuando empieces a escribir estos ‘numeritos’, también va a funcionar.

Siempre he dicho que lo más difícil de programar, es dominar la lógica porque cuando la tienes, sólo vas, buscas la documentación oficial del lenguaje que quieres utilizar y empezar a escribir.

Entonces aquí ya hablamos de lo que vas a encontrar en las bibliografías como ‘Algoritmos’ y ‘Lenguajes de programación’, el algoritmo es la lista de pasos detallados que forman un proceso para lograr un objetivo, estos pasos pueden estar representados en ‘Diagramas de flujo’ o ‘Pseudocódigo’. El lenguaje de programación es en qué vas a traducir esos pasos para que la máquina lo entienda y lo haga mejor. Insisto, en este cuento lo más importante es ofrecer siempre la mejor solución con las mejores herramientas.

Hay lenguajes de programación para todo, para la parte que se ve y la que no se ve, por eso dividimos el sistema en la parte de adelante y la parte de atrás, ambas funcionales pero para manejar cada una, hay ciertos lenguajes entonces los conocemos como aquellos que funcionan del lado del servidor (back) y en el lado cliente (en el front).

Un ‘sistema de información’ es finalmente el producto, lo que hacemos, lo que creamos y en su nombre, éste lo dice todo: Sistema / Información, no hay mucho tiempo para ahondar en este par de términos pero sí para dejar claro que aquí nuestra materia prima es la ‘información’, es el centro de este universo y todo gira en torno a ella. La almacenamos, la traemos, la transformamos y manipulamos para hacer con ella lo que se nos dé la gana, literalmente.

Entonces guardamos pedacitos de información en variables, en ese punto son ‘datos’ a los que le hacemos un tratamiento según la necesidad, por ejemplo:

$nombre = ‘Ana’;

var nombre = ‘Ana’;

let nombre = ‘Ana’;

private string nombre = ‘Ana’;

Éstas son variables, esos ‘contenedores virtuales’ donde va información que puede variar según lo que estemos haciendo con ella.

if($nombre == ‘Ana’){

echo ‘Es una mujer’;

}else{

echo ‘Es un hombre’;

}

Esto que acabamos de ver es lo que hacemos casi todos los días, tomar decisiones bajo ciertas condiciones, a esto le llamamos ‘condicionales’ y este no es el único que existe, para esto podemos buscar en la documentación y encontraremos otros ejemplos siendo éste el más utilizado.

Los diferentes tipos de condicionales pueden ser:
If (si…) Y que tal sí.. y si no? Entonces …. (Es como estar preparados para todo)

Switch (abarquemos todos los casos posibles… ah, y uno por defecto, por si acaso)

También tenemos ciclos o bucles, éstas son estructuras o pedacitos de código que nos ayudan a ejecutar o a repetir instrucciones bajo ciertas condiciones donde definimos la cantidad de vueltas que va a dar, cuando detenerse. Los ciclos que tenemos pueden ser:

While, do While, Mi favoritaaa: For.

La universalidad de los fundamentos en los lenguajes (Iniciación a la siguiente charla)

En estos fundamentos, faltaron detalles que son importantes conocer cuando deseamos empezar a programar, pero en este punto ya podemos decidir en qué queremos hacerlo. Yo personalmente, puedo proveerles y recomendarles para empezar, PHP que es un lenguaje del lado servidor, donde hacemos conexiones a la base de datos, y demás. Pero también puedo ofrecerles apoyo en el lado cliente con Javascript y el uso de Jquery para facilitar un poco las cosas.

A medida que vamos avanzando, vamos aumentando el nivel de lo que hacemos y la idea es que ustedes mismas se comprometan a investigar los términos que tratamos aquí, viéndolos de otra forma, sin miedo y abarcando los que van encontrando mientras leen la documentación. Nos vemos cada 15 días en Geek Girls Latinoamérica Nodo Villavicencio.

Si tienen dudas, necesitan asesoría, acompañamiento o tienen sugerencias para una próxima charla, pueden escribirme a mi correo electrónico [email protected]corp.co.

Ana Belisa Martinez Escudero

Ana Belisa Martinez Escudero

Ingeniera de Sistemas

Ingeniera de sistemas, desarrolladora de aplicaciones web y móviles, emprendedora fundadora de El Código Rosa (startup de emprendimientos digitales hechos por mujeres), Tech Sister en Geek Girls Latam, Líder del nodo Villavicencio y autora de el curso "El Código Rosa" de la GGAcademy,