Introducción
En esta sección vamos a hablar sobre qué es la programación en informática, antecedentes históricos, lenguajes de programación y entornos de desarrollo.
Al final de la página voy a listar una serie de aplicaciones en las que he usado programación.
Esta es la sección principal de todo el contenido de programación disponible en la página.
¿Qué es la programación en informática?
Desde mi punto de vista la programación es la herramienta que tenemos para hablar con los dispositivos inteligentes, es decir dispositivos electrónicos que cuentan con un procesador en su interior.
A través de la programación podremos usar la funcionalidad que estos dispositivos inteligentes nos ofrecen.
Las computadoras, smartphones y tablets son los dispositivos inteligentes más conocidos, sin embargo existe un gran número de otros dispositivos que también se pueden programar, ya sea por medio de periféricos de entrada o grabando un programa en su memoria.
Dispositivos como el FPGA, Raspberry PI, Arduino o PLC son ejemplos de estos dispositivos inteligentes que podemos programar.
¿Cómo aprender programación?
En esta página voy a crear un curso de programación por medio de artículos y videos que en principio va a estar estructurado en tres partes.
La primera parte será la de Introducción a la Programación, aquí estarán listados todos los artículos sobre conceptos de programación, pseudocódigo y cuestiones de programación básica.
La segunda parte será sobre análisis y desarrollo de algoritmos, en esta parte analizaremos distintos algoritmos y los implementaremos en lenguaje C# para Unity.
La tercera parte será sobre programación orientada a objetos, el paradigma de programación más reciente que nos permite modelar objetos de programación con un comportamiento determinado.
Regularmente iré creando nuevos artículos y videos sobre cada una de estas temáticas.
¿Cuándo surgió la programación informática?
Lo que se considera la primera generación de computadoras surgió en la década del 40.
Eran máquinas enormes que podían realizar cálculos mediante la utilización de dispositivos biestables como los relés o válculas de vacío (biestables porque pueden estar en dos estados, pensados de manera abstracta como 0 y 1).
El ENIAC (Electronic Numerical Integrator And Computer), computador e integrador numérico electrónico se considera una de las primeras computadoras de propósito general.
Estos aparatos se programaban utilizando lenguaje de máquina, es decir mediante combinaciones de palabras binarias que representaban datos e instrucciones. La máquina las procesaba los datos con la instrucción apropiada y producía datos de salida.
En la segunda generación de computadoras se reemplazaron las válvulas de vacío por transistores, lo que trajo una reducción abrupta del tamaño y el consumo energético.
Lenguajes de programación
Los procesadores entienden los datos e instrucciones en lenguaje maquinal, es decir unos y ceros.
Para que sea más simple hacer programas para los procesadores se creó el lenguaje Assembler o ensamblador, que es prácticamente lenguaje maquinal pero utilizando palabras fáciles de recordar.
El lenguaje maquinal y Assembler se conocen como lenguajes de «bajo nivel», esto significa bajo nivel de abstracción, lo que quiere decir que estamos escribiendo un programa directamente para el procesador, esto implica conocer la arquitectura y el Instruction Set del procesador en particular con el que estemos trabajando.
Luego tenemos los lenguajes de alto nivel de abstracción como pueden ser C, C++, Java, C#, Python, etc. Estos lenguajes nos permiten desligarnos de la arquitectura de los procesadores y crear programas para distintas plataformas y dispositivos.
Entornos de desarrollo y lenguajes de programación
El entorno de desarrollo es un software que nos permite desarrollar programas y compilarlos.
A continuación voy a nombrar algunos entornos de desarrollo populares
Unity
Debido a que el interés de esta página es el desarrollo de videojuegos en principio utilizando Unity, uno de los lenguajes de programación que vamos a estudiar es C# utilizando el motor gráfico Unity con el editor Visual Studio.
Escribiremos código en Visual Studio y lo simularemos en Unity. Imprimiremos mensajes en la consola para comprobar el funcionamiento del código.
Visual Studio, NetBeans o Eclipse
Estos IDE nos permiten utilizar un amplio rango de lenguajes para estudiar programación.
Android Studio
Esto es algo un poco más ambicioso, pero si logramos superar la fase de instalación y configuración de Android Studio, podemos practicar programación en lenguaje Java utilizando este software.
Blender
Blender es un software muy versátil, podemos utilizarlo para practicar el lenguaje Python, lo que nos permitirá hacer cosas interesantes como crear nuestros propios Addons.
Aplicaciones de la programación en informática
Podemos utilizar la programación para resolver una gran cantidad de problemas, voy a listar una serie de usos que le he dado a la programación.
Desarrollo de videojuegos
En mi tiempo libre trabajo en un par de proyectos de juegos en Unity. Conociendo el flujo del programa de un juego y creando Scripts en lenguaje C# podemos manipular los gráficos por computadora y controlarlos con los periféricos.
Hay varios motores gráficos populares en la actualidad, por ejemplo Unreal Engine.
Desarrollar aplicaciones para Android
Con el entorno Android Studio podemos crear aplicaciones móviles utilizando lenguaje Java y XML.
Programar micro controladores
En la facultad aprendimos a programar los microcontroladores pic de Microchip utilizando lenguaje Assembler.
El micro controlador es un dispositivo de procesamiento que cuenta con algunos módulos internos como conversores analógico digital, temporizadores y demás.
También he hecho proyectos con Arduino.
Programar PLC para controlar máquinas industriales
En la industria, cuando se necesita un control preciso sobre algún proceso se suelen implementar sistemas de control con Controladores Lógicos Programables (PLC en inglés).
En mi caso utilizo la marca Delta y su entorno WPLSoft que permite programar el PLC utilizando lenguaje Ladder o de contactos. También se pueden crear máquinas de estado.
Procesar tabla de datos con Excel
Una aplicación algo curiosa, pero el hecho de saber programar me resultó útil para analizar una cantidad enormes de datos que recolectó un programa.
Crear macros
A la hora de hacer tareas repetitivas, los macros son nuestra salvación.
Existen distintas aplicaciones que nos permiten crear macros complejos utilizando algún lenguaje de programación.
En mi caso me hice un teclado especialmente dedicado para macro, que al pulsar una tecla realiza una serie de acciones dependiendo el programa que está activo.