Seguidores

miércoles, 14 de agosto de 2013

La graduación de pregrado

Terminé el colegio con 15 años (1989) e ingresé a la Universidad inmediatamente (Feb de 1990). Salí cuando tenía aun 20 años (Dic de 1994) y súper emocionado decía para mi mismo: "terminé la carrera". Esto solo era un reflejo de la inocencia que uno tiene cuando no esta suficientemente documentado y no conoce el mundo más allá de su propia nariz. Sin embargo, ya había salido un par de veces del pais y eso fue suficiente para percibir que había algo distinto entre lo que me explicaban en clase y lo que en otros países llamaban computación. No tenía la suficiente documentación para explicarlo en un auditorio pero se olía algo mal.

Sin embargo, habían varias cosas que aun no entendía. Entre ellas recuerdo:
  1. ¿Por qué los profesores eran en su gran mayoría de otras carreras por ejemplo Ing Industriales y Químicos?
  2. ¿Por que muchos hablaban solo del mercado local?
  3. ¿Por qué les gustaba hablar mas de gestión y de administración que de Software?
Lo que yo quería hacer siempre es Software y por eso empece a trabajar dando clases de C++ (aprox 1992-93) en el Instituto de Informática de la UNSA donde se cruzó en la vida mi primer mentor a nivel profesional: el Dr. Jorge Tamayo que fue el responsable de instalar el primer acceso a Internet en Arequipa. Recuerdo que todo el centro de Cómputo de la UNSA funcionaba en UNIX lo cual era súper radical para la época.

Un buen dia, mientras estaba dando clases apareció el Ing Tamayo y me dijo que necesitaba resolver un problema de búsqueda en textos grandes desestructurados. En otras palabras, buscar cualquier palabra en archivos gigantes de texto donde cada registro tenía longitud variable y cada registro también podía tener un número variable de campos. Basicamente lo que hace Google o Yahoo! cuando busca en páginas con estructura y tamaño variable.

Era un problema de Estructuras de Datos pero resulta que ese curso me lo había enseñado un Ing Industrial que copiada de un papel lo poco que sabia con respecto al tema. Terminé el curso pero resulta que no sabía mucho del tema ... menos para resolver un buscador con la velocidad que responde Google (que para el caso ni existía en ese momento).

Sin embargo, a pesar de que en la U no me enseñaron C++ yo hacía todo lo que podía en C/C++ y eso resultó ser fundamental para resolver el problema pero no fue resultado de la formación en las clases. Fue casualidad. El asunto es que después de algunos meses quebrándome la cabeza "inventé" una estructura de datos que resultó ser muy rápida y podía encontrar lo que sea en cualquier tamaño de BD con tiempos muy cortos .. siempre en el orden de milésimas de segundo. Nada de lo que usé fue algo que saqué de las aulas ...

Esa fue mi tesis ... 100% de Computación presentada en una carrera donde les gustaba hablar más de gestión. Recuerdo que no sabía escribir y menos una tesis. Simplemente no nos habían enseñado a hacerlo en la carrera y yo era medio flojo para escribir. Lo mio siempre fue mas hacia números :)

Por no saber escribir una tesis simplemente junté unos 10 gráficos que tenía producto de haber corrido el buscador y los puse en un documento en word. Eso dio algo de 15 hojas pero con carátula y todo dio unas 20 páginas que llevé pensando: "terminé mi  tesis!" al final de cuentas sabía:
  1. Cómo buscar cualquier palabra en un texto gigante en tiempo constante sin importar el tamaño del mismo. Esto significa se podía mantener un tiempo constante aunque el texto creciese 1 millón de veces ... 
  2. También sabía como hacer que cuanto más indexas más se comprime el índice con relación al texto indexado. Esto tiene un potencial enorme para grandes volúmenes.
  3. También sabía como hacer que el tiempo de respuesta fuese independiente del número de ocurrencias que una búsqueda podía devolver. Significa que no importaba si encontrabas 5 ocurrencias o 1 millón ... el tiempo siempre puede ser una fracción muy pequeña muy por debajo de un segundo.
Bueno, en otras palabras ... había inventado un motor de búsqueda con la misma velocidad constante que tiene Google 4-5 años antes de que Google y en ese tiempo eso era algo interesante ... de hecho recuerdo haber visto navegadores un par de veces y nunca vi algún buscador en esa época (1993-1994). Mi pecado fue hacerlo donde otras personas no sabían de computación. Si hubiera hecho esto en Stanford seguro que las historia sería diferente pero todos mis profesores eran Industriales y solo uno vió que esto era algo interesante (Percy Huertas) y fue el que me dijo: "esto puede ser una tesis de maestría". Para mi sonaba a broma porque no tenía idea de la magnitud de lo que se me había chispoteado y mis docentes tampoco !

Pues bien, presente mis 20 hojas y alguién me dijo: "esto no va a pasar ... debes ponerle más texto". En mi inocencia (mezclado con desconocimiento) salí de la universidad y me fui a una tienda de estas que tipean textos. Yo andaba con un par de libros de estructuras de datos y le pedí al muchacho que me tipee 1 capítulo de cada libro. Al dia siguiente llevé la tesis con más de 100 páginas que tenían el texto literal. Recuerdo, por ejemplo, que el libro tenía citaciones bibliográficas pero si alguien se hubiera dado el trabajo de ver la bibliografía al final hubiera visto que las mismas no estaban ahí ... fue un tipeo literal de los capítulos de ambos libros.

Tengo la impresión que el análisis de la tesis era hecho por peso así que el comentario al dia siguiente fue: "esto es otra cosa ! ahora si !". Así que presenté el plan de tesis (20 hojas y fue aprobado) sin que me corrigieran ni una coma.

Luego presenté al borrador de la tesis de acuerdo a un formato absurdo que me pedía: Hipótesis, variables dependientes y variables independientes, etc. Yo no sabía nada de tesis pero sabía que eso no encajaba para nada y por sugerencia de algún profesor iluminado (que solo tenía nociones de computación pero no la dominaban) puse algo así como:
  • Hipótesis: Es posible buscar en bases de datos textuales de forma rápida.
    Comentario: Ya lo había hecho ! ya sabía que era posible, Dónde está lo hipotético?
  • Variables independientes: El texto donde haríamos la búsqueda.
  • Variables dependientes: El tiempo de búsqueda.
    Comentario: Recuerdan que les dije que el tiempo era independiente del tamaño de la BD? Bueno les explique de varias formas pero me decían que si no ponía en ese formato no pasaría. Estaba contra la pared y tuve que ponerlo.
  • Variables de Localización Geográfica: En la biblioteca de sociales de la Universidad Nacional de San Agustín.
    Comentario: Acaso esto no funcionaría con texto de otra fuente?
  • Variables de Localización Temporal: En el mes de ... hasta el mes de ... de 1994.
    Comentario: No puede ser que un docente universitario no se diese cuenta de lo absurdo que era esto. Acaso en otro mes no funcionaría.
Como ya dije antes ... o ponía eso o no me aprobaban el borrador y nunca sustentaría la tesis para Ciencia de la Computación (llamada por error Ing de Sistemas en la universidad donde estudié el pregrado).

En esos dias, mi papá llegó a la casa diciendo: "He conocido a un Ingeniero de Sistemas de la UNI que está trabajando en una empresa grande en software y viene por Arequipa cada semana, porque no le consultas sobre tu tesis ... seguro que te va a ayudar mucho".
Yo dije, seguro que sí ! y marqué un encuentro con el Ingeniero de Sistemas de la UNI, le expliqué lo que había hecho y cuando terminé de explicarle mi estructura él tenía la cara de Condorito cuando dice: "Exijo una explicación !". No tenía idea de lo que le había explicado. Esto fue algo que no entendí en ese momento y tampoco le hice caso. Al final de cuentas no me dijo nada útil ni inútil. Simplemente hablábamos de temas diferentes. El hablaba de gestión y otras cosas raras y yo había hecho algo de computación.

Yo pensé que me podía graduar en Enero pero como estaba trabajando todo se estiró hasta que el 15 de Octubre de 1995 aproximadamente renuncié y en 15 dias estaba listo para defender. Aquí un comentario a los chicos que quieren estudiar y trabajar: Cuando eres estudiante lo mejor es estudiar y no trabajar. Hay un momento adecuado para todo en la vida. Agarrar plata mueve la cabeza y hace pensar que la "tesis" puede ser después ... de un momento a otro se dan cuenta que se les pasó 5 años y el tema ya esta fuera de vigencia.

Pues bien, presenté el borrador y voila ! me lo aprobaron sin corregirme ni una sola coma (los 3 jurados de borrador eran 3 Ing Industriales). Luego sustenté y también aprobé por unanimidad. Recuerdo que los jurados fueron Ing. Industrial (que enseñaba Estructuras de Datos que solo escribía lo que traia en unas copias o libros que tenía), Héctor Velarde (Ing Químico buena gente) y Percy Huertas (que era Licenciado en Estadística y había estudiado algo de la maestría en la U de Chile).

Recuerdo que uno de los jurados me dijo: "Señor, escriba en la pizarra lo que le voy a dictar ...". Me dictó 5 palabras y me dijo: "Arme en la pizarra el árbol que propone con esas palabras !". Aquí pensaba: "No leyó nada de la tesis y tampoco la entendió". Lo que era más resaltante era que él dictaba Estructuras de Datos pero claro estaba que lo suyo era otra carrera.

Aqui quiero hacer un comentario a parte en relación a la institución donde estudié el pregrado (www.ucsm.edu.pe) pues hay gente que piensa que los odio y no es así. Siento cariño por la institución pero siento que se han quedado atrapados y sin actualizarse en varios aspectos ... también debo decir que si me pidiesen que los ayude mi mano estaría siempre tendida. El problema es que me parece que ellos no desean que alguien los ayude y por eso se que varios prefieren que no lo haga. En todo caso mi mano esta abierta con relación a ellos y me interesa que sean una institución más competitiva en Computación y los ayudaría con mucho gusto.

Creo también que no fue muy "estratégtico" de su parte que un egresado suyo tenga el ingreso a la docencia bloqueado en la UCSM. Creo que eso si fue un error y lo hicieron con varios que podrían haberlos ayudado pero los espantan o tratan de que no entren cuando deberían estar peleándose por atraerlos. Cosas de la política cuando se mete en la universidad creo !

Luego de 15 días estaba con el título de una carrera que no correspondía ni al tema de mi tesis ni a lo que explicaban al entrar y creo que tampoco correspondía a lo que ellos entendían por computación. En fin recibí contento el diploma, estaba sin trabajo pero ya tenía claro que al siguiente mes intentaría salir del país y eso me dejaba contento ... Por alguna razón no me causaba atracción la idea de entrar a la SUNAT que abrió concursos en esos dias justamente ... felizmente que no entré ... me parece super aburrido el trabajo rutinario de oficina :-)

Yo estaba contento y recuerdo que con los amigos de la infancia y de la universidad festejamos hasta el dia siguiente en mi casa. Recuerdo haberme ido a dormir a eso de las 7am y recuerdo por ejemplo que Guillermo Calderón estuvo entre ellos ... recuerdo también que lo llamaban desde su casa y que tardó mucho en que lo encontrasen :-) creo que luego de salir de mi casa se quedaron en el parque :) En fin era algo para festejar y no esta mal hacerlo así pues al final de cuentas me habían dado un diploma de algo que no era lo que estudié :-) eso es algo al menos anecdótico y como no te sucede todos los dias  !!!! había que celebrar !

Un detalle es que durante mis 5 años de carrera nunca tuve un computador y creo que eso fue algo excelente pues fue una motivación. Recuerdo que me iba a la casa de mis amigos y me pasaba la noche trabajando en sus máquinas mientras ellos dormían. Entre ellos están Oscar Ayala (actual alcalde de Mariano Melgar en Arequipa), Guillermo Saenz, Jorge Félix Herrera, Sandro Suárez, Juan Carlos Herrera, Carlos López Ancasi. Todos ellos también tienen mi gratitud siempre porque me dieron la mano cuando lo necesitaba. Éramos un buen grupo definitivamente.

En el siguiente blog explicaré como conseguí el postgrado.