Existen muchas clases de ingenieros, hay algunos de los cuales su trabajo esta relacionado con la programación de alguna manera como lo son los ingenieros en sistemas o los ingenieros electrónicos, sin embargo, la gran mayoría no esta dentro de este grupo. Este articulo va para vos si sos parte de los otros, de los civiles que se dedican a calcular vigas, de los industriales que organizan la producción, de los mecánicos que optimizan el diseño de un freno, etc... Cabe aclarar que el que les escribe es un ingeniero que utiliza la programación como tarea diaria, por lo que este articulo de opinión es posible que... va... seguramente este un tanto sesgado, pero aun así dame una oportunidad de explicarme, por que programar me ha facilitado la vida y también me ha sacado de apuros con problemas que nada tenían que ver con algoritmos.
Todos los caminos llevan a Roma Excel
Cuando uno empieza la carrera de ingeniería (o por lo menos yo), tiene en la mente que trabajará haciendo desarrollos dando con soluciones increíbles, desarrollar optimizaciones con matemáticas avanzadas y cosas muy técnicas. En la facultad, primer año, ya se ve matemáticas que para uno eran raras, como matrices, derivadas, vacas vestidas de uniforme, etc. Todo esto tiene mucho sentido en años mas avanzados de la carrera cuando se ven aplicaciones en sistemas reales.
Luego, al recibirse y entrar a trabajar, uno ríe y llora viendo este meme de lo real que es:
Aqui mi primera critica, Excel es un programa súper extendido y muy versátil, ante casi cualquier problema te ayuda a analizarlo, pero muy pocas veces es la mejor opción. Esto no seria problema si no fuese por que en las oficinas prácticamente se ha monopolizado este programa como "programa para calcular".
Esa intuición Ingenieril de atar todo con alambre...
Espero que no se me malinterprete, si lo que queremos es hacer un inventario de un pequeño kiosco, probablemente excel sea la mejor opción, pero... ¿que pasa si lo que queremos es calcular algo complejo?
¿Por ejemplo, como calcularíamos los polos de una función cuadrática?
Sabemos que las formulas para hacerlo son las siguientes:
Si lo pasaríamos a Excel, nos quedaría algo así en cada celda:
=(-A2+SQRT(A2^2-4*A1*A3))/(2*A1)
=(-A2-SQRT(A2^2-4*A1*A3))/(2*A1)
El hecho que se escriba en una linea, hace que sea muy posible escaparle y poner A1 en un A2, o por ejemplo equivocarse en los paréntesis y, lo peor de todo, es que una vez escrita la fórmula ya no la ves más en la celda, solo ves el resultado (por el propio diseño de excel).
Y eso que estamos poniendo un ejemplo muy simple, ¿que pasaría si en lugar de 2 fórmulas tuviésemos 20?¿Y si, además, al errarle en una fórmula el resultado este completamente mal?
Volvamos al caso del inventario ¿Qué pasa si en lugar de un pequeño kiosco lo que se busca es tener el inventario de una ferretería industrial más grande? Como se sabe, por mas que te compres una computadora nueva buena, si te instalas la última versión de Excel, se te va a trabar igual (y eso que sustancialmente el programa no ha cambiado desde el 95). Si quisieras un inventario grande, muchos datos te van a traer dolores de cabeza.
Esto no significa que ambos programas no se puedan hacer en excel, pero sí que existe un mundo mejor y no lo estamos viendo por nuestro instinto ingenieril de atar todo con alambre y no hacer las cosas bien.
Nuestro trabajo es principalmente entender
Siempre existen excepciones, pero por lo general, si el trabajo es genérico lo hace un técnico, un ingeniero aparece cuando el problema sale por lo menos un poquito de lo común. Problema que una vez entendido, la mitad de las veces la solución resulta obvia, por lo tanto, la forma en la que pensamos no solamente importa, sino que es lo mas fundamental de nuestro oficio.
Abraham Maslow (el mismo de la pirámide de Maslow) decía "Si tu única herramienta es un martillo, tendes a tratar todos los problemas como si fueran un clavo", por lo tanto, si al analizar un problema, siempre recurrimos a una planilla, por el solo hecho de volcar el problema en el formato que ofrece, nos estamos limitando.
Excel hace "Planillas de cálculo", solo el nombre ya deja que pensar, ¿por qué tenemos que tratar planillas y métodos de cálculo de la misma manera, si son 2 conceptos totalmente distintos?
Veamoslo de esta forma; si los problemas pueden tener formas tan variadas como las siguientes:
¿Por que siempre lo estructuramos así?
Acá los profesionales de mucha experiencia seguro van a decir "Esos problemas se pueden planillar y usarlos en excel", pero justamente ese es el punto, caemos en el punto anterior, buscamos atar con alambre los problemas para que, se adapten a nuestra herramienta y no buscar una herramienta que se adecue al problema.
Largo plazo
El futuro es incierto, pero hagamos un pequeño ejercicio, imaginemos dentro de 20 años, nosotros queremos utilizar la planilla de excel que estamos haciendo hoy.
La pregunta es... ¿podemos confiar que dentro de 20 años podamos utilizarla? Pero..pueden pasar varias cosas, yendo de lo mas posible a lo mas drástico:
- Puede pasar que el formato que utilice excel en 20 años haya cambiado y que no funcione correctamente.
- Puede pasar que no tengamos microsoft office, sea carísimo y que no se pueda piratear.
- Puede pasar incluso que a Microsoft lo tomen los hijos de Bill Gates y la fundan y que excel no exista más, y todos los programas de esta compañía dejen de funcionar (Bueno esta es un poco exagerada, lo sé).
Mas allá de que algunas de opciones parecen ser sumamente improbables, no nos olvidemos que estamos pensando al largo plazo, ¿se acuerdan lo que era el mundo hace 20 años?. En 20 años las cosas seran muy distintas y existe la posibilidad de que tus archivos no los puedas utilizar por una sencilla razón, NO SON TUYOS, si no es tuyo el programa para usarlos. Detalle no menor, legalmente hoy en día, los softwares no te los venden, te los alquilan.
Entonces... ¿en que quedamos?
Una solución parcial de estos problemas es conocer mas programas, osea, agrandar la caja de herramientas y de esta manera se puede optar por la mejor herramienta para el problema específico, estos programas deberían ser código libre para evitar lo último.
¿Y si mi problema no encaja exactamente con los programas que hay? Bueno, hagamos nuestros propios programas. Parece ser una locura, pero si tenemos algunas cuestiones en cuenta no lo es, pensemos lo siguiente:
- Programar, como toda habilidad, al principio te toma mucho tiempo pero con la práctica se agiliza mucho.
- No hace falta que los programas tengan diseños bonitos ni mucho menos, solo que el programa sea funcional para nosotros y nuestro equipo.
- Nunca hay que programar todo de cero, siempre se puede tomar prestado (para no decir robar) cosas pre-procesadas de internet.
- Hay programas que requieren tiempos enormes de desarrollo, claramente, esos están fuera de nuestro alcance, pero hay muchos que no (no nos vamos a hacer nuestro propio autocad).
- Existe Chat-GPT que te optimiza los tiempos de desarrollo muchísimo.
¿Que lenguaje de programación aprender y por que Python?
Existen infinidad de lenguajes, pero en ingeniería hay un clarísimo favorito, Python, por las siguientes características:
- Es fácil de aprender y de utilizar.
- Suele tener menor tiempo de desarrollo.
- Tiene una comunidad enorme, lo que hace que tenga mucho soporte y librerias on-line.
- Se utiliza para infinidad de aplicaciones diversas, desde análisis de datos hasta robótica.
- Desde hace poco excel lo acepta (Si... TODOS los caminos llevan a excel)
La principal desventaja del lenguaje es que es lento comparado con otros, lo que no lo hace adecuado si lo que se busca es un programa que procese en tiempo real, por ejemplo un videojuego, pero justamente no es algo que los ingenieros solemos hacer.
Si te convencí de que necesitas saber programar, o por lo menos te dio curiosidad, en este blog solemos hablar de estos temas, así que podes seguirnos por linkedin para enterarte de nuestras ultimas publicaciones.
Comentarios
Publicar un comentario