Sobre mí
Hola, no puedo (ni quiero) describirme en pocas palabras, así que aquí te va mi historia
Mi nombre es Carlos Talavera. Soy de México. Nací en una ciudad llamada Torreón, en un estado llamado Coahuila por allá del 2002 (ya llovió, lo sé). Desde pequeño me han gustado las computadoras. Cuando era niño tenía una computadora con Windows XP con un hardware bastante modesto, que es la forma bonita de decir que era tremendamente lenta. Así que siempre estaba tratando de hacer cosas para mejorar su rendimiento, leyendo artículos, viendo tutoriales e investigando acerca de cómo hacerla un poco más rápida.
Solía pasar mi niñez jugando un montón de juegos en línea (en el navegador, no se podía de otra forma) porque realmente me encantaba estar ahí. También jugaba mucho con mis amigos en el mundo real, deportes y esas cosas, pero estar frente a una computadora es algo que siempre he disfrutado de verdad. Incluso se siente natural para mí.
Estudié la carrera técnica en programación en la preparatoria. Aprendí los fundamentos y en mi tiempo libre tomaba cursos de desarrollo web porque era lo que más me interesaba. Recuerdo cuando aprendí HTML y CSS con un curso gratuito de Udemy que encontré por ahí. Estaba haciendo el diseño de la página de inicio de un blog que tenía un formulario de inicio de sesión y al final el instructor mencionó que "para hacer el formulario funcional y darle interactividad a la página, es necesario aprender JavaScript".
En ese momento yo estaba emocionado por seguir aprendiendo aquella cosa tan mística que JavaScript parecía ser. Sin embargo, terminé aprendiendo PHP y MySQL primero en otro lugar porque, bueno, es fácil que el camino para aprender sea desordenado cuando no sabes qué necesitas (cosa que hoy por hoy se conoce como el "infierno de tutoriales", o "tutorial hell" en inglés).
Al terminar esos tutoriales, tomé un curso de desarrollo web completo, así se llamaba, y realmente le hacía honor al nombre, cubría HTML, CSS, JavaScript (al fin), jQuery (se nota que eran otros tiempos), PHP y MySQL. El proyecto final era un sitio web para una conferencia, con panel de administración, pagos con PayPal y demás. Bastante completo. Ahí aprendí realmente los fundamentos del desarrollo web.
Seguí tomando cursos sobre las tecnologías que ya conocía y algunas otras que comenzaron a ser ampliamente utilizadas. Leía la documentación de las herramientas que usaba, hacía proyectos y preguntaba en foros cuando algo no funcionaba y no encontraba información en otro lugar, y después de un tiempo comencé a trabajar como freelancer. Mi plan era ganar algo de experiencia como freelancer y aplicar posteriormente a empresas. Quería sentirme más seguro acerca de mi conocimiento.
Le había explicado a mis papás que en la industria de TI no es necesario un título, sin embargo mi mamá me dijo algo que me marcaría: "No nos hemos esforzado tanto como para que no tengas un título". Así que, con la ayuda de mi hermano mayor, encontré una universidad en línea que me ofrecía la posibilidad de estudiar ingeniería en sistemas computacionales con la flexibilidad que necesitaba para poder seguir aprendiendo sobre los temas que a mí me interesaban, realizar proyectos y complementar con lo que la universidad me enseñara. La ventaja también era que si tomaba la carga máxima de materias, podía terminar en 2 años y 8 meses.
Casi un año después dejé el freelancing (actualmente solo doy mantenimiento a un proyecto y planeo dejarlo así) para enfocarme en trabajar en la industria y conseguí mi primer trabajo en una empresa. Rápidamente noté que los ritmos de desarrollo y la falta de conocimiento sobre buenas prácticas provocaban lo que se conoce como "degeneración del código", que se refiere a que el código va perdiendo su calidad con el paso del tiempo al introducir más y más funcionalidades, y esto es todavía peor si no se hacen pruebas (en código), lo que tristemente es una práctica común.
También algo que me molestaba (y molesta) bastante es que el ritmo de desarrollo lleva a que falte claridad en los requerimientos, entonces, si no sabes con precisión qué hay que hacer, ¿cómo se puede esperar que se lo "pidas" a una computadora? Este tipo de sinsabores me llevaron a replantearme de qué se trata exactamente desarrollar software. Alerta de spoiler: hay que escribir código para las personas, no para las máquinas.
Así que después de un año decidí dejar la empresa, agradeciéndoles haberme dado mi primera oportunidad en el mundo laboral, para enfocarme en aprender cómo desarrollar software verdaderamente sostenible (sí, esa es la palabra), que sea fácil de cambiar y de entender. Pero el conocimiento es inútil si no se comparte, así que escribo en un blog para transmitir mi aprendizaje, no solo sobre código sostenible, sino sobre lo que sea que haya aprendido en mis tropiezos al desarrollar software y que quiera compartir aquí para que ni tú ni nadie más se quiebren la cabeza con el mismo problema.
Espero que este conocimiento trascienda y quede plasmado en los proyectos de todas las personas a las que alcance, y también en los futuros proyectos que yo mismo desarrolle como parte de mi aprendizaje o de futuras oportunidades laborales en donde pueda ayudar a empresas y personas a través del software. Al final del día ese es mi objetivo, tener un impacto positivo en el mundo a través de líneas de código que cuenten la historia de todas las personas involucradas.