Una pequeña introducción a un nuevo mundo
Programación es el arte de tomar un algoritmo y codificarlo en una notación, un lenguaje de programación, de modo que pueda ser ejecutado por una computadora. Estas instrucciones pueden presentarse en diferentes lenguajes, tales como C++, Java, JavaScript, HTML, Python, Ruby y Rust. Aunque existen muchos lenguajes de programación y muchos tipos diferentes de computadoras, el primer paso es la necesidad encontrar una solución a un problema, pero sobre todo que quieras experimentar con algo nuevo....si te interesa más sigue bajando y descubre unas cuantas cosas interesantes. ;)


Te seguimos hablando un poco más...
En entrevista con EL TIEMPO, Freddy Vega, director ejecutivo de Platzi, una herramienta en línea que ofrece cursos de programación, dijo que escribir código ayuda a pensar de una manera más analítica, en vez de pensar con prueba y error.
“El software se comió al mundo, no hay nada que no hagamos en este momento que no tenga tecnología por detrás. Nosotros tenemos dos opciones hoy en día: podemos ser simplemente consumidores o podemos ser una de las personas que crea. Quienes escriben código pueden tomar un problema grande y romperlo en problemas pequeñitos. Eso es pensar de manera diferente”, agrega.
El experto detalla que uno de los mayores beneficios de ser programador es que es una de las profesiones con mayor demanda en la actualidad (TIEMPO, 2016).
El progreso tecnológico influye en la vida cotidiana: empleos, hogar, educación, entretenimiento, entre otros. La humanidad se encuentra en la Cuarta Revolución Industrial, un momento en el que innovaciones como la inteligencia artificial, aprendizaje automático, big data e internet de las cosas, son reales y se aplican en actividades diarias, y para realizarlo, se requiere de personas especializadas en estos ámbitos.
América Latina es una región en la que se colabora para que se reduzca la brecha digital y que un mayor número de personas accedan a educación y preparación para enfrentar los retos de la era 4.0. Dicha instrucción debe enfocarse en ser continua porque asegura el aprendizaje y persistencia de los conocimientos que impulsan a las personas a mejorar sus vidas y las de sus comunidades, a través de iniciativas como emprendimientos.
En América Latina existen jóvenes destacados que han hecho que el aprendizaje de tecnologías sea algo que sucede a diario en su vida, lo que les ha permitido un desarrollo personal y profesional, y que también transmitan esos conocimientos a más gente para que la adopción de las innovaciones se efectúe de la manera más equitativa posible. Una de ellas es la peruana Lizeth López, originaria de una comunidad rural, que desde temprana edad se involucró en la creación de proyectos tecnológicos, y ahora desarrolla soluciones para el sector bancario y estudia inteligencia artificial. El anhelo de Lizeth es innovar para crear un impacto social y económico en las vidas de personas con menores ingresos (González, 2017).
La programación
Algunos buenos usos que deberías conocer

Creación de nuevas aplicaciones para tareas específicas
Usando un lenguaje apropiado, puedes programar/crear todo tipo de software. Por ejemplo, un programa que ayude a científicos con cálculos complejos; una base de datos que almacene grandes cantidades de datos; un sitio web que permita a la gente descargar música, o un software de animación que permita a la gente crear películas animadas. (Israel, 2017)

Programar robots y otras máquinas
El proceso de programación de un robot consiste en introducir en su sistema de control las instrucciones necesarias para que desempeñe las tareas para las que ha sido diseñado. Existen varios procedimientos de programación de robots.

Crear videojuegos
El desarrollo se lleva a cabo por un desarrollador de videojuegos, que puede variar de una persona a un gran negocio. Los videojuegos comerciales para PC y videoconsolas son normalmente financiados por una distribuidora y tardan varios años en desarrollarse. Los videojuegos independientes pueden tomar menos tiempo y pueden ser producidos a bajo precio por individuos y pequeños desarrolladores. La industria de videojuegos independientes ha visto un aumento en los últimos años con el crecimiento de los nuevos sistemas de distribución en línea y el mercado de juegos para móviles (Luján, 2017).
Los primeros videojuegos fueron desarrollados en la década de 1960, pero requerían grandes ordenadores y no estaban disponibles para el público en general. El desarrollo del videojuego comercial comenzó en 1970 con la llegada de la primera generación de consolas de videojuegos y ordenadores domésticos. Debido a los altos costos y bajas capacidades de las computadoras, un programador solitario podría desarrollar un juego completo. Sin embargo, al acercarse el siglo 21, el cada vez mayor poder de procesamiento y las aumentadas expectativas del consumidor hicieron que sea difícil que un único programador produzca un videojuego para ordenador o videoconsola. El precio promedio de la producción de un videojuego lentamente aumentó de $1-4 millones de dólares en 2000 a más de $5 millones en 2005, y luego a más de $20 millones en 2010. Sin embargo, los videojuegos independientes para móviles, o basados en la web pueden costar mucho menos (Luján, 2017).

Encriptación de códigos
Desde que la humanidad inventó el lenguaje escrito, ha tratado de compartir información de manera secreta. Este es, básicamente, el objetivo de la criptografía, el estudio de las técnicas para proteger las comunicaciones sensibles por medio de encriptación de datos y su posterior descifrado.
Hay algunos conceptos básicos relativos a la criptografía.
- Cifrado: El procedimiento que generará un mensaje ininteligible para el receptor. También se usa para recrear el mensaje original, según el mecanismo de cifrado que se utilice.
- Texto Plano: El mensaje o información que se va a codificar.
- Texto cifrado: El mensaje o información que se obtiene después que se ha utilizado el Cifrado.

¿Cómo funciona?
Supongamos que tenemos una matriz invertible A (la matriz de codificación) y un texto que queremos cifrar.
Transformamos el texto a una secuencia de números, dando a cada carácter un valor numérico único; a continuación, formamos una matriz mediante la agrupación de los números en columnas de acuerdo al orden de la matriz A (la cantidad de elementos en cada columna debe ser igual al orden de la matriz). Llamemos a esta matriz B (la matriz plana). Multipliquemos la matriz A por la matriz B:
C = A•B
La matriz C es la matriz cifrada.
Para descifrar el mensaje, sólo debe multiplicarse Inv(A)•C, donde Inv(A) es la matriz inversa de A.
Nótese que:
Inv(A)•C = Inv(A)•A•B = I•B = B
El texto plano original se puede hallar nuevamente tomando la matriz resultante y uniendo sus vectores columna, de manera que formen una secuencia, para luego convertir los números en los caracteres respectivos.
En muchos artículos, los autores utilizan solamente las 26 letras del alfabeto Inglés, a veces 29 si se incluye el espacio, el signo de interrogación y el punto. En estos casos una sencilla asignación de las letras y símbolos adicionales a los primeros números enteros, y el uso de la aritmética modular, permite con el uso de este método, obtener un mensaje cifrado compuesto por los mismos números enteros, que se pueden asignar nuevamente a sus correspondientes letras y símbolos.
La matriz cifrada C, se puede mostrar como una secuencia de números, uniendo sus vectores columna, de la misma manera que hay que hacer para obtener el texto plano original; pero no se pueden convertir los números a letras utilizando el método anterior, debido a que los números resultantes pueden oscilar en un conjunto numérico más amplio. Si lo prefiere, se puede transformar en un texto asociando los dígitos, el signo de menos y el separador de listas a diferentes caracteres. Es este ejemplo utilizamos sencillas funciones de mapeo para hacer eso. Estos métodos de cifrado es usado por compañías como bancos para poder tener resguardadas las cuentas con seguridad.
Más sobre sus usos

Importancia para la ingeniería...
Las herramientas digitales avanzadas y la evolución computacional han dado forma a diferentes áreas, como el proceso industrial, las comunicaciones, la educación y la innovación. Las nuevas tecnologías, como Internet of Things-IoT, la computación en la nube y la inteligencia artificial, han impulsado el desarrollo de software y las habilidades computacionales en diferentes áreas. Los conocimientos de ingeniería química adquiridos por estudiantes de último año y habilidades de programación pueden integrarse para desarrollar herramientas computacionales, favoreciendo a los ingenieros químicos para aprovechar las nuevas oportunidades en el área digital. Normalmente, los cursos de programación se ofrecen al comienzo del programa de ingeniería química, con ejemplos no relacionados con problemas de ingeniería química. Para llenar este vacío, se creó una disciplina electiva para estudiantes de último año de pregrado en el Departamento de Ingeniería Química de la Universidad de São Paulo (Brasil). Este documento discute las motivaciones principales para un nuevo curso de programación, presenta la estructura del curso y muestra algunos resultados de una encuesta de estudiantes sobre lo que han aprendido (Santos, 2018).
Ya se han hecho discusiones importantes sobre la enseñanza de la programación para estudiantes de ingeniería química. Kassim y Cantbury (1996) concluyeron que si bien el valor de la enseñanza de programas en un grado de ingeniería puede cuestionarse bastante, tiene un lugar, promoviendo un enfoque lógico y disciplinado para el diseño en general. Hace más de diez años, Coronell (2005) argumentó que los empleadores no esperaban que las tres cuartas partes de los ingenieros químicos de nivel de entrada fueran competentes en ningún idioma de programación. Más bien, se esperaba que usaran soluciones de software comerciales suministradas por proveedores (Coronell, 2005). La integración del conocimiento en ingeniería química con las habilidades de programación avanzadas puede abrir nuevas oportunidades en la era digital actual. También pensamos que la educación en ingeniería química puede transformar el mercado en lugar de responder simplemente a las demandas del mercado (Santos, 2018).

Ingeniería química
A veces se cree que es mejor enseñar la programación de Microsoft Exceland Visual Basic para aplicaciones (VBA) a estudiantes de ingeniería química, en lugar de un lenguaje de programación basado en objetos. Favorecer el entorno de Excel para aprender habilidades de programación se debe a la familiaridad existente del estudiante con Excel y su uso común en la industria (Wong y Barford, 2010).
En realidad, para Ingeniería Química no es “Necesario” ningún lenguaje de programación aunque si es bastante recomendable conocer uno a profundidad. Por otro lado el Lenguaje de Programación que se va a utilizar no depende de si eres Ingeniero Químico o Mecánico o Arquitecto, sino del tipo de Software o del tipo de problemas que deseas resolver.
Por ejemplo, si lo que quieres es elaborar un software para resolver problemas relacionados con Fisicoquímica o Termodinámica, puedes utilizar casi cualquier lenguaje (Visual studio, ASP.NET, Java, JavaScript, PHP, etc.), solo deberá tener capacidad de realizar cálculos; si lo que deseas, por ejemplo, es hacer una simulación con animación y gráficos avanzados, ya cambió la cosa, vas a requerir algo más sofisticado como podría ser C#, Java, C++
Lo que va a marcar el lenguaje a utilizar no es la carrera que tengas sino el alcance y ámbito del Software, por ejemplo, para Aplicaciones que corran en Smartphones y Tablets (APP’s) puedes utilizar XAMARIS, Java o JavaScript, para realizar un software que solamente sea para resolver tus necesidades (Reyes, 2018).

Creación de software privado para su venta
El software propietario, o también conocido como software de código cerrado, es aquel cuya principal característica es estar limitado tanto en uso, como modificación o la distribución del mismo.
Este tipo de software es considerado el más popular en todo el mundo; ya que, a pesar de las buenas intenciones de algunas fundaciones que promueven el software libre, el software propietario o comercial es el más recurrido debido al ingreso que este representa.
La historia de este tipo de licencia comenzó al final de los años 70’s; después de que el gobierno de los Estados Unidos obliga a IBM para hacer distinción entre la fabricación de software y hardware. Con está acción, comienzan a desarrollarse los primeros programas cerrados y que posteriormente se convertiría en la licencia de software propietario que hoy conocemos.
Específicamente, el software propietario cuenta a menudo con las siguientes características:
Es imposible de copiar y/o modificar.
Su protección es respaldada por el Copyrigth o la protección .
Normalmente cuentan con un nivel o estándares de calidad superior al del software libre.
Puedes localizarlo fácilmente con retailer o en tiendas especializadas.
El soporte o mantenimiento es exclusivo del propietario de su licencia.