Christian Ariza

La cabaña

Shelter

No es raro verlo sentado observando el horizonte, contemplativo. Esta vez, sin embargo, tiene un aire diferente, un aura de tristeza lo envuelve. Es una escena que parece existir en un plano diferente, cercano pero inalcanzable. Sentado a pocos metros de la puerta de la casa, en el pasto, pero viviendo en un mundo lejano habitado únicamente por sus pensamientos que, a su vez, giran en torno a un único ser.

Su madre, que lo observa un poco preocupada desde la cocina, está lejos de imaginarse el porqué de este repentino marasmo. En la mañana había estado feliz, tanto como para notarlo a pesar de que nunca ha sido muy expresivo. Había estado leyendo, como de costumbre, aunque con una libreta en su mano escribiendo en ocasiones. Después del almuerzo había salido a caminar por la vereda, lo que se había hecho costumbre en el último mes. Hoy volvió más temprano y desde entonces está allí.

Todas las vacaciones llegaban a esta casa, en una pequeña zona rural lejos del ruido y el frío de la ciudad. Pronto se acabarán los dos meses de descanso. Él disfrutaba la tranquilidad del lugar, le gustaba leer y pasear por los alrededores de la casa. Hace un mes se alejó un poco más que en las ocasiones anteriores y encontró una pequeña cabaña deshabitada, que era usada por los trabajadores en época de cosecha.

Shelter

Se convirtió en su refugio, un lugar dónde olvidarse del mundo y descubrir mundos nuevos. Además, aunque no lo admitirá fácilmente, estaba fascinado por la vista: todas las tardes una niña, más o menos de su edad, se veía bailando, sola y sin música, en una casa cercana y el tenía el mejor asiento para disfrutar de la función. Todas las tardes él venía a la cabaña y, sin falta, ella ejecutaba su, cada vez más sublime, interpretación. Hay quien dice que la danza es la más pura forma de comunicación, para él sin duda era así, sentía que la conocía desde siempre a pesar de nunca haber hablado.

 Hace una semana decidió que debía hablarle, pero no sabía qué decirle. Esa aproximación sería una nueva experiencia, así que decidió planearla de manera cuidadosa. Sus palabras le parecían inadecuadas, las comparaba con aquellos personajes de novela que siempre tienen la palabra precisa para cada momento. Decidió que escribiría una carta, pero la leería al presentarse con ella. Continuaba asistiendo a la cita tácita, escribir se volvía mucho más fácil cuando la veía. Nunca parecía estar terminada.

Esta mañana decidió que estaba listo. Después del almuerzo tomó su carta y caminó, un poco nervioso, hasta la cabaña. Esperó la hora habitual pero la función, que había tenido una puntualidad ejemplar,  no empezaba. Esperó un poco más, mientras observaba la cabaña. De repente vio un pequeño papel, pegado al lado de una de las ventanas:

“Ha sido un privilegio contar con un público tan fiel. Lamentablemente la gira de verano ha terminado y debo regresar a la sede de la programación permanente, en la ciudad. Espero que, en una próxima oportunidad, pueda conocer un poco más de cerca al espectador que disfruta la danza tanto como yo.

 

A.”

Herramientas que te permitirán entender qué información compartes en Internet

Gracias a Internet cada día compartimos más información, incluso sin darnos cuenta. ¿Qué tanto pueden llegar a saber las empresas de mí? Algunas herramientas pueden ayudar a hacernos una idea:

  • WolframAlpha Personal Analytics for Facebook– Un análisis de la red social personal, las aplicaciones usadas, patrones de uso, entre otras cosas. En uno de los post sobre la herramienta nos podemos hacer a una idea de lo que nos puede decir sobre nuestra cuenta, pero al probarla podemos descubrir cosas interesantes.

    WolframAlpha

    WolframAlpha

  • LinkedIn dejó de soportar,  hace relativamente poco, InMaps, una herramienta que permitía visualizar la red social y detectar comunidades, algo interesante especialmente por la naturaleza de las conexiones.  Con algo de conocimiento de programación, usando el API de LinkedIn y Gephi, podemos hacerlo.
  • El correo electrónico se ha vuelto parte de nuestras vidas, y se ha resistido a dejar de serlo aunque hayan varias propuestas para reemplazarlo. Immersion del MIT nos permite visualizar los intercambios de correo que hemos realizado y, usando sólo los metadatos, nos permite descubrir información interesante. Especialmente me parece útil ver los cambios que se tienen en las relaciones en el tiempo.
  • Gracias a Google Dashboard podemos ver todos los servicios que usamos de Google en una sola página. Es muy útil, pero no es todo lo que sabe Google sobre nosotros, también podemos revisar cómo nos ve Google Ads (en lo que se basa para mostrarnos publicidad), el historial de búsquedas y el historial de ubicaciones. También podemos exportar los datos usando Google Takeout.
  • Búsqueda de Google y Google Alerts. ¿Qué encontrará quien busque mi nombre en Google? El resultado puede, pero no debería, sorprendernos. Utilizar una alerta de Google para saber qué aparece sobre nosotros en el buscador puede ser una buena idea.
  • Cada vez que visitamos una página no sólo la empresa que visitamos recibe información. Ghostery, una extensión para Google Chrome, y Lightbeam, una extensión para Firefox, nos permiten conocer quién nos rastrea. La visualización que nos ofrece Lightbeam es especialmente atractiva.

Imposible

Resaltar lo obvio mientras hacemos lo imposible se ha convertido en nuestro juego favorito.

“Están locos”, al menos en algo había consenso. Esta opinión era generalizada entre quienes conocían su historia; los protagonistas también la compartían. Vivían en un mundo imaginario, todo lo que ocurriera fuera de él no importaba, descubrieron que ese era el secreto de la felicidad.

Su historia inició por casualidad, como todas las buenas historias. Un frió día de noviembre, el ruido y el desorden de la ciudad se escondían bajo la lluvia. Diana había salido de la universidad, después de presentar su último examen de la carrera, se disponía a disfrutar de un café en su lugar favorito. Paredes blancas, en las que se podían ver rimas de Bécquer,  contrastaban con la barra roja y las mesas de madera un poco rústicas; la música suave completaba el ambiente perfecto para perderse en los pensamientos. Diana leía “Amor eterno”, como  lo había hecho cientos de veces,  le gustaba cómo se veían las palabras en la pared bajo el dibujo de un pequeño árbol, como si fueran hojas que habían caído por el otoño.

Francisco entró para resguardarse de la lluvia, lo tomó por sorpresa mientras caminaba por la zona. Quedó gratamente sorprendido cuando observó el lugar después de respirar un poco. Sólo la mesa en la que estaba Diana estaba ocupada, se veía tan cómoda y feliz que parecía hacer parte del lugar. No podría imaginarlo sin ella, perdería su propósito. Aunque temía romper aquel equilibrio, e iba en contra de su comportamiento habitual, decidió acercarse para hablar con ella.  Diana, un poco sorprendida, aceptó.

Hablaron por horas, tenían en común el gusto por la literatura, en especial la poesía. Al caer la noche concertaron una cita para el siguiente día. Se despidieron. Diana estaba sorprendida por la conexión que habían logrado en tan poco tiempo. Esa noche Francisco no durmió.

Desde que era muy pequeño Francisco había tenido clara su vocación. Su familia era muy apegada a las tradiciones y cercana a la iglesia, todos estaban orgullosos de la decisión de Francisco de entrar al seminario para convertirse en sacerdote. Ahora, por primera vez, titubeaba. Estaría sólo una semana en la ciudad, antes de volver al internado. Una semana para aclarar sus dudas.

Pasaron juntos todo el tiempo posible. Al final de la semana Francisco no tenía dudas. ¿Cómo decirlo a las familias? El problema no era sólo la familia de Francisco, la familia de Diana no vería con buenos ojos que abandonara el seminario por ella.

Decidieron olvidar las opiniones de los demás. Se amaban, nada más importa. Vivían en su mundo imaginario, nadie más podía entrar.

Materializar el mundo imaginario costó un poco más. Abandonaron todo lo que conocían. Una ciudad distinta sirve como escenario para la historia. Un profesor de latín y una joven diseñadora, tomados de la mano, completan el paisaje.

 

 

Introducción a Apache Spark: Desarrollo de una aplicación

Spark

Apache Spark es un framework de computación en paralelo, que promete velocidades hasta 100 veces mayores a las de Hadoop Map Reduce. Puede correr de manera local (en uno o varios hilos) o en cluster sobre Apache Mesos, Hadoop YARN, o en modo Standalone.

En este pequeño ejemplo crearemos un proyecto en eclipse con las dependencias necesarias para Spark y desarrollaremos un contador de palabras. Spark tiene API nativas para Scala, Python y Java. En este ejemplo usaremos Java 8.

Lo primero que haremos será crear un proyecto Maven en Eclipse:

Nuevo proyecto Maven en Eclipse Luna

En este caso seleccionamos el arquetipo por defecto, e introducimos el id del grupo y el id del artefacto que deseemos para nuestra aplicación.

El siguiente paso es añadir las dependencias al archivo pom.xml, así:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 <modelVersion>4.0.0</modelVersion>

 <groupId>uniandes.bigdata</groupId>
 <artifactId>sparkDemo</artifactId>
 <version>0.0.1-SNAPSHOT</version>
 <packaging>jar</packaging>

 <name>sparkDemo</name>
 <url>http://maven.apache.org</url>

 <properties>
 <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
 </properties>

 <dependencies>
 <dependency>
 <groupId>junit</groupId>
 <artifactId>junit</artifactId>
 <version>3.8.1</version>
 <scope>test</scope>
 </dependency>
 <dependency>
 <groupId>org.apache.spark</groupId>
 <artifactId>spark-core_2.10</artifactId>
 <version>1.0.1</version>
 <scope>provided</scope>
 </dependency>
 </dependencies>
</project>

La dependencia de spark tiene groupId org.apache.spark, artifactId spark-core_2.10 y versión 1.0.1. Utilizaremos el scope provided para que no se empaqueten las librerías en el jar que generaremos.

Nuestra clase WordCount tendrá la siguiente estructura,

package uniandes.bigdata.sparkDemo;

import java.util.Arrays;

import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaPairRDD;
import org.apache.spark.api.java.JavaSparkContext;
import org.apache.spark.api.java.JavaRDD;

import scala.Tuple2;

/**
 * WordCount en Spark
 *
 */
public class WordCount
{
    /**
     * Recibe como parámetro la ruta del archivo de entrada.
     * Puede ser un archivo local o una ruta hdfs (hdfs://...)
     * */
    public static void main( String[] args )
    {
        String file=null;
        /**Recibir como parámetro el nombre del archivo
         **/
        if(args.length>0){
            file=args[0];
        }else{
            System.err.println("No se puede ejecutar sin un archivo");
            return;
        }
        //El nombre de la aplicación:
        SparkConf conf = new SparkConf().setAppName("PruebaSpark");
        //La aplicación se puede ejecutar en local para probar en desarrollo.
        //Cuando se ejecuta desde spark (usando spark-submit)
        //no se debe especificar el master:

        //conf.setMaster("local[*]");//Descomentar esta línea para probar localmente
        JavaSparkContext sc = new JavaSparkContext(conf);

        /*Lee un archivo de texto en el RDD. El archivo puede ser local, estar ubicado en el hdfs
          o en cualquier fuente soportada por Hadoop
        */
        JavaRDD<String> texto=sc.textFile(file);

        //Utilizamos las funciones de Spark, junto con las expresiones lambda de Java 8,
        //para crear una colección de palabras (usando flatMap),
        //crear un mapa con la palabra como llave y 1 como valor (mapToPair),
        //y reducirlo por llave de tal forma que obtenemos un mapa con la palabra como llave
        //y el número de apariciones como valor (reduceByKey)

        JavaPairRDD<String, Integer> byKey = texto.flatMap(l->Arrays.asList(l.split("\\s")))
                    .mapToPair(s->new Tuple2<String, Integer>(s.toLowerCase(),1))
                    .reduceByKey((a,b)->a + b);

        //Guardamos el resultado, como archivo de texto

        byKey.saveAsTextFile("salida");
    }
}

La aplicación se puede probar localmente descomentando la línea conf.setMaster(“local[*]”);. La cadena local[*] indica que se ejecute con tantos hilos como procesadores en la máquina local. Podemos especificar el número de hilos (e.g. local[2]), dar la ruta a un servidor Mesos o Spark, o especificar que use Hadoop YARN (usando “yarn-client” o “yarn-cluster”). Cuando se va a ejecutar la aplicación usando spark-submit, no se debe especificar en la aplicación la url del máster (se puede pasar como parámetro a spark-submit).

Instalar spark y ejecutar la aplicación

La instalación de spark se limita a descargar y descomprimir el paquete indicado. Si se desea usar Yarn, es necesario descargar los binarios compilados con compatibilidad para Hadoop 2, y asegurarse que las variables de entorno HADOOP_HOME, HADOOP_CONF y YARN_CONF están correctamente establecidas.

Después de generar el jar usando maven, podemos ejecutar la aplicación usando spark-submit:

spark-submit --verbose --master local --class uniandes.bigdata.sparkDemo.WordCount "rutaAljar\sparkDemo-0.0.1-SNAPSHOT.jar" "rutaAlArchivo\test.txt"

Un problema común en Windows, si no se tiene instalada la distribución de Hadoop de Hortonworks, es que la aplicación falle porque Spark no encuentra winutils.exe, que se debería encontrar en la carpeta %HADOOP_HOME%/bin. Este archivo se puede descargar del repositorio de HDP, como indican en uno de los foros de Azure.

 

Conclusiones

El no estar limitado al paradigma MapReduce, el uso de RDD (Resilient Distributed Dataset), junto con el uso de expresiones lambda (Java 8, Scala y python), hacen que el proceso de escribir una aplicación para Spark sea intuitivo. Algunas de las características de Spark se ven cuando se ejecutan varias tareas sobre un mismo dataset, dado que puede compartir datos en memoria entre diferentes trabajos.

Spark es una alternativa interesante, especialmente en aplicaciones que requieren iteraciones y reuso de los datos (como el análisis de grafos y aprendizaje de máquina). Proyectos como GraphX  y Spark Streaming, hacen aún más interesante este framework.

 

El asesino es…

Licencia CC por el webmaster de Tierdoku.com

“El asesino es Delattre” dijo Bellard, sin el menor asomo de duda, lo que contrastaba con la expresión de todos los presentes. Daniel Delattre siempre ha demostrado ser una afectuoso, amable, dispuesto a ayudar a los demás aún más allá de sus posibilidades. No tenía sentido, no había nada que lo llevara a hacer algo como esto.

Bellard continuó con su relato. “Hace 2 días, después de asistir a una clase en su facultad, la hija de la víctima volvió a casa para encontrar el cuerpo de su padre en el recibidor, aproximadamente a las 10:00. Una hora más tarde me encontraba examinando la escena por primera vez. La puerta no había sido forzada, no había señales de lucha, la víctima no teñía una herida visible. Por la temperatura del cuerpo se concluyó que había muerto aproximadamente a las 9 de la mañana. El resultado de la autopsia demostró que había muerto de un paro cardíaco, causado por envenenamiento con una batracotoxina. El hecho de que fue envenenado por contacto hace muy poco probable el suicidio. La dificultad de tener un contacto accidental con esta sustancia, en la ciudad, apuntaba claramente a un homicidio.

Pierre Sicard era un contratista que hacía negocios principalmente con el gobierno. Unos días antes había logrado conseguir un gran contrato, por lo que alguna mafia podría no estar muy contenta. El tiempo de acción del veneno, que indicaba que fue administrado unos minutos antes de la hora de muerte, y el hecho de que las puertas no fueran forzadas ni existiera señal de lucha, indicaba que Sicard abrió la puerta y no sospechó de su asesino. Posiblemente lo conocía.

No había huellas, ni rastros del veneno fuera del cuerpo. El indicio más importante que teníamos en el momento era el tipo de toxina usado, no muchas personas tendrían acceso a ella. Esta pista hizo que se dirigieran las miradas a Nicolás Laurent, biólogo y ex-novio de la esposa de Sicard. Aunque ella había muerto un año antes, puede que Laurent nunca perdonara a Sicard a quien culpaba por el abandono.

Aunque Laurent tenía acceso a la toxina, su investigación se centraba en la familia Dendrobatoidea, la misma investigación lo liberaba de sospechas. Se encontraba como ponente en una conferencia en Alemania cuando ocurrieron los hechos.

Licencia CC por el webmaster de Tierdoku.com

Phyllobates terribilis

Como el único sospechoso hasta el momento tenía una coartada, volvíamos a estar como al principio. Bueno, no necesariamente, aunque la coartada lo liberaba como autor material, no lo hacía de cualquier responsabilidad. Empezamos entonces a evaluar las personas que podrían conectar a Laurent con Sicard. Los amigos y familiares de la esposa de Sicard entraban en este grupo. Daniel Delattre fue uno de sus amigos más cercanos.

Algunas personas habían visto a Delattre y a Laurent conversando unos meses antes. Esto apuntaba a Delattre, pero no tenía sentido. ¿Qué podía llevar a una persona como Daniel Delattre a hacer algo así?

Teniendo en cuenta el vínculo que unía a los involucrados, indagamos sobre la relación entre Sicard y su esposa. Después de 20 años de matrimonio se hicieron visibles los problemas, un año antes de la muerte de Marie. Delattre la conocía muy bien y culpaba a Sicard por su depresión, había perdido las ganas de vivir y se dejó derrotar por la enfermedad.

Revisamos el apartamento de Delattre y encontramos el <<arma>> homicida: Un guante.”

Desmitificando a los “Data Scientists”

He visto cientos de startups buscando “Ninja Programmers”. Sólo conozco un candidato que cumple ese requisito y aunque casualmente es uno de los mejores desarrolladores que conozco, que sea un maestro del ninjutsu no dice mucho acerca de su experiencia en el desarrollo de software. Aunque la analogía del Ninja puede servir para sintetizar algunas de las cualidades de un buen desarrollador, términos como Ninja o Rockstar no aportan a la descripción del perfil que se busca para cubrir las necesidades de la empresa.

BigData at the peak of inflated expectations

Gartner’s 2013 Hype Cycle for Emerging Technologies

Con el término “Data Scientist” pasa algo similar: no sabemos qué esperar.  Según el ciclo de Gartner para tecnologías emergentes para el 2013, tanto Big Data como Content Analysis están en la cima del  pico de expectativas infladas lo que hace que muchas empresas busquen sacarle provecho, sin tener muy claro cómo, e integrar a un científico de datos a la nómina parece tener mucho sentido. Incluso, Data Scientist es considerado el trabajo más sexy del siglo 21.

El problema del término Data Scientist es que engloba un conjunto de roles, con diferentes habilidades, que interactúan entre sí.

Existen varios trabajos que intentan clasificar los roles de los científicos de datos. Kandel et al. (2012), por ejemplo, identifican tres arquetipos: Hacker, Scripter y Usuario de aplicación; en el mismo trabajo describen 5 tareas de alto nivel: Descubrir, Discutir, Perfilar, Modelar y Reportar. En su reporte “Four Functional Clusters of Analytics Professionals“, Talented Analytics identifica 4 categorías de profesionales de acuerdo a sus funciones: Preparación de datos, Programadores, Administradores y Generalistas. Así como estos, se pueden encotrar varias taxonomías de Data Scientists, pero la que más me ha gustado y la que utilizaré en el resto del artículo es la presentada en “Analyzing the Analyzers: An Introspective Survey of Data Scientists and Their Work“, en la que definen un conjunto de habilidades, y un conjunto de roles, a partir de una encuesta realizada a profesionales que se identifican con el rol de Data Scientist.

Analyzing the Analyzers An Introspective Survey of Data Scientists and Their Work

Grupos de habilidades

En el análisis identifican una serie de habilidades que se relacionan con el trabajo de los diferentes profesionales entrevistados y se generan cinco grupos de habilidades usando Non-negative Matrix Factorization: Negocio, Machine Learning/Big Data, Matemáticas/Investigación de operaciones, Programación y Estadística.

En la encuesta también se les preguntó a los profesionales cómo se ven a sí mismos y, de igual forma, se generaron cuatro clusters:  Data Developer (o Data Engineer), Data Researcher, Data Creative y Data Businessperson.

Aunque cada uno de estos roles tiene fortalezas de manera predominante en uno o dos de los grupos de habilidades, todos los profesionales tienen habilidades en los 5 grupos.  El análisis sugiere tener equipos de Data Scientists de los diferentes roles de tal forma que sus habilidades se superpongan de la mejor manera posible.

" Analyzing the Analyzers An Introspective Survey of Data Scientists and Their Work"

Diferentes Roles con habilidades predominantes, pero todos los roles tienen habilidades de los 5 grupos.

Este marco nos permite diferenciar entre profesionales del análisis de datos y nos permite describir de una manera más detallada los perfiles necesarios. También nos permite hablar acerca de las habilidades que se persiguen en un curso específico de Data Science. Por ejemplo, en el curso de “From Big Data to Content Analysis” dictado en el 2012 en la universidad de los Andes, el programa buscaba desarrollar habilidades de los grupos ML/Big Data y Programming, asociadas con los roles Data Creative y Data Engineer, pero gracias a la interdisciplinariedad de los participantes los proyectos se nutrieron con habilidades del grupo de estadística (Visualización, análisis espacial, marketing), más asociado al rol de Data Researcher.

Pensamientos finales

  • No todos los Data Scientists son iguales. Un científico de datos no trabaja solo, se necesita un equipo que sume sus fortalezas y su conocimiento del dominio de los datos para obtener los mejores resultados.
  • Aunque cada rol tiene fortalezas especialmente en un grupo de habilidades, un científico de datos debe conocer lo suficiente de los otros grupos de habilidades como para facilitar las discusiones.
  • La interdisciplinaridad de un equipo de análisis de datos es una de sus mayores fortalezas.
  • Prefiero el término Data Engineer frente a Data Developer, es más general y describe mejor el rol.
  • Los autores de  Analyzing the Analyzers han publicado un test para determinar tu rol como Data Scientist. A mi me pareció bastante acertado.
  • Conozco personas que conformarían un excelente grupo de data science, algunas de ellas creo que nunca han pensado en sí mismas como data scientists.
  • Data Science no implica Big Data, aunque sean términos que se relacionan.

Recomendados de la semana XXV

Después de un tiempo sin recomendados este post marca el regreso y, para hacerlo especial, será sobre juegos. A continuación una pequeña lista de juegos recomendados para Android:

https://www.youtube.com/watch?v=Og2wYxkefeU

  • Monster Match: Una mezcla de un Puzzle y un RPG tipo Pokémon. Monstruos que evolucionan y aumentan de nivel, con afinidad a diferentes elementos, que atacan dependiendo de los combos que consiga el jugador uniendo gemas del mismo color en el tablero. Cada monstruo tiene además una habilidad especial (cambiar el color de las gemas, atacar a uno de los monstruos enemigos, ataque grupal, restauración, entre otras).
  • SPY Mouse: Un ratón espía que se enfrenta a peligrosos enemigos para derrotar a un peligroso… gato (Obviamente) y recuperar todo el queso que sea posible. Aunque cuesta 1.99 USD en el play store, en Samsung Apps es gratis (Para el Galaxy Note 10.1 y 8.0).

https://www.youtube.com/watch?v=xPeVAVWM5Sc

  • Air Penguin. La historia de un pingüino especial en su aventura para reunirse con su familia.

7x7

  • Dots y 7×7. Dos entretenidos Puzzles con interfaz minimalista.
  • Into the dead. Un juego para los fanáticos de los zombies, en el que el objetivo es sobrevivir tanto como sea posible.

Para terminar los recomendados de esta semana, y para no perder la costumbre, una muy buena canción, Something To Say de Uncle Jed:

Intuición

A little Lion cub dreaming of "Kittens and Bows" (or maybe Zebras and Springbok).

“When I examine myself and my methods of thought I come to the conclusion that the gift of fantasy has meant more to me than my talent for absorbing positive knowledge” — Albert Einstein

A little Lion cub dreaming of "Kittens and Bows" (or maybe Zebras and Springbok).

Sweet Dreams, (Martin Heigan– Creative Commons).

Poco después de conocerla tuve un sueño: Huíamos no sé de qué, pero estaba tranquilo porque estábamos juntos. Recuerdo de manera vívida esa sensación de tranquilidad, así como la profundidad de su mirada.

Aunque dicen que tenemos entre 5 y 7 sueños cada noche, en muy pocas ocasiones recuerdo haber soñado. Soñar –mientras duermo, soñar despierto es casi mi estado natural–, se convierte en un acontecimiento importante. Este sueño, particularmente, me marcó lo suficiente para recordarlo casi dos años después. En ese entonces no tenía sentido, apenas la había visto unas cuantas veces y nuestras conversaciones no pasaban mucho más allá de las formalidades de oficina.

Desde entonces varias cosas han pasado y algunas podrían ser metaforizadas como la causa de aquel escape. Poco a poco se ha convertido en una de las personas más importantes en mi vida. Cada vez que creo descubrir un poco sobre ella me doy cuenta de la infinidad de maravillas que se ocultan bajo la superficie.

Si quisiera buscar explicaciones racionales, a la relación entre el sueño y la realidad, las encontraría: La tendencia a confirmar(Es cognitivamente más fácil procesar datos que confirman), la intuición, la tendencia a ignorar el rol del azar y la coincidencia… Sin embargo, cada vez con más intensidad, deseo saber cómo continúa la historia.

Reflexiones sobre educación y aprendizaje

Cuando aún estaba en el colegio, en noveno, me gustaba escribir ensayos. Lo hacía en una máquina de escribir mecánica, “portátil”. Me encantaba el sonido de las teclas al ritmo de los pensamientos.  Luz Dary, la profesora de ciencias sociales, me impulsaba a escribir, leyendo cada uno de ellos y comentando sobre su contenido (la forma no era digna de mención).  Escribía sobre cualquier cosa que pasara por mi cabeza pero, en ese entonces, quería ser profesor así que la mayoría hablaba de educación, incluyendo autocrítica al proceso de aprendizaje. No recuerdo mucho de aquellos años, sin embargo hoy vinieron a memoria esos ensayos, y su temáticas.

Estudiante - A girl reads (World Bank - Creative Commons)

Estudiante – A girl reads (World Bank – Creative Commons)

Como parte de mi investigación he estado leyendo sobre psicología cognitiva, en particular sobre el papel de la emoción y la motivación en el aprendizaje, y sobre cómo el intelecto puede verse como un sistema con dos componentes, uno de conocimiento y otro personal. La palabra sistema es la clave, dado que lo que vemos como intelecto es resultado de las propiedades emergentes.

Otro de los conceptos que me han parecido muy claros, y que después de leerlo he identificado en muchos profesionales en el pasado, es el de desequilibrio (incertidumbre, disonancia). Muchas veces en el sistema educativo se enseñan patrones de soluciones, conceptos que sirven para solucionar cierto tipo de problemas o fórmulas genéricas para abordarlos, es importante para un estudiante entender este tipo de soluciones, sin embargo el problema se presenta cuando el problema a resolver se sale de esos modelos. Esto nos lleva a pensar en dos formas de conocimiento propuestas por Kagan, esquemático y semántico. El segundo tipo de conocimiento incluye construcción de significado, al encontrar incertidumbre el individuo puede adaptarse a los cambios y tratar efectivamente con ellos.

La dificultad de tratar con problemas que se salen de los patrones es un problema que ha sido identificado en muchos programadores, haciendo común el uso de test como fizz-buzz en entrevistas de trabajo. El ejemplo de Fizz-buzz nos muestra que muchos de los estudiantes de programación sólo aprenden a repetir soluciones preestablecidas, sin poder adaptarlas a sus necesidades. Las soluciones preestablecidas sólo serán útiles en los exámenes, los problemas del mundo real difícilmente se ajustan a un patrón definido, lo importante es saber adaptar los patrones aprendidos a un problema particular.

Como ingeniero de sistemas tengo la tendencia a ver todo bajo un enfoque sistémico. Es por esta razón que me parece que en el sistema educativo necesitamos enfocarnos en las propiedades emergentes, en la adaptabilidad, y en no dejar de lado ningún componente del intelecto –es importante incluir la motivación y las emociones en el aprendizaje. Debemos, aunque suena a cliché, enseñar a aprender.

Mientras escribía este post, Andrea compartió el vídeo de TED que acompaña esta entrada, Sugata Mitra: Construyendo una Escuela en la Nube.