Seguidores

martes, 3 de abril de 2018

El secreto de CS-UTEC

El secreto de CS-UTEC

En Marzo de 2017 de da inicio a la carrera de CS-UTEC pero esta carrera no tiene una historia "normal". En la gran mayoría de carreras y universidades de todo el Perú uno tiene que pasarse un buen tiempo explicando que Computación no es Ingeniería, qeu no esta por encima pero tampoco esta por debajo y tampoco esta dentro de ingeniería. Aqui no porque antes de que yo llegue ya lo tenían recontra claro. Querian Computer Science.

Arrancamos en Marzo de 2017, sin mucha propaganda, en una universidad denominada Universidade de Ingeniería y Tecnología y de un momento a otro se nos viene una tremenda avalancha de casi 720 alumnos en Marzo de 2017. Una de mis preguntas por varios años siempre fue: ¿Por qué Lima sigue durmiendo y no despierta frente a lo que pasa en el mundo?

Tratando de entender de donde salió esta avalancha percibimos que habían varios factores combinados:

  1. Antes de que yo comience a participar de CS-UTEC y también de UTEC las autoridades y la promotoría ya la tenían clara. Querían una carrera internacional ... no lo que todos aquí siempre han dicho.
  2. Resulta mas especial que siendo una Universidade de Ingeniería las autoridades la tuviesen clara antes de crear la carrera. Eso me ahorró muchísimo tiempo en "convencerlos" pues ya no había necesidad de cambiar lo pre existente. Debo decir que eso es Peru es raro y me llamó la atención. Si ya es difícil encontrar personas de esta línea que la tengan clara imagínense la rareza de encontrar autoridades (que son de otras carreras) que la tenían tan clara. Para mi fue una excelente señal. 
  3. Esta carrera de CS-UTEC es el resultado de una combinación de experiencias previas:
    • La experiencia ya ganada en la construcción de la malla curricular propuesta por la Sociedad Peruana de Computación (SPC) que evolucionó varias veces:
    • Derivada de la malla de la SPC fue naciendo en parelelo la malla de la Universidad Católica San Pablo (UCSP) en Arequipa cuyo secreto de formación y de éxito tambien puede ser leido aquí.
      De nuevo puedo afirmar que no hay "secretos" ... solo hay que hacer cosas de sentido común. Las mallas de San Pablo tambien fueron:
      • CS-UCSP 2006 (derivada de CS-SPC 2006)
      • CS-UCSP 2010 (derivada de CS-SPC 2010)
      • CS-UCSP 2016 (derivada de CS-SPC 2015)
    • También en paralelo, pero desde 2008 se inicia la construcción de la carrera de CS-UNSA en Arequipa
      • CS-UNSA 2010 (derivada de CS-SPC 2010+CS-UCSP 2010)
      • CS-UNSA 2016 (?) (derivada de CS-SPC 2015+CS-UCSP 2016)
    • También antes de 2010 se utilizó parte de este material para apoyar la creacion de CS-UNI a través del entonce director y fundador Dr. Javier Solano pero la carrera pasó por varios ajustes internos debido a las restricciones exigidas por la Facultad de Ciencias. Por esta razón, el resultado observado en CS-UNI no fue creado de la misma forma que las anteriores.
    • Una gran influencia para todo este proceso es nuestra participación en el equipo mundial que hizo las actualizaciones para Computer Science por parte de ACM/CS-IEEE
    • Ahora también estamos en el equipo de Computing Curricula 2020 y ya sabemos lo qeu se viene varios años antes.
  4. Luego de iniciar el proceso de creación de CS-UTEC aparecieron más factores:
    • Un dia conversando con el Director Ejecutivo (~Rector) Carlos Heeren me dice que debíamos formar el Comité Consultivo de la carrera en el Silicon Valley. En este momento tenemos a TODOS los consultores que ayudan a guiar la carrera desde el Silicon Valley y tenemos reuniones periódicas también en Silicon Valley. Esto es algo que cualquier carrera sueña pero también debo decir qeu no fue idea mia. Ya la tenían clara antes de mi llegada.
    • A pesar de ser medio común que hoy en dia cualquier carrera estudie algo de ofimática. También es común observar que carreras de números suelan llevar algunos cursos básicos de programación (básicamente sintaxis sin prestarle mucha atención a otros temas. Sin embargo, en UTEC ya la tenían clara que TODOS deberían estudiar las bases de Computer Science en vez de aprender solo sintaxis de algún lenguaje de programación. Este "pequeño" cambio me fue algo muy difícil de implementar en Arequipa pues no conseguí que se llegue a entender.
      Ahora, paremos a pensar, si ya es difícil hacer que un alumno de una carrera de computación entienda conceptos de programación ...
      Mas difícil es hacer que alguien de Ing Mecánica lo entienda y
      Mas difícil  es qeu lo entienda alguien de Administración (Harvard, Stanford).
      Aquí ya la tenían clarísima !
      Ahí nace el siguiente problema.
    • Una cosa es dictar clases para 30 alumnos y otra cosa es dictar para 300. Resulta que en Harvard dictan para 500 y son un espectáculo de clase con todos prestando MUCHA atención todo el tiempo. Por razones obvias, la siguiente parada fue Harvard, MIT y Stanford y confirmas lo siguiente:
      • Son gente súper súper inteligente
      • Cualquier jefe de prácticas podría tener un doctorado
      • Todos tienen maestrías/doctorados con estudios realizados a tiempo completo
      • La formación en investigación es fundamental para poder adaptarte al cambio
      • Cualquiera tiene 3-4 post doctorados
        pero la diferencia más fuerte recién viene
      • Todos saben enseñar de forma espectacular!
  5. Para saber enseñar necesitas varios factores combinados y por eso resulta difícil ser profesor universitario
    • Debes conocer los temas que dictas a profundidad
    • Debes tener una visión internacional de lo que hablas
    • Debes ser capaz de comunicarte de forma efectiva en varios idiomas
    • Debes ser capaz de comunicarte a través de tu cara
    • Debes ser capaz de comunicarte a través de tus gestos
    • Debes ser capaz de comunicarte a través de tu voz
    • Debes ser capaz de comunicarte a través de tu postura 
    • Debes ser capaz de comunicarte a través de tus ojos ...
      Todo tu cuerpo habla !
    • Debes aprender a hacer el ridículo en público
    • Debes aprender a burlarte de tus propios defectos (auto confianza)
    • Debes saber decir: "no se" cuando no sepas algo realmente y podría ser frente a un auditorio de 700 alumnos
    • Debes perder el miedo a equivocarte
    • Debes ser capaz de mirar a los alumnos de abajo hacia arriba ("quiero aprender de ti") y no de arriba hacia abajo ("pídeme permiso para hablar")
    • Debes ser capaz de poner un cero y también de poner un 20. Me parece ridículo ver universidades donde la máxima nota es 13 porque "tú eres alumno y no me puedes alcanzar". Quien hace eso debe visitar a un psicólogo para superar esos complejos.
  6. Me olvidaba de algo súper importante ... ¿Por qué prefiero que enseñe alguien con doctorado en vez de alguien con 20 años de experiencia en problemas "reales"?
    • Porque casi siempre es solo una disculpa para justificar la falta de un buen grado académico
    • Porque estás en un ambiente académico y ... en un ambiente académico, el grado académico es relevante
    • Ojo aquí que no basta decir: "yo tengo maestria (de final de semana)". El cartón no es lo mas relevante ciertamente pero si una persona ha estudiado 10 horas/semana vs otro que andaba metido como ratón de laboratorio 14-16 horas/dia. es casi casi seguro que el segundo sabe más.
      y probablemente la razón más importante es que:
    • La gran mayoría de veces que un candidato a profesor dice que lo qeu más pesa es su experiencia profesional no se refiere a cosas modernas ni de punta.
      la gran mayoría de veces han venido haciendo lo mismo de forma antigua por los últimos 20 años. Ese tipo de profesor que no sale con frecuencia a otras partes del mundo enseñará cosas obsoletas que van a generar un alumno atrasado dentro de 5 años !
Nuevamente confirmamos que no hay ningún "secreto". Basta aplicar lo que el sentido común indica.
Ciertamente esta historia recién está comenzando en Perú.

miércoles, 31 de diciembre de 2014

Computacion como profesion

​​
Estimados, 

les adjunto un articulo super interesante que acaba de ser publicado en ACM y que tiene que ver directamente con nuestra profesion: Computacion.

Computing: an emerging profession?

Author:Stephen SeidmanTexas State University, San Marcos, Texas
Published in:
Cover Image
· Magazine
ACM Inroads archive
Volume 5 Issue 4, December 2014
Pages 6-11 

Aqui algunas frases que destaco pero vale la pena leerlo por completo.
  • To use a software engineering metaphor, program accreditation can be seen as “validation and verification” of an academic program. It answers the following two questions:
    • Does the name of a program correspond to its nature?
    • Does the program have sufficient quality?
  • When computing emerged as a recognized academic discipline in the 1960s, it came in multiple flavors: computer engineering arose from electrical engineering (circuits, processors, instruction sets), computer science had roots in mathematics (algorithms, theory of computation, numerical analysis),and information systems supported business applications
  • Aqui recuerdo que hace poco tiempo, en una universidad, un docente dijo que Sistemas de Infromacion no se trataba de hacer software (porque lo que buscaban era justificar Ing de SW) y yo dije que Sistemas de Informacion se trataba de hacer software para organizaciones. El resultado es que me acusaron de difamacion tomando como base esa afirmacion mia.Aqui hay otra persona a quien podrian acusar por publicar esto en un articulo de alcance mundial. El dice:This is emphatically not the case in the US and Canada, where computing is not included under the engineering umbrella.
  • Peru tambien es mencionado en el articulo pues el autor ya estuvo aqui algunas veces y se llego inclusive a tener reuniones con el CIP (Juan Fernan Munoz) tratando de entender esta idea confusa que propone el CIP con relacion a meter computacion dentro sin saber justificar esta propuesta mas alla de que hay una palabra en comun....
  • Luego viene una seccion completa que titula: Software Engineering: Forerunner or Cautionary Tale (Ingenieria de Sotware: Corredor delantero o cuento aleccionador).
    Vale la pena ver la definici'on que dio origen al termino Ing de Software: “establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently.”
  • Luego dice: "It clearly has roots and affiliations in computer science, but its name and associations suggest an affiliation with engineering".
    Mas claro que el agua. Esto es como cardiologia y medicina.
  • En el proceso de acreditacion de ABET existe la comision de acreditacion de Ingenieria (EAC) y la de Computacion (CAC). En el articulo menciona que: "The program evaluators visiting a software engineering program are appointed by CSAB, but the team chair is a member of the EAC".
    Esta claro qeu quienes evaluan un programa de SWE son gente de Computacion y no ingenieros.
  • Engineers Canada has trademarked (registrado) the words “engineer” and “engineering” [3]. When Memorial University of Newfoundland attempted to offer an undergraduate degree in software engineering, the university was sued (demandada) by Engineers Canada.
    Esta es una buena idea para el CIP cosa que nadie mas que los miembros del club podrian utilizar dicha palabra (solo los que estan al dia claro y si no pagan les aplican la ley y asi protegen a los puntuales).
  • Fijense tambien qeu indica que un aprox de 40 estados en EEUU actualmente han creado examenes para licenciar (noten que esta es la razon de la palabra licenciado-> alguien que tiene licencia) a profesionales en Ingenieria de Software.
    Tambien menciona el numero exacto de personas que hay tomado este examen: 16 (dieciseis exactamente) y luego tambien menciona que son 1000 con el estandar internacional. Cuantos seran peruanos?
    Indudablemente no se trata de ningun tipo de tendencia a nivel mundial.
    Tambien indica queeste numero se debe a que este examen involucra conocimientos comunes a todo ingeniero: mecanica de fluidos, resistencia de materiales, electricidad, magnetismo y termodinamica.
    Que opinan los defensores de esta tendencia (nula) a nivel mundial? 
  • Aqui hay otra frase super interesante: The resulting Certified Software Development Professional (CSDP) examination was first offered in 2002. Note the deliberate avoidance (evasion) of the words “engineer” and “engineering.”
    Me pregunto si esto es lo que harian en Peru?
  • Aqui una frase muy fuerte pero muy real:
    Finally, there has not yet been any pressure from industry to hire software engineers with formal academic background in software engineering.
    En el Peru tampoco existe esa presion  de parte de la industria pero el CIP trato de crearla a traves de la ley. Como no es real pues la gente la ignora simplemente.
Indudablemente estamos frente a algo de velocidad incomparable con otras disciplinas ... crecio muy rapido y afecto todo lo que el ser humano hace en la actualidad.

La velocidad de esta disciplina es requiere que cada uno de nosotros le dediquemos un tiempo para entender la naturaleza de la misma y requiere tambien que estemos dispuestos a reaprender los conceptos que ya teniamos acunados en nuestras mentes.

Saludos
er

martes, 30 de diciembre de 2014

BBVA (Tratamiento de excepciones)

Holas,

Sobre este asunto de excepciones no atrapadas del BBVA que envie hace algunos dias ... (ver excepcion al final de este email) me gustaria hacer un comentario en voz alta que suelo hacer a mis alumnos ...

Todo programa debe tener un catch en el nivel mas alto de codigo que este bajo nuestro control y de esa forma evitar que la excepcion siga subiendo hasta el Sistema operativo y termine en algo asi. de feo en la pantalla del usuario.

Tambien es necesario siempre prestar atencion a la documentacion de las librerias que se utiliza pues si ahi dice que puede lanzar una excepcion hat que ponerle su try/catch siempre.

Sin embargo, con respecto al tratamiento de la excepcion hay varios niveles que me gustaria comentarlos de manera informal.

Nivel 1.- La excepcion es lanzada y el codigo nuestro no la atrapa entonces sigue subiendo hasta el nivel del Sistema Operativo y termina apareciendo en la pantalla del cliente y el desarrollador jamas se entera del problema sucedido.
Esta es la peor situacion.

Nivel 2.- El codigo tiene un catch y muestra un mensaje de error amigable al usuario pero los detalles internos (como el stack) no se muestran.
Esto esta mejor que el anterior pero los desarrolladores no se enteran del problema.

Nivel 3.- Se atrapa la excepcion, se muestra un mensaje amigable pero se guarda la misma en una tabla de la BD donde despues podamos analizar las causas y talvez reproducir el error. Ademas del stack tambien deberiamos guardar el usuario que la provoco, la hora, el IP, el navegador, etc. Con todo eso es mas facil que los desarrolladores puedan corregir el problema facilmente.
El problema aqui es que en un banco podriamos tener decenas de modulos y se formaria un cuello de botella en distribuir los errores a cada equipo.
Esta solucion no es escalable a grandes volumenes de esta ocurrencia.
Piensen por ejemplo en gmail con 400 millones de usuarios.

Nivel 4.- Se hace todo lo del nivel 3 pero ademas se procesa el stack de forma asincrona (sin interruimpir la hebra principal de ejecucion) se identifica (a partir del stack) que modulo es el que causo el problema y se graba toda la informacion en la BD pero ademas se direcciona el error al equipo de desarrollo responsable de la misma.
Esto es mejor que el anterior pero de nuevo no escala si el jefe del equipo tiene que procesar miles o millones de problemas por dia.

Nivel 5.- Capturamos la excepcion, grabamos toda la informacion relacionada a las condiciones en que aparecio la misma. Por otro lado en otro servidor y en otra hebra de menor prioridad nos podriamos conectar al controlador de versiones y detectar en que modulo sucedio y quien fue el que la programó ... asi podriamos direccionar el problema a quien mejor conoce lo que hizo.
De nuevo el problema es que si tuviesemos millares de casos asi seria una tarea no escalable.

Nivel 6.- Hacemos todo lo anterior pero ademas intentamos clasificar la excepcion y acumulamos todas las ocurrencias que sean del mismo caso para presentarlas en forma grafica al responsable.
Ademas podriamos crear un modulo de analisis de ocurrencias como estas de tal forma que al llegar a su trabajo el responsable podria analizar la ocurrencia de estas excepciones por rango de horas en un dia, por origen geografico, por browser, por idioma, etc.
Esta solucion si escala a millones de ocurrencias y permite que el desarrollador pueda corregir lo sucedido.

Nivel Complementario.- Siempre que uno hace un click que carga una nueva funcionalidad lo comun es que se cargue la misma.
Un profesional en computación sabe que el click es algo muy rico y que antes de cargar la nueva funcionalidad debo guardar esa ocurrencia del click junto con el usuario, IP, idioma, browser, hora, dipo de dispositivo, sistema operativo, funcionalidad anterior y posterior. Todo eso se hace de forma asíncrona en una hebra e¡con menor prioridad de tal forma que el usuario no se sienta perjudicado en el tiempo de respuesta de la aplicación.

Solo con esa informacion podria generarse un grafo de transicion de estados en una aplicacion y así podriamos, mas adelante, saber cuales son los caminos por los que se mueve la masa de usuarios. Podríamos detectar que funcionalidades son las mas frecuentes y las menos frecuentes.
Podríamos detectar las condiciones mas frecuentes en las cuales el usuario requiere una funcionalidad, etc.

Esta informacion sumada al Nivel 6 que mencioné anteriormente me da muchos elementos para corregir el software sin tener que preguntarle nada al usuario.

A mi me parece que esto es lo que haría alguien de ciencia de la computación. Es algo de sentido común y no lo he sacado de ningún libro y no estoy aplicando ninguna metodología ... solo sentido común y algo de abstracción.

Saludos
er

Error bean datos not found within scopeHa ocurrido un error procesando: https://150.250.252.104:16640/bdnt_pe_web/error_apl.jspMensaje: bean datos not found within scopeTraza: java.lang.InstantiationException: bean datos not found within scope 
at com.ibm._jsp._error_5F_apl._jspService(_error_5F_apl.java:86) at com.ibm.ws.jsp.runtime.HttpJspBase.service(HttpJspBase.java:93) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1796) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:887) at com.ibm.wsspi.webcontainer.servlet.GenericServletWrapper.handleRequest(GenericServletWrapper.java:121) at com.ibm.ws.jsp.webcontainerext.JSPExtensionServletWrapper.handleRequest(JSPExtensionServletWrapper.java:222) at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:348) at com.grupobbva.ii.sf.servlets.OperacionCBTFServlet.formatErrorResponse(OperacionCBTFServlet.java:1532) at com.grupobbva.ii.sf.servlets.OperacionCBTFServlet.processPost(OperacionCBTFServlet.java:2897) at com.ibm.dse.clientserver.servlet.CSReqProtocolServlet.doPost(CSReqProtocolServlet.java) at com.ibm.dse.clientserver.servlet.CSReqProtocolServlet.service(CSReqProtocolServlet.java) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1796) at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:887) at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:1937) at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:130) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:434) at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:373) at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:101) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.requestComplete(WorkQueueManager.java:566) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.attemptIO(WorkQueueManager.java:619) at com.ibm.ws.tcp.channel.impl.WorkQueueManager.workerRun(WorkQueueManager.java:952) at com.ibm.ws.tcp.channel.impl.WorkQueueManager$Worker.run(WorkQueueManager.java:1039) at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1498)

sábado, 15 de noviembre de 2014

El "secreto" de CS-UCSP

Holas de nuevo,

En varias ocasiones me han preguntado que hemos hecho de diferente en la la carrera de CS-UCSP y la verdad es que no habia un plan previo hace 20 años pero terminó siendo consecuencia de algunas decisiones que se tomaron en 1995 cuando UCSP aun no fue creada, no había SPC.

Voy a dividir las cosas que se hicieron en dos grupos:

Decisiones indispensables (si te falla una de estas no tienes una buena carrera y todo podría fallar)
  1. Salimos a estudiar fuera y no en Peru (esto fue iniciativa individual no institucional ... no hubo ayuda del gobierno). Ver articulo de el postgrado y también la graduación del pregrado.
  2. Las maestrias/doctorados que hicimos fueron de tiempo completo y no de final de semana
  3. Abrimos las puertas a los chicos que vienen con grados academicos de ese tipo (en muchos lugares veo que los espantan y les ponen problemas).
  4. A la hora de repartir los cursos se hace por grado academico y no por antigüedad. Se prioriza el grado académico. Si llega alguien con doctorado pues se le asigna curso inmediatamente.
  5. Hemos ordenado el contenido mirando como referencia las propuestas internacionales y no las de Peru (incluyendo Lima).
  6. Hemos cambiado el nombre porque eso te da un norte claro y no pierdes el tiempo en poner cursos que no son prioritarios.
  7. TODOS los docentes tienen claro que somos y no perdemos el tiempo en discusiones se ser Ingenieria o no. Nadie habla de eso acá porque está claro.
  8. Todos nuestros alumnos reciben la explicación de lo que somos y de lo que no somos antes de postular y adentro el mensaje es único y es coherente de todas las fuentes con las que tiene contacto: profesores, alumnos mayores, direccion de carrera, autoridades, etc.
  9. No buscamos ganarle a otra univ de Lima ni de Arequipa. Nos interesa compararnos con Stanford, USP Brasil, UNAM y eso provoca que el ritmo cambie en la gente.
  10. Un Arequipeño ayuda a otro arequipeño. Fue así que se pudo llevar centenas de personas a estudiar fuera. Yo he tenido amigos meses durmiendo en el sofá de departamento en Brasil y gracias a eso pudieron seguir estudiando.
    Algo común en Peru es ir a estudiar fuera y no jalar a nadie. Luego vuelven y son islas y por eso no florece el asunto en la ciudad de origen.
  11. El ambiente institucional es muy favorable. en UCSP se pueden hacer las cosas sin preocuparse de la política.
  12. Los alumnos pueden tratar a sus profesores por su nombre. Esto es simple pero ayuda mucho porque tu no eres en titulo. Aquí sonaría gracioso que alguien exija ser llamado de Ingeniero habiendo mas de 15 magisters y 8 doctores. Si alguien pide ser llamado de Ingeniero probablemente significa que esta desactualizado.
  13. Las tesis se hacen en base a publicaciones de IEEE y de ACM y todos estan familiarizados con textos en inglés.
  14. Incluimos la tesis dentro de los 10 semestres y no tenemos cursos de titulacion ni cosas extrañas. La Ley universitaria ahora pide eso y no nos afecta nada.
  15. Los docentes a tiempo completo son del tipo que no hay que corretear ni estar chequeando. Esto es fundamental porque son gente que trabaja con piloto automático. Si un día no encuentras a alguno no significa que faltó sin avisar. Sabemos que la persona solita va a recuperar esas horas porque es alguien responsable.
Otras decisiones no indispensables pero de gran ayuda
  1. Pusimos cursos en ingles en el pregrado
  2. Comenzamos a hacer la sustentación de la tesis en ingles y luego tambien en portugues.
Ese es el "secreto" pero personalmente creo que no se ha hecho nada extraordinario ... solo hicimos lo que el sentido común dice que hay que hacer buscando el bien común ... el problema es que en muchos casos: "el sentido común es el menos común de los sentidos"

Cualquier profesional que busque la excelencia academica podría y debería haber hecho lo mismo.
El problema es que en muchos casos ponen por delante los intereses personales y no los del grupo.

miércoles, 9 de abril de 2014

El postgrado en la USP Brasil

Luego de mis primeras experiencias chocantes al salir del país ya había decidido que tenía ir a estudiar en otros países.

En 1994, trabajando en el instituto de Informática de la UNSA donde hacía el buscador de textos, por pura casualidad un colega Boris Verástegui, que era el encargado de la internet en la UNSA, recibió un email de un tal Marco Alvarez que era un peruano que vivía en Brasil y ahora es mi amigo. Marco estudiaba algo llamado Ciencia de la Computación que para mi era toda una novedad. Marco buscaba a su mamá en Tacna (mismo Marco el del pueblo italiano al pie de las montañas). Boris ya sabía que yo andaba en plan de salir a estudiar fuera y me pasó el contacto. No recuerdo si llegamos a contactar a su mamá por email pero lo que si es cierto es que comenzamos a hablar de diversos temas computacionales y un dia también recibí un anuncio de que habría un curso de verano en la USP de Brasil.

En paralelo, uno de mis profesores y ahora mi amigo, Wilber Ramos, nos decía en las clases que debíamos salir a estudiar afuera y volver luego ... que no deberíamos quedarnos en Perú. Él hacía mención explícita a la USP de Brasil pues su hermano estudiaba allá y parecía algo muy bueno. Wilber decía que bastaba que hagas un buen curso de verano y que conseguiría la beca y eso se me quedó muy grabado.

Él también decía que allá la gente que hacía postgrados solo estudiaba a tiempo completo y que le pagaban! parecía una maravilla especialmente considerando que yo sabía que no podía pedirle dinero en dólares a mis padres. Sin duda se hubieran endeudado para ayudarme pero el hecho de no haberles pedido obligo a que resuelva el problema por mis propios medios y mis padres no tuvieron que pasar por este problema. Algo interesante es que como te pagaban por estudiar no te dejaban trabajar. Eso tendría mucho que ver con el error que cometí al postular para entrar al postgrado que explicaré luego.

No tengo idea cuántos muchachos le prestaron atención a Wilber (muy común en los alumnos). Creo ese pequeño comentario fue algo muy importante pues también marcó mucho en mi vida profesional y cambió nuevamente mis objetivos hacia algo más lejano, Brasil.

Deberían haber muchos Wilbers por ahí, en todo caso le tengo mucha gratitud por ese gesto que tuvo en mi grupo. Probablemente fue simplemente un comentario no planeado ... probablemente fue solo un comentario en la clase pero fue muy importante en mi vida. Me imagino que el propio Wilber no tenía una idea de lo que había provocado en mi. Ese comentario también hizo que yo sintiera más mi responsabilidad de profesor en el futuro. Es increíble el tamaño del impacto que un comentario así puede causar en un alumno que le presta atención. Creo que por eso trato de dar lo mejor de mi a los alumnos. Basta que alguno de ellos me haga caso durante 5 minutos y seguro que será mejor que yo.

Aquí resolví enviar mis papeles a Brasil y por casualidad escuché que había en Arequipa un profesor mucho mayor que yo que estudiaba su postgrado allá en ese momento. Su nombre era Luis Alfaro de San Agustín. Un día, mientras trabajaba haciendo el buscador en el Instituto de Informática de la UNSA, alguien me comentó que el Prof. Luis Alfaro estaba por ahí y me acerqué a conversar y pedirle información. Le pregunté como hacer para ir a hacer un postgrado en Brasil?. Su respuesta fue: "Ahora ya no se puede ... está muy dificil ... antes se podía ahora ya no". Hasta ahora me parece una respuesta muy impropia para alguien que debe ser motivador para los alumnos. Felizmente, decidí no hacerle caso y felizmente Luis Alfaro estaba equivocado. Siempre me quedó la duda de por qué en los siguientes 20 años nadie fue a hacer un postgrado en el mismo lugar donde él había estudiado.

En Perú y de forma muy especial donde estudié el pregrado había y hay mucha gente piensa que mi título peruano fue compatible y que gracias a eso hice el doctorado también. Eso es más falso que un billete de 0.23 dólares pero trataré de resumir el tema:

La primera media hora de clases en la USP Brasil ya fue más allá de todo lo que yo había aprendido en el curso de Estructuras de Datos que me fue dictado por un Ingeniero Industrial que decía saber de ese tema copiando en la pizarra código de estructuras básicas de un papel que traía en cada clase. Se pasaba la mitad de la clase copiando, luego 40% esperando que todos copien y luego le dedicaba 2 minutos a preguntas. Luego el laboratorio consistía en copiar nuevamente el código a las máquinas y se acababa la clase. Una vergüenza total. Si no fuera por el buscador que había hecho no la hacía y dicho buscador no fue en anbsoluto producto de la carrera. Fue un problema que el Ing Jorge Tamayo me puse y yo resolvi en el Instituto de Informatica de la UNSA en el Parque Industrial.

Otra anécdota es que ingrese a la USP porque llené mal el formulario de postulación.

Yo no sabía portugués y el formulario contenía dos preguntas que más o menos decían así:
P1.- Você quer fazer inscrição no curso de verão em estruturas de dados?
Aqui puse Sim y estaba correcta mi respuesta pues yo quería hacer el curso de verano. Esto se conectó con lo que Wilber habia dicho en clases: curso de verano->sacas buena nota->beca.

P2.- Você está concorrendo ao mestrado em ciência da computação? 
Aquí yo miré la palabra concorrer y la entendí como concurrir. Ahí pensé: "Me están preguntando si estoy yendo a alguna maestría en Ciencia de la Computación". Pensé: "Wilber Ramos dijo que no permitían otras actividades ..." además no estoy estudiando maestría en Perú entonces mi respuesta fue: Não.

El detalle es que la palabra concorrer en portugués significa concursar !
Ellos me estaban preguntando si yo quería concursar para la maestría allá y yo puse no !

Muy contento me quedé esperando la respuesta a mi postulación a la maestría y en diciembre recibí una carta indicando que estaba aceptado para hacer el curso de verano (Gracias al Sim de la P1). La carta no decía nada de ingresar a la maestría y, debido a los comentarios de Wilber que decía que del verano dependía el ingreso, creo que nunca le presté atención al detalle que no me habían dicho explícitamente que había ingresado.

Con el tiempo entendería que este error que cometí me permitió ingresar pues nadie evaluó mis papeles ni mi título peruano. Simplemente, me consideraron como un muchacho que quería inscribirse para hacer el curso de verano como oyente y además no pedía beca. No estaba difícil de aceptarme así pero fue un error crucial que mas tarde recién entendería.

En otro post comentaré lo importante que resulta ir por tierra hasta Brasil pasando Bolivia. Háganme acordar si lo olvido.

El asunto es que llegué el 31 de Diciembre de 1995 a eso de 9:30pm a la ciudad de Sao Carlos, estado de Sao Paulo en Brasil a 230 Km de la ciudad capital Sao Paulo. Vean el mapa a continuación:
https://www.google.com/maps/dir/S%C3%A3o+Carlos,+S%C3%A3o+Paulo,+Brazil/S%C3%A3o+Paulo,+Brazil/@-22.7707757,-47.8115633,9z/data=!3m1!4b1!4m13!4m12!1m5!1m1!1s0x94b86f6b8fb57d2f:0x7cf18ccdd4dc83e7!2m2!1d-47.8909142!2d-22.0087086!1m5!1m1!1s0x94ce448183a461d1:0x9ba94b08ff335bae!2m2!1d-46.6333094!2d-23.5505199

Estaba super emocionado y tengo esa imagen como si hubiera sido ayer. Salí de Arequipa con 400 dólares pero con la firme convicción de que conseguiría la beca. Creo que la mente es algo muy fuerte realmente y produce cosas fantásticas.

Llegue allá y comprenderán que a esa hora todos estaban en sus casas o festejando el año nuevo pero casi nadie estaba en la USP. Para mi estaba claro que hotel no era una opción ! además el real (moneda de Brasil) estaba casi igual que un dólar y si me metía a uno me quedaría sin dinero en una semana. La opción fue tomar un taxi (en mis 7-8 años allá tomé taxi un par de veces solamente) que me llevó por toda la marginal y entró por la puerta principal de la USP. Me quedé frente a la agencia del Banco do Brasil.

Recuerdo mucho un letrero enorme que decía:


Que me pareció muy bonito. Con el tiempo haría de este símbolo mi alma matter y lo considero así hasta ahora pues es ahí donde aprendí computación.

Había un vigilante que me explicó que no había gente pero le expliqué que venía al curso de verano ... le mostré la dirección que tenía y me mostró como llegar al Instituto de Ciencias Matemáticas de Sao Carlos (ICMSC) que luego sería convertido en el actual ICMC que fue donde estudié.


Fui caminando al lugar y había otro vigilante que sabía del curso de verano pero igual no había nadie a esa hora. Sin embargo, parece que él me adoptó porque entendió que yo me quería quedar por ahí. Salimos en un auto de la seguridad de la USP y fuimos a algunos alojamientos que también estaban vacíos pero por ahí conseguimos un colchón.

Este colchón fue donde descansé en el suelo en una sala de estudio al costado de la Biblioteca en el primer piso del ICMC. Literalmente, estaba comenzando desde el suelo y además estaba tan cansado que ese colchón me pareció algo fenomenal y muy cómodo. Ah sábanas? que es eso? cuando uno está viajando 4 días sin hotel y sin parar eso era una maravilla de colchón.

Al día siguiente 1ro de Enero me cambiaron de "habitación" y me mandaron al tercer piso donde dormí en otro saloncito muy pequeño. El tercer día ya era 2 de Enero y el curso comenzaba así que comenzaron a aparecer mas brasileños perdidos igual que yo pero que probablemente no habían dormido en el suelo. Sin embargo, el dinero es algo que les falta a todos los estudiantes y alguno de ellos tuvo la fantástica idea de conseguir un candado.

Con ese candado fuimos a uno de los alojamientos y bloqueamos una sala de estudios donde pusimos los colchones encima de un par de meses para cada uno. Eramos 4 que nos quedamos ahí durante todo el curso casi dos meses. Al menos había sido ascendido del nivel suelo al nivel mesa y por alguna razón eso me parecía algo cómodo. Recuerdo mucho que los muchachos contaban chistes en portugués que yo no entendía y luego de reirse del chiste se reían de mi cara de no haber entendido :)

Cuando comenzó el curso de Estructuras de Datos se pasaron en la primera media hora todo lo que yo había hecho en el Perú y luego vinieron cosas que me gustaron. Tenía claro que mi objetivo era sacar buenas notas y que con eso tendría una beca. Solo quería estudiar y estudiar.

La ventaja que yo tenía es que probablemente estaba mas asustado que el resto de saber que era una oportunidad única la que se me estaba presentando. Además, había hecho un buscador con la velocidad de Google que ciertamente no era algo normal para un egresado.

También fue interesante enterarme que había una pareja de peruanos de Lima, uno de la UNI y la señora de San Marcos (o talvez era al revés pero eran de esas dos instituciones). Como buen peruano perdido me acerqué a preguntarles como se conseguía una beca pues ellos estaban desde agosto del año anterior. Su respuesta fue que era difícil y que ellos estaban haciendo su último intento en ese verano. No me ayudaron nada (como muchos de los peruanos que no hemos aprendido a ayudarnos).

Llegó el primer examen y las notas eran de 0-10. Saqué 7.9 y estaba entre los 10 primeros aproximadamente pero obviamente no me gustó la nota pues sabía que lo mínimo para sacar A era 8.6. Lo interesante es que el colega de Lima sacó 2.9 y su señora sacó 0.0. Tal vez se había equivocado de carrera. Tal vez ella era de gestión y, por esa razón, hacer algoritmos no era su fuerte. En fin, no los volví a ver nunca más y también entendí porque no les habían dado la beca.

Una anécdota es que cuando salieron las notas publicaron 2 listas. La primera de los que estaban "concorrendo" (concursando) a la maestría y la segunda de los alumnos libres donde estaba yo. Ahí pregunté que porque me habían puesto en esa segunda lista? La secretaría me respondió: "Seguro que Ud. marcó que quería no quería concorrer" ... buscó mi ficha y efectivamente vimos que yo había marcado que no quería concorrer a la maestría. Llamaron a una profesora argentina Maria Carolina Monard quien me miró y me dijo (con una sonrisa): "estos gringos que no llenan bien la ficha". Lo bueno es que ella entendió mi problema y me dejó claro que debía buscar un asesor que quisiera aceptarme para hacer la maestría y me advirtió que debía sacar una buena nota.

El camino estaba claro:
  1. Tenía que sacar buena nota en el verano
  2. Con eso podría encontrar un asesor que quisiera "adoptarme".
En paralelo también fui buscando alguien para que me adopte como su alumno y mientras leia las áreas de estudio encontré algo llamado Redes Neuronales y pensé: "eso parece bueno" (aunque no sabía de que se trataba claro esta). Encontré a un profesor llamado Andre de Carvalho y le expliqué mi caso. Me volvió a decir que dependía de la nota así que sacar buena calificación pasó a ser asunto de vida o muerte :) Aquí me ocurrió algo súper interesante pues fue mi entrevista de ingreso a la maestría:

Andre: Então voce quer estudar o mestrado em Computacão.
(Entonces tú quieres estudiar maestría en Computación)
Ernesto: Sim

Andre: E voce é peruano certo? (Y eres peruano correcto?)
Ernesto: Sim

Andre: E o que voce estudou no Peru? (Y que estudiaste en el Perú?)
Ernesto: Engenharia de Sistemas (Ingeniería de Sistemas)

Andre: mmm ta certo (pausa) o que é isso?
(correcto ... (pausa) que es eso?)

Por eso acostumbro decir que el título que me dieron me duró entre 10 a 15 segundos. Para los que no vieron el link de Andre ... el tenía ya muchas decenas de publicaciones tenía ya el doctorado ... tiene una producción en computación que es envidiable para cualquiera.

Solo habían dos posibilidades:
1.- Andre estaba equivocado
2.- Ernesto estaba equivocado

Seguí estudiando y vino el segundo examen y una exposición donde tuve la chance de presentar el buscador que había hecho y por supuesto que les gustó y saqué una buena nota que me permitió sacar un promedio de 8.6. Para haber sido mi primera vez en el extranjero, en otro idioma, en una universidad mucho más exigente y en un postgrado en computación y ademas de venir con un diploma que nadie lo entendía ... no estaba nada mal pensé.

Cuando André me aceptó me dijo: "ok debes matricularte en este semestre de marzo ... debes traer tu pasaporte para sacarle una copia a tu visa de estudiante". Ahí pensé: "visa de estudiante"? que ser eso?! traje mi pasaporte y les mostré el sello de entrada a Brasil y claro que no tenía visa pues había entrado como turista.

Ellos me preguntaron que como había entrado al Brasil y les respondí con la verdad: "Llegué a la frontera y pedí para entrar y me dejaron !". No tenía visa y no podía comenzar (era un jueves). Entonces alguien comentó que para sacar una visa debería ir a un consulado brasileño (que no hay dentro del país) y el más cercano era en de Iguazú así que arranqué hacia la frontera ese mismo jueves con el poco dinero que tenía y sabiendo que no me alcanzaría. Llegué el viernes, pasé la frontera al lado paraguayo, busqué el consulado brasileño y mi ilusión se deshizo rapidamente pues como peruano habían documentos que yo no podía presentar (ej. antecedentes policiales, etc).

El mismo viernes en la noche inicié el retorno de Iguazú a Sao Carlos pero el dinero ya no me alcanzaba ni para volver. Solo conseguí llegar hasta Presidente Prudente que es más o menos la mitad del camino. Ver el mapa aquí.

Llegué como media noche a la ciudad llamada Presidente Prudente y llamé a uno de los amigos (Rogerio) con los que había hecho el curso de verano. Lo llamé y le dije que no tenía dinero, el salió desde su casa, fue a alcanzarme y me prestó el dinero que me faltaba para continuar. El también es alguien de quien nunca me olvido. Llegué el sábado a Sao Carlos y ese mismo día salí rumbo a Perú. Era un 9 de Marzo de 1996 y lo recuerdo claramente sin mirar un calendario. Lo recuerdo porque demoré hasta el 16 (también sábado) en llegar a Arequipa por tierra. Mi demora se debía a no conocer los horarios de las conexiones en el trayecto ... llegué contento por ver a mi familia de nuevo, al mismo tiempo estaba triste por no haber podido comenzar pero con la ilusión de saber que podía volver en Agosto.

En este viaje de retorno debo decir que el dinero se me volvió a acabar a medio camino y el papá de Marco Alvarez (que vivía en Campo Grande en aquel entonces) me prestó algo como US$ 150.00 para poder llegar. Luego se los devolví a la cuenta de un hermano en el Cuzco.

Empecé la maestría en Redes Neuronales en Agosto de 1996 luego de varios problemas causados por el bendito diploma que tenía y terminé el 26 de Agosto de 1998. Luego volví a Perú hasta mediados de 1999 cuando ya no aguanté mas y salí de nuevo. En ese periodo entré como docente nombrado a la Universidad de San Agustín en Arequipa. Yo nunca fui contratado y eso realmente debo decir que fue bueno porque te permite decir las cosas de forma clara y directa sin miedo de que te suceda algo :-) Puedo decir que fui un error de cálculo :-)

En 2000 me mudé a Brasil para comenzar una aventura por el mundo pero esta vez con la familia aumentada pues ya me había casado :) el primer año de mi doctorado lo hice en Sao Carlos en el ICMC de la Universidad de Sao Paulo. El 2001 me mudé a Carnegie Mellon University (CMU) en Pittsburgh donde tuve la suerte de trabajar con Christos Faloutsos. Simplemente fenomenal !

En 2002 estuve viviendo en Berlin, esta vez en la Technischen Universitat, también fue una excelente experiencia que me permitió nuevamente observar lo mucho que faltaba por aprender y lo pequeño que uno es en comparación al mundo. Durante ese tiempo tuve la oportunidad de ir a presentar un artículo a Hawaii (http://www.wcci2002.org/). La conferencia era extraordinaria con 15 salas en paralelo pero la verdad es que yo escribí ese paper solo porque era en Hawaii :)

En 2003 volví a Brasil pero seguí viajando y fui a presentar invitado otro artículo a Japón. Esa fue otra experiencia extraordinaria. Finalmente,  defendí la tesis en marzo de 2004 y volví a Perú con la responsabilidad (en realidad fue mi disculpa para volver) de organizar el http://clei2004.spc.org.pe/ . Felizmente, todo salió muy bien y por eso continué considerando la posibilidad de quedarme y ayudar a que mi país mejore día a día.

Actualmente soy docente a tiempo parcial de la
Universidad Nacional de San Agustin y soy tiempo completo en la Universidad Católica San Pablo donde ocupo el cargo de Director de Ciencia de la Computación desde 2005 hasta la fecha) y también fui Decano de la Facultad de Ingeniería y Computación (2011-2013).



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.

viernes, 16 de noviembre de 2007

Quién es Ernesto Cuadros-Vargas?

Holas !

Primero, nací la el viernes de luna nueva de la 8va semana, dia nro 53 del año 1974. Ese dia el sol salió a las 5:44am y se escondió a las 6:25pm. Ese dia mi ciudad tenía 304,653 personas. Nací al pie del misti y soy un characato muy orgulloso de sus raices Arequipeñas. Traducido ... nací el 22 de Febrero que fue el mismo dia que nació George Washington y Victor Raul Haya de la Torre.


Nací de una familia muy bien formada y desde que yo recuerdo tengo a mis cuatro abuelos en mi mente como unos tremendos pilares en mi vida. Creo que la fortaleza mental de una persona no se debe solo a su formación profesional sino que mucho tiene que ver la forma en la que creció. Muchas veces me han dicho que es bueno que siempre tengo na sonrisa conmigo. Pues eso se debe a que crecí en medio de un ambiente de amor, vivo con alegría de estar en este planeta y poder compartir con todos la alegría que representa estar vivo. Yo tuve la suerte de crecer en medio de mucho cariño de mis 4 abuelos, padres, hermanos fantásticos, tios y muchos primos con los cuales siempre nos saludamos con un beso. Esto podría ser la clave del éxito y/o resumen de mi vida :)

Estudié en un colegio nacional toda la primaria (Colegio de la Coop 58 en Manuel Prado, Arequipa) y debo decir que fue uno de los mejores lugares por los que guardo muchos buenos recuerdos. Fue ahí donde gané concursos de matemáticas con miles de chicos de mi edad en primaria y me comenzaron a incentivar el talento que todos tenemos durmiendo. Una pieza clave de mi gusto por las matemáticas fue mi papá Lino (mi abuelo paterno). Uno no tiene idea de que tan importante fue que él me enseñe a restar. Recuerdo como si fuera ayer donde él estaba en la sala de su casa y como me puso en sus piernas (para alcanzar la mesa con mi mano diminuta). Lo recuerdo con mucha claridad pues creo que fue el disparador de mi gusto por las matemáticas.

A la edad de 5 años decidi por alguna razón no ir mas al jardín y mi mamá (profesora)  justo enseñaba 1ro de primaria ese año y decidió llevarme a su clase. Yo me sentaba al fondo y me dedicaba a jugar seguro pero de alguna forma entendía algo de lo que explicaban a esos niños.  Cuando llegó Marzo recuerdo que mi mamá me llamó a una clase donde tenía que dar un examen (que por supuesto que yo no tenía ni idea para que sería). En fin, yo di el tal examen y al rato me enteré que había pasado los requisitos mínimos de aprendizaje del 1ro de primaria y estaba listo para iniciar el 2do grado. Así que en primaria no hice 1ro de primaria e inicié 2do año con 6 años. Terminé la primaria con 10 años y tuve la suerte de sacar el 1er puesto toda la primaria de 2do a 6to. Ese diploma es un tesoro que aun está en mi casa junto con la foto de mi promoción de primaria.

Mi secundaria la hice en los Salesianos de Arequipa donde nuevamente tuve excelentes ejemplos como el profesor Mayta, Llapa, Concha, Bernedo. Todos ellos tienen por siempre mi gratitud, respeto y apoyo incondicional por haberme ayudado a ser un "Buen cristiano y honrado ciudadano".  Les agradezco mucho todas las llamadas de atención y jaladas de orejas y de cabellos (literalmente).
Esos 5 años marcaron mucho en mi vida. Debo decir que en secundaria nunca saque diploma ... sin embargo, en matemática si era el que sacaba las mejores notas y comencé a jugar más con los números en la cabeza para tratar de resolver todo lo que pudiese sin escribir nada ... era mi pasatiempos favorito y era y sigue siendo muy divertido hasta hoy. Terminé el colegio con 15 años e ingrese inmediatamente a la universidad. Lo que más me gustaba era la matemática sin dudas pero no me veia como profesor de matemática. Tengo 1 tío y también 2 primos hermanos que son excelentes Ingenieros Civiles y eso provocaba que mi mamá algunas veces me comentase esa posibilidad. De hecho llegue a ingresar y fui a las clases pero definitvamente no era lo que me gustaba y no llegué a dar ningún examen. Realmente parece que la Ingeniería nunca fue lo mio pero demoré en darme cuenta.

Comencé mi trayectoria profesional en la UCSM de Arequipa estudiando la carrera de Ciencia de la Computación que por alguna razón extraña fue llamada Ingeniería de Sistemas en dicha universidad. Según mi opinión todos los que postulamos ahí siempre buscábamos lo que internacionalmente se denomina Computer Science pero por alguna razón en mi País lo llaman así. Supongo que es cuestión de que la gente lea cada vez más para corregir ese delicado tema.

En 1993 comence a trabajar en el Instituto de Informática de la UNSA con el Ing Jorge Tamayo (que en realidad es Dr también pero siempre escuché que le decían Ingeniero). Ahi me dijeron que necesitaban que haga búsquedas en bases de datos muy grandes de texto desestructurado (parecido a lo que haría un buscador hoy en dia)  y desarrolle un sistema de búsqueda que terminó siendo mi tesis de pregrado. Nuevamente mi tema fue 100% de ciencia de la computación pero en mi título decia Ingeniería de Sistemas (misterios de la vida !).

Ese mismo año, 1993 decidi junto con un amigo (Jorge Félix Herrera o simplemente el "Yorch" ... era y sigue siendo uno de mis mejores amigos) que sería interesante irnos a alguna conferencia fuera y nos fuimos con 19 años hasta La Serena en Chile. Estábamos "misios" pues eramos estudiantes pero hubo un tio de Yorch (Ivan Herrera que ahora dirige Crubher) que nos apoyaba. Esa confianza fue vital y suficiente para despertar inquietud por esta apasionante carrera. Fue una larga jornada de 18 horas desde Arica. Llegamos por allá y nos dimos con la tremenda sorpresa de ver varios temas que nunca habíamos siquiera escuchado y todo era en inglés. Eso me llamó mucho la atención y dió un giro definitivo en mi vida profesional. Mi punto de referencia dejó de ser mi país para comenzar a ver el mundo. Debo decir también que el punto de referencia no pasó a ser Chile pues había entendido que el tema era el mundo y no mi nariz como suela ser hasta ahora en mucha gente. También entendo que cualquier persona que no hable 3+ idiomas es un analfabeto.Luego escribiré lo que me pasó con un borracho tirado en la calle en Berlín que es una lección al respecto (por si acaso el borracho era él y no yo :-)

En 1994, gracias a que hubo al menos un profesor que entendió que hacer un buscador era algo super bueno, tuve la oportunidad de ser invitado a un congreso que se hacia en Arequipa como ponente por mi buscador. Resulta que en ese evento estaba como ponente después de mi charla Ricardo Baeza-Yates quién es en la actualidad Director de Yahoo! Research a nivel mundial. Esa charla fue donde por primera vez escuché sobre el grado de doctor en esta área pues antes nadie me lo había mencionado siquiera. En esa misma charla tomé la decisión de alcanzar ese grado y la recuerdo como si fuese ayer.

El trabajo del buscador que Ricardo hizo en el doctorado era mejor que el mio por razones obvias :) pero fue una motivación extraordinaria ver el potencial de lo que yo había hecho. Lo que yo me di cuenta en esa charla fue muy fuerte y me dió mas información de lo que yo había escuchado en toda la carrera. De hecho eso fue en 1994 y el Google fue creado en 1997. Lo que luego me incomodó de esa experiencia era que mis propios docentes nunca le dieron mucha bola salvo uno (Percy Huertas) y ahora mirando al pasado creo que hubiera sido fantástico tener algo como un Google peruano y de hecho ellos también se lo perdieron. POr eso también me causó bronca cuando alguna vez algun docente en mi universidad de origen dijo que yo había conseguido el postgrado gracias a la formación que ellos me dieron. La verdad es que demoré muchos años en descubrir varias cosas que ellos deberían haber explicado en el 1er semestre como por ejemplo: Qué es computación? que por cierto creoq ue hasta ahora aun no sabrían responder con claridad y el reflejo es que aun no cambian la carrera :) Creo también que el docente universitario tiene la obligación de hacer que el talento explote y no se opaque. Espero sinceramente que eso cambie algún dia en la universidad donde estudié mi pregrado. Estoy seguro que sigue habiendo muchos muchachos talentosos que necesitan profesores que les abran las puertas de oportunidades que el mundo tiene. Esas mismas que yo tuve que abrirlas solito por falta de ayuda :)

El buscador lo hice entre 1993 y 1994 que fue el año que terminé la carrera. Tuve la inocencia de pensar que podía trabajar y sacar la tesis (que ya la tenía hecha al 100% en cuanto a programa). Pensaba: "saco el bachiller en Enero y defiendoal dia siguiente ...". Bueno, por estar trabajando se me fue pasando el tiempo y sali[o un concurso parala SUNAT que ofrecía un salario de 4500 soles que era muy atractivo (muchisimo) pero por alguna razón eso no me parecía atractivo ... mi mente ya estaba en salir a descubrir el mundo y nisiquiera postulé. Luego en Octubre se abrió la oportunidad de salir al Brasil (ver el post de El Postgrado). Nisiquiera había postulado pero sentí una fuerte necesidad de graduarme y dejé el trabajo y todo el 15 de Octubre. Magicamene en cosa de 15 dias hice lo que antes no pude hacer en 10 meses por el trabajo ... gradué en Ciencia de la Computación el 4 de Noviembre de 1995 pero por error de la universidad donde estudié me dieron el título de "Ingeniero de Sistemas". Ojalá que corrijan ese error algún dia porque no tienen idea de la cantidad de oportunidades que lois chicos pierden solo por ese "detalle". Lo peor es que en muchos casos nisiquiera se van a llegar a enterar de lo que perdieron.

Siguiente blog: como me gradué con el título equivocado ...