Mis primeros 6 años después de la universidad
Published: 2021-04-06 05:54:19

Hola soy Miguel, vivo en México, y estudié la licenciatura en Informática en la universidad. En diciembre de 2014 terminé el último semestre de la carrera y decidí buscar trabajo de programador, aún no sabía en que especialidad quería trabajar, solo que me urgía trabajar.
Después de 2 meses de entrevistas y exámenes en diferentes empresas, fui a una entrevista en dónde buscaban un programador web. Tuve suerte en que el examen que me pusieron era sencillo (crear un login en php y enviar los datos a una base de datos), pues ya me habían tocado exámenes muy difíciles para mi grado de dominio de los lenguajes de programación que conocía (c, c++ y php).
Obtuve el trabajo y hoy llevo 6 años en esa empresa, a continuación, describo lo que hice en cada año y lo que aprendí en base a mis errores:

###Primer Año
Mi prueba de fuego fue realizar un memorama en html5 puro, la empresa se dedica a crear cursos elearning con actividades en html5, no sabia usar para nada jquery, lo aprendí a usar, no sabia de librerías de javascript, asi que tuve que ingeniármelas haciendo código para resolver el random de la tarjetas, el girado de la tarjeta del memorama, el detectar dispositivos moviles o resoluciones distintas, etc.
Después aprendí a usar una herremienta de Adobe que se llamaba adobe edge animation (creo), creabas paginas html5 a apartir de un programa de diseño, insertaba código, creaba frames de animación y el proyecto en dónde utilice ese conocimiento fue para convertir de flash (action script) a html5 unos cursos que ya se habían hechos anteriormente. Ese fue mi trabajo durante ese año, convertir actividades diseñadas en flash a html5 y llegue hasta programar actividades en action script.

### Segundo año
Comencé a incursionar en el mundo de javascript en código nativo, empecé a usar las nuevas características de html5, como la geolocalización, local storage e indexedDB. Realicé una calculadoras de ingresos y gastos, que se guardan en local storage e indexedDB, pues estas calculadoras solo tenían un espacio designado en la pagina del cliente, sin acceso a lenguajes backend.
También comencé a conocer el estándar SCORM y a crear pequeñas funciones para guardar el avance de los cursos elearning en el LMS. Comencé a conocer Moodle en sus tripas, me encargaron realizar una suite de reporteo de las actividades del SCORM dentro de moodle y obtener un reporte mas gráfico del avance de los usuarios a través de las diferentes actividades del curso - simulador que había realizado la empresa. Aquí fueron mis primeros dolores de cabeza y sensación de arrepentimiento por haber elegido querer ser programador. Las bases de datos no eran mi fuerte, me costaba la lógica en php para tratar la información obtenida de la base de datos; hacia y des hacia los cambios no conocía git, perdía código que resolvían algunas cosas, y decidí hacer respaldos de cada cambio que realizaba, tenía una versión estable y varias versiones de prueba. Restauraba la base de datos en mi ambiente de prueba constantemente por que el cliente tenia en producción el sistema y los reportes no arrojaban la información necesaria, fueron meses de mucho estrés y desaliento en algunas ocasiones.

### Tercer año
Comencé con las instalaciones y configuraciones de moodle en servidores linux, no sabía nada de administración de sistemas, aunque usaba ubuntu en mi computadora personal, el primer contacto con un cliente que necesitaba que le instaláramos un moodle en su servidor centos fue algo muy difícil, gracias a un programador avanzado y con conocimientos bastante sólidos en administración de sistemas pude realizar la tarea. Me costaba saber por que no salia a internet mi yum install, ja ja ja ahora me da risa, por que no se veía mi pagina en el navegador, pues solo se veía welcome to apache, je je je y así muchas cosas por el estilo que los administradores de servidores conocen a la perfección. Practiqué bastante las instalaciones de Moodle en servidores virtualizados hasta que el proceso lo hice sin problemas, pero eso no bastó, pues en años adelante me tope con configuraciones mas complicadas.
Realicé una plantilla de curso elearning en html5, donde solo se debía colocar la etiqueta de la imagen y esta se animaba mediante jquery y greensock; había un código heredado de otras plantillas que re-dimensionaba el contenido, basado en la resolución de la pantalla. Ademas de crear varias funciones para cambiar de pantalla, guardar el avance, resetear el curso, obtener información del usuario desde el LMS, etc. Funcionó bastante esa plantilla para mi gusto, tal vez para el de mi jefe no, je je je, pero era funcional.

### Cuarto año
Se comenzó con la expansión de la empresa, abarcar mas productos, crear software, ofrecer mas servicios, etc. Se contrató a un nuevo programador, con bastantes habilidades técnicas y muy dedicado. A mi me dejaron para atender a clientes, instalaciones de Moodle, deje de programar y me dedique al trato con el cliente, con algunas incursiones en revisión de servidores para checar configuraciones de moodle, hasta el momento en que llegó un cliente que nos pidió un LMS de videos y evaluaciones, le dijimos que si lo podíamos hacer pero en php, lo acepto y se realizó, gracias al otro programador logramos concluir el proyecto con éxito, yo solo le ayude en las cuestiones del frontend, mientras que el hizo todo el backend y sección administrativa. Después regreso el mismo cliente con el mismo proyecto pero en C#, ¡¿WHAT?!, lo conocíamos, pero no lo practicábamos ni lo dominábamos, pero bueno, se acepto ese proyecto y el colmo: el proyecto se debía terminar en 3 meses, con una sección de CMS; para quedar claros ¡¡¡era un LMS y CMS juntos en tres meses!!!. Fallamos, no teníamos la experiencia, ni la capacidad técnica, solo eramos dos programadores, aunque entraron varias personas a auxiliar, la mayoría solo sabia lenguajes frontend, nadie conocía cómo trabajar en un ambiente de c#, sql server, y demás chunches que tiene el desarrollo sobre tecnologías microsoft. Nos penalizaron por todo el tiempo que tardamos y no lo entregamos completo, nos quedamos como al 70 u 80 %. Se desesperó el cliente y metió programadores de su equipo para solventar el problema. Aprendizaje: nunca aceptes proyectos de tecnologías que no conoces. Hasta el momento veo vacantes de trabajo que solicitan programador web en c# y me viene a la mente ese proyecto en el que fallamos.

###Quinto año
Comenzamos el desarrollo de plugins de reportes e información analítica para Moodle. Eso si lo sabíamos hacer, tal vez la estructura de los plugins no tanto, pero sacar información de la base de datos de moodle y presentarla en una tabla o en gráficas no sonaba tan difícil de hacer, y en efecto no era difícil. Lo difícil fue la interacción con el cliente, cambiaba de opinión de lo que necesitaba, pedía algo básico primero y después lo complicaba, no terminábamos nada, por que siempre había algo que añadir o algo que no hacía. Tuvimos muchas juntas para convencer al cliente de que eso era lo que había solicitado al principio, hasta que decidimos hacer documentación de entrega de proyecto parcial, con esto logramos que lo que se le entregara fuera incrementando el avance de proyecto por que ya habíamos cumplido requerimientos solicitados y documentados. Puedo decir que esto nos ayudo en organización y administración.
Entró un nuevo programador novato, se le enseño lo mas posible pero se fue el primer programador. 

###Sexto año
Moodle se hizo famoso por la pandemia, pero no nos buscaban tantos clientes como lo habíamos pensado, así que se nos enfocamos en proyectos internos, en tecnologías como vuejs, rethinkdb, meteorjs. Aprendí mucho de administración de sistemas, aunque aún falta mucho más. Aprendimos muchas cosas sobre cómo funcionan las apis de moodle y la forma de estructurar plugins en moodle.