Durante un tiempo considerable, el mundo se ha dedicado al estudio de la programación y el diseño web. Inicialmente, muchos comienzan aprendiendo sobre ingeniería de software a través de recursos en YouTube. Uno de los primeros enfoques suele ser el diseño web, a partir del cual se estudia HTML, CSS y JavaScript. Posteriormente, es natural considerar que sería beneficioso explorar los lenguajes de programación más utilizados, lo que puede llevar a dedicar alrededor de 200 horas al estudio de diversos lenguajes. Comprender que si bien JavaScript tiene un papel crucial en el frontend existen numerosos lenguajes que se emplean principalmente en el desarrollo del backend.
En el ámbito de la programación, se distinguen comúnmente tres áreas: frontend, backend y full-stack. El frontend se centra en el diseño de la interfaz visual del producto digital, ya sea un sitio web, una aplicación o objetos de desarrollo Este tipo de desarrollo se basa principalmente en HTML, CSS y frameworks como Tailwind CSS, que proporciona plantillas y estilos predefinidos para CSS. Si bien JavaScript desempeña un papel fundamental en el frontend moderno, su uso no se limita a “una función muy corta”, sino que abarca la creación de interactividad, animaciones y la gestión de la lógica del lado del cliente.
A partir de ahí, se puede abordar el backend. El backend se encarga de la lógica del servidor, la gestión de bases de datos y la comunicación con el frontend, también implica la implementación de seguridad y la creación de APIs (Interfaces de Programación de Aplicaciones). Aunque la creación de objetos y funcionalidades es una parte del trabajo del backend, las animaciones y eventos se gestionan principalmente en el frontend con JavaScript y CSS, aunque el backend puede proporcionar los datos necesarios para estas interacciones.
Es en este punto donde se observa que la mayoría de los lenguajes de programación se enfocan en el backend. Lenguajes como Python, C++ y C#, entre otros lenguajes populares para el desarrollo del lado del servidor, no utilizan plantillas de CSS ni HTML directamente. En su lugar, se basan en la programación orientada a objetos, empleando un código similar a JavaScript para organizar estructuras y funcionalidades.
Durante este proceso de aprendizaje, se suele decidir que, tras el estudio inicial en YouTube, los aprendices deben comenzar a practicar y hacer cosas dinámicas como crear tutoriales que también publicarían en internet creciendo así su experiencia. De este modo se desarrollan muchas series de videos cortos de entre dos a quince minutos, enfocados en la creación de proyectos interesantes para la ingeniería de software en YouTube.
Además, comenzar a publicar los trabajos en GitHub es fundamental para que al iniciar el estudio de programación las personas puedan adentrarse en la práctica y se organicen realizando este tipo de actividades para adquirir experiencia. De esta manera, se puede construir un repositorio en GitHub a la par que se comparten los videos en las redes sociales. Esto, a su vez, contribuye a la creación de un portafolio profesional.
Un portafolio sólido es una herramienta valiosa para la búsqueda de empleo. Es importante comprender que, si bien los lenguajes de programación pueden parecer sencillos en su concepción, el desarrollo de software implica la resolución de problemas complejos. Un buen ejercicio consiste en practicar con ejemplos prácticos, como crear un menú interactivo o un sistema que registre los platos más populares de un restaurante. Desarrollar este tipo de programas fortalece el análisis lógico y la aplicación de técnicas de programación establecidas.
Una vez superada la fase inicial de aprendizaje, el principal desafío no reside en el análisis del problema en sí, sino en el dominio de la sintaxis. Aunque la sintaxis se refiere a la forma en que se escribe el código, la gran cantidad de comandos y funciones disponibles puede dificultar su memorización, es un diccionario enorme.
Para abordar este desafío, es una buena idea implementar una estrategia basada en la creación de fichas técnicas. A través de la investigación en internet y la consulta de libros de programación, se pueden elaborar resúmenes concisos que condensen la información esencial en una sola hoja. Estas fichas servirán como una referencia rápida para consultar la sintaxis correcta cuando surgían dudas. Por ejemplo, elaborar mapas mentales sobre las funciones en JavaScript, clasificándolas por tipo y documentando cómo aplicar estilos a objetos mediante este lenguaje. De esta forma, cada ficha técnica resumiría la sintaxis específica para una funcionalidad concreta.
Este enfoque, aplicado a todas las funciones, la creación de objetos, las animaciones, los eventos y el control de datos permite compilar una valiosa colección de referencias que facilitan la consulta rápida y la resolución de problemas, minimizando la necesidad de búsquedas extensas en internet. Por lo tanto, es altamente recomendable la elaboración de fichas técnicas como una herramienta práctica para acceder a la funcionalidad y al ecosistema de un lenguaje de programación de manera eficiente. Además que el hecho de escribir estos datos ayuda a la concentración y permitirá un mejor aprendizaje.
Una vez elaboradas las fichas técnicas, es una gran idea, especialmente en el desarrollo web, estudiar frameworks y librerías como React, Vue (JavaScript) o Angular (TypeScript). Esto permite una mayor familiarización con las prácticas actuales de la industria. Estas herramientas agilizan el desarrollo de sistemas mediante el uso de plantillas, lo que reduce la cantidad de código que se debe escribir.
La recomendación es comenzar el estudio de la programación con HTML, CSS y JavaScript. Una vez dominados estos lenguajes y sus correspondientes fichas técnicas, se debe continuar con el estudio de librerías y frameworks para conectar con las tendencias del sector. Si se desea explorar un lenguaje de backend diferente a JavaScript, se puede elegir otro lenguaje y aplicar la misma metodología de las fichas técnicas.
Una estrategia eficiente consiste en copiar la ficha técnica de JavaScript y adaptarla al nuevo lenguaje, como Python, actualizando los detalles específicos. Este método ahorra tiempo y facilita el aprendizaje de nuevos lenguajes, fortaleciendo así el currículum y el portafolio.
Es importante destacar que la programación, en sí misma, es accesible y se puede aprender con relativa facilidad. Sin embargo, el resultado final del desarrollo de software a menudo se asemeja a una forma de arte. La interpretación del arte puede ser subjetiva y compleja, lo que a veces lleva a considerar a los programadores como figuras intelectuales, debido a la naturaleza creativa de su trabajo. Incluso el uso de plantillas implica un proceso de diseño que forma parte de este ecosistema artístico. Por lo tanto, para lograr una expresión creativa efectiva en la programación, es fundamental construir primero una base sólida de conocimientos.
Como ingeniero de software actualmente estoy trabajando en el desarrollo de un sistema operativo para mi empresa, que planeo lanzar como un launcher en Google Play Store. Este sistema operativo consta de 30 aplicaciones que cubren las necesidades comunes de los usuarios de teléfonos y tabletas. Estas aplicaciones permiten realizar diversas actividades, tanto de oficina como académicas, y han contribuido a enriquecer mi portafolio, mostrando mis habilidades como diseñador e ingeniero de software.
Inicialmente, utilicé dibujos que hice a mano, que luego digitalicé y remezclé, empleando aplicaciones como MicroLab para generar diferentes versiones y lograr una composición más compleja. Posteriormente, trasladé estos dibujos a Spline un moldeador, esta es una plataforma para crear objetos 3D, donde desarrollé editores para diversas funciones, como la creación de presentaciones visuales para redes sociales, editores de texto, de notas, de imagen y video, e incluso una calculadora.
Esto me permitió añadir un toque personal y diferenciarme de las aplicaciones convencionales. Los dibujos creados y editados en Spline se exportaron y se integraron como recursos visuales en las aplicaciones. Además, incorporé animaciones generadas con inteligencia artificial para los diseños gráficos y los elementos artísticos de las aplicaciones. Todo esto se implementó con HTML, CSS y JavaScript en un documento que luego convertí a formato Android mediante una herramienta web, permitiéndome publicarlo en la Tienda de aplicaciones de Google.
Este enfoque ofrece una mayor libertad creativa en el desarrollo de aplicaciones, ya que, si bien Kotlin es el lenguaje nativo de Android, para proyectos más avanzados o con un fuerte componente artístico, resulta ventajoso utilizar otros lenguajes y luego integrarlos en Android Studio, el entorno de desarrollo para aplicaciones Android. Android Studio genera el archivo de la aplicación, listo para ser subido a Google Play Console, donde se publican las aplicaciones.
Recomiendo encarecidamente este proceso. Mi interés por desarrollar mi propio sistema operativo surgió a partir de mi experiencia temprana con Macromedia Flash 8, donde experimenté con la creación de interfaces interactivas. Este proyecto representa la realización de ese sueño. Animo a otros a desarrollar sus propias ideas y a expresarse de forma auténtica, creando productos de alta calidad que ofrezcan una experiencia superior al usuario y que les permitan diferenciarse en el mercado.