UNA EXPERIENCIA PERSONAL

INICIOS

Entré en el mundo de las páginas web motivado por una necesidad bastante puntual y era utilizar bases de datos de forma dinámica, mientras desarrollaba una aplicación de costos integrando el trabajo de varios usuarios el requerimiento surgió por la necesidad de que varios usuarios pudieran tener acceso a una misma base de datos y —al menos para ese momento— el programa sobre el cual estaba desarrollando la aplicación sólo disponía de bases de datos nativas (es decir que cuando un usuario utilizaba la base de datos quedaba bloqueada entonces otro usuario tendría que esperar a que el primer usuario cerrara la base de datos para poder acceder a ella) situación que me llevó a buscar una solución para que varios usuarios pudieran acceder a la misma base de datos de manera simultánea.

En el foro del programa sobre el que estaba desarrollando la aplicación me ayudaron enormemente —en este punto debo agradecer inmensamente a Mauricio Baeza Servín de quién he aprendido mucho y a quien admiro y respeto como profesional y persona, espero poder dedicarle algunas líneas para reconocer el trabajo, dedicación y los aportes que han permitido a muchos programadores crecer y desarrollarse profesionalmente—, en el foro se me mostró una dirección distinta que me permitió abordar la problemática con una óptica diferente y de paso me abrió un mundo nuevo de posibilidades.

Para solucionar el problema de acceso a las bases de datos encontré una entrada —con el nombre de usuario “ck-iridium“ no conozco el nombre de pila— donde explicaba de manera bastante sencilla pero a profundidad como crear una conexión entre “LibreOffice” (también aplica para “OpenOffice”) y MySQL, por medio de este tipo de conexión se podía trabajar una base de datos multiusuario con lo que podía solucionar el problema que se me presentaba pero me planteaba un nuevo reto al desconocer la temática que se me planteaba.

Al tratar de entender a lo que me enfrentaba empece a investigar sobre esta nueva tecnología —nueva para mí por supuesto— entonces surgieron más preguntas que respuestas… ¿Qué es MySQL?, ¿Cómo funciona? , ¿Cómo se usa?, en fin un sin número de interrogantes que más que solucionar la problemática en la que me encontraba me llenaban de incertidumbre y me planteé la posibilidad de abandonar esta dirección y limitarme a trabajar con bases de datos individuales o regresar a tablas y archivos planos con todo el retraso que esta decisión podría haber acarreado para el sistema que estaba desarrollando en esa época. De todas maneras me di la oportunidad de investigar y allí arrancó todo el proceso.

EVOLUCIÓN

Investigando sobre bases de datos relacionales —concretamente MySQL— me encontré con nuevos lenguajes de programación —con “nuevos” me refiero a que son o eran nuevos para este servidor— y con algunos con los que había tenido contacto de forma tangencial, bastante superficial en los que no había profundizado demasiado, el primero era SQL (Structured Query Language por sus sigla en inglés) que utilizaba de forma rudimentaria en paquetes informáticos específicos a nivel de usuario más que como programador, durante la investigación me encontré que MySQL por sí mismo no es comúnmente utilizado sino que popularmente se asocia con lenguajes como PHP o a servidores dinámicos como el Apache entre muchos otros lenguajes de programación, servicios, paquetes y plataformas que en conjunto representan herramientas muy poderosas para desarrollar los sistemas que tenía en mente pero que por las limitaciones —vale la pena aclarar que con limitaciones me refiero a las que yo mismo me había impuesto al sólo concentrarme en aplicar unas pocas— de las plataformas de tecnología que usaba en el momento no había llevado a cabo o que consideraba que estaban reservadas para desarrolladores y programadores de un nivel muy superior al mio y que yo no tenía la capacidad para desarrollar.

En el proceso me lleve una gran sorpresa al descubrir que existe una gran comunidad de programadores, desarrolladores y organizaciones que difunden el conocimiento sobre estas tecnologías y que no hay que ser un genio sobrenatural para trabajar con estos sistemas y se me abrió un universo de posibilidades para avanzar en las aplicaciones que venía desarrollando y en otras que tenía en mente. Inicialmente empece a trabajar con algunas sentencias de SQL desde la suite de ofimática que estaba trabajando pero se me iba quedando corto por lo que incursioné con algo de PHP entonces fue cuando llegaron términos como “LAMP” y “WAMP” que son los acrónimos de “Linux – Apache – MySQL -PHP” y “Windows – Apache – MySQL – PHP” respectivamente y corresponden a una infraestructura tecnológica compuesta por un grupo de soluciones integradas o acopladas que se han convertido en una parte fundamental de los sistemas que he venido programando.

Tomando como base a “LAMP” y “WAMP” —refiero a ambos porque utilizo los dos sistemas operativos tanto “Ububtu” en Linux como Windows (en varias versiones)— empece a utilizar varios lenguajes de programación (o pseudolenguajes como algunos autores prefieren llamarlos) como HTML, PHP, Javascript, Jquery, CSS, entre otros pero sin olvidar el origen que era la integración con LibreOffice y OpenOffice, como es natural utilice la herramienta que tenía a disposición: INTERNET en principio realizando búsquedas de los problemas puntuales tal y como se me iban presentando e implementando las soluciones a medida que las iba encontrando algunas de forma sencilla y otras dando y dando vueltas o sin éxito en algunas oportunidades.

El resultado eran soluciones fragmentadas y porque no decirlo frágiles porque no existía coherencia entre la solución integrada a una aplicación concebida en un contexto diferente, la aplicación en la que trabajaba tenía una estructura definida pero debido a que buscaba soluciones puntuales extraidas de un entorno diferente probaba y lo que me funcionaba lo implementaba o adaptaba pero “CUIDADO” no podía modificar mucho las rutinas capturadas porque dejaban de funcionar y en muy pocos casos podía utilizarlas en otra parte porque tampoco funcionaban correctamente y tocaba volver a buscar otra vez para encontrar algo que fuera funcional luego de dar tumbos y tumbos o utilizando plantillas que iba encontrando en la red —que debo reconocer que con bastante éxito— decidí iniciar algunos tutoriales sobre los temas relevantes, en ese momento me percaté de muchos de los errores cometidos.

CONSOLIDACIÓN

Siguiendo algunos tutoriales comencé a encontrar errores básicos que cometí en muchos de mis programas, lo difícil que resultaba hacer mantenimiento de las rutinas que tenía, observar que aplicaba conceptos de diferentes versiones en las distintas plataformas —cuando se busca en Internet la gran mayoría de las veces se desconoce cuando fue publicado un artículo o a que versión es aplicable— o si correspondía a conceptos obsoletos con los consecuentes problemas que esa mezcla puede producir, también pude encontrar tutoriales muy buenos, buenos, mediocres, malos, muy malos y perversos de donde extraje aquello que me servía y descarté lo que no me aportaba en ese punto ya tenía una estructura mas o menos bien formada que me permitía —o mejor que me permite actualmente— discernir entre lo que debo aprovechar y lo que debo desechar.

Después de mucho trasegar por la red, de encontrar y de perderme por la “Word Wide Web”, de invertir muchísimas horas, meses y años, de practicar, practicar y practicar logre encontrar recursos académicos que me permitieron consolidarme dentro de los que puedo enumerar la documentación oficial de cada recurso, cursos formales, manuales de referencia o tutoriales responsables que me han permitido crecer como desarrollador y disponer del material apropiado y adecuado con lo que puedo decir que me encuentro en el camino correcto y digo que estoy en el camino correcto porque no creo que la formación en el área de sistemas tenga algún final —ya he completado algunos cursos que me han válido para tener alguna certificación pero eso no implica que haya terminado mi capacitación— y sólo puedo decir que alguien dispone de una buena estructura mental que le permite mantenerse en el rumbo y siempre se puede aprender algo mas sobre todo si se tiene en cuenta que los sistemas están en constante avance además siempre se puede mejorar una aplicación por lo que tampoco se puede decir que alguna aplicación este terminada sólo se puede afirmar que cumple con los objetivos planteados.

Gracias a la multiplicidad de recursos de que dispongo actualmente puedo decir que he logrado identificar en donde estoy caminando que implicaciones precedentes o consiguientes tiene cada solución que aplico y creo que logré estructurarme como programador después de mucho esfuerzo y dedicación lo que implica un mayor compromiso con las personas y empresas que han confiado en mi trabajo siempre buscando la mejora continua.

CONCLUSIÓN

Pertenezco al grupo de desarrolladores que se han formado de manera autodidacta aspecto que me llena de orgullo aunque no hay que confundir el concepto informal con desordenado o algo similar por el contrario para llegar a implementar soluciones adecuadas una formación autónoma ofrece algunas ventajas como responsabilidad, dedicación y compromiso que derivan en procesos estructurados y aplicaciones con objetivos claros y enfocados a obtener resultados.

La comparación y verificación de las fuentes de información son aspectos fundamentales para que la implementación de una tecnología informática pueda llevarse a cabo de forma correcta y tomar como base la documentación oficial de organizaciones acreditadas es una buena práctica aunque en un comienzo resulte abrumadora y aparentemente demasiado técnica o avanzada pero con el tiempo se hace más accesible y al entender el funcionamiento se convierten en herramientas de consulta y apoyo importantes, en este aspecto recomiendo algunas que me han servido bastante como la documentación oficial del “World Wide Web Consortium (W3C)” y las herramientas para desarrolladores de “Mozilla Foundation” en cuanto al desarrollo de aplicaciones web o el foro oficial de “OpenOffice”.

Una conclusión a la que he llegado en estos años de trabajo es que no hay una tecnología, lenguaje de programación o plataforma única o mejor o peor que otra pero sí la integración de varias —por no decir todas— de ellas proporciona un horizonte muy extenso que permite ampliar las aplicaciones y con un poco —o mejor, bastante— esfuerzo se puede abordar cualquier proyecto y obtener resultados sorprendentes, en mi caso la integración entre el desarrollo de los navegadores, las aplicaciones web —tanto a nivel de Internet como de Intranet— los servidores dinámicos, HTML, PHP, Javascript, CSS y las suites de oficina como el LibreOffice entre otros me han dado satisfacciones que no había imaginado y he podido llevar a buen término proyectos que inicialmente parecían imposibles.

Cuando se trata de programación, tecnologías de la información o desarrollo de sistemas hay un inicio pero nunca un final siempre hay algo que aprender, algo que desarrollar y esta área es un ente activo que siempre esta evolucionando donde el Internet a potencializado su crecimiento de manera exponencial pero no todo es positivo, también hay demasiada información que podría considerarse basura —sin anotar las acciones de los que de forma mal intencionada pueden hacer mucho daño— o información desactualizada por lo que hay que abordar el tema con precaución pero sin miedo, aprender a identificar lo que sirve o lo que hay que desechar por lo que no se puede tomar como ley lo que se encuentre, siempre se debe cuestionar, evaluar, comparar y si se puede verificar para no “morir” en el intento.

Mis mas sinceros agradecimientos a todos aquellos que de forma directa o indirecta han contribuido desinteresadamente a mi crecimiento tanto personal como profesional en especial a Mauricio Baeza Servín autor, entre muchas otras obras y herramientas, del libro “Aprendiendo OOo Basic” que aborda la programación de macros en “Calc” para “OpenOffice” y por supuesto aplicable a “LibreOffice” que ha sido un pilar en en desarrollo de aplicaciones sobre estas plataformas, también a Sergio Luján Mora, profesor de informática en la Universidad de Alicante en España además de autor de varias obras y cursos que gracias a su trabajo pude canalizar mi aprendizaje y avanzar de forma organizada en la capacitación de desarrollos web, al mencionar a estos dos eruditos no me olvido de otras personas que también me han brindado su apoyo y de quienes he aprendido mucho pese a que desconozca el nombre de pila de mucho de ellos, fornelasa (Federico), xiseme, RMG, RASAPA, sólo para nombrar algunos y espero me disculpen aquellos que por falta de memoria he omitido pero con los que igualmente no puedo sino estar agradecido. Finalmente puedo anotar que la comunidad de desarrolladores es fundamental para tener éxito y me atrevería a decir que es más útil que cualquier educación tradicional puesto que la comunidad representa la fuente primaria del conocimiento.

Una respuesta a «UNA EXPERIENCIA PERSONAL»

  1. Esta sección está dedicada a hacer un auto análisis del proceso que he recorrido en el tema del desarrollo web y de la programación, área que inicié de forma autónoma por lo que mi avance ha sido influenciado por múltiples factores….

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *