Nube de Etiquetas
(Ah?)

martes, marzo 31, 2015

Las herramientas que manejas no definen lo que eres

Con frecuencia, las personas que han incursionado en el área de minería de datos, análisis de sistemas, e investigación de operaciones, vienen de áreas muy distintas a las que los empleadores (y el público en general) creen que los expertos en estas áreas deben venir.

Los cursos de optimización en la Universidad Simón Bolívar, durante algún tiempo fueron dictadas por profesores, cuya carrera base era reflejo de esto que acabo de mencionar:

  • Una profesora egresada de Licenciatura en computación.
  • Un profesor egresado de Matemáticas Aplicadas.
  • Un profesor egresado de Ingeniería Civil.
  • Un profesor egresado de Ingeniería Eléctrica.
  • Un profesor egresado de Ingeniería de Producción.
A pesar de la diversidad de orígenes, ha habido una convergencia (en estos profesores, al menos) hacia el área de investigación de operaciones, a un nivel suficiente como para ser docentes, y en la mayoría de los casos, realizar aportes al estado del arte mediante publicaciones en revistas y conferencias científicas arbitradas.

Sin embargo, las personas que interactuan con quienes hemos hecho "vida" en el área de investigación de operaciones, minería de datos, análisis de sistemas, y máquinas de aprendizaje, suelen suponer que la carrera base es Ingeniería de Computación, o Matemáticas.

El trasfondo que implica la formación de un egresado de Computación, está lleno de una serie de herramientas y lenguajes que raras veces son dominados por especialistas de investigación de operaciones / machine learning / análisis de sistemas. Por ejemplo:
  • Lenguajes de bajo nivel (C++, por ejemplo).
  • Bases de datos (SQL, por ejemplo).
  • Arquitectura de Redes.
  • Programación de páginas web.
  • ...etc.
Sin embargo, estas no son destrezas necesariamente requeridas para que una persona sea un especialista en las áreas de las que he venido hablando.

Quienes asumen que quienes son especialistas en optimización y patrones, son necesariamente matemáticos, pues están dejando de considerar que la optimización utiliza las matemáticas como fundamento base, pero constituye más bien un uso práctico de los aspectos teóricos de las matemáticas. En muchos casos de la vida real, la investigación de operaciones está fundamentada en heurísticas, que pueden estar más fundamentadas en el sentido común, y emulación de ciertos aspectos de la naturaleza (como las colonias de hormigas, las neuronas, o los enjambres de abejas) que en teoremas fuertes matemáticos asociados a la optimalidad.

Es importante para quienes desean encontrar un profesional que resuelva un problema, con un enfoque de investigación de operaciones / análisis de sistemas / machine learning (aprendizaje artificial), deben entender que para este tipo de proyectos y problemas, es muchísimo más importante la manera de pensar (capacidad de abstracción, capacidad de análisis y síntesis, capacidad de comunicar ideas complejas, capacidad de volver cuantitativas variables subjetivas), que el manejar un lenguaje o herramienta particular.

Las herramientas y tecnologías que una persona utiliza, y la forma en que se enmarca el pensamiento, son un subproducto de los intentos que se han realizado para resolver problemas. Hay que tomar en cuenta, que para resolver un problema particular, por lo general, son válidas muchas alternativas de herramientas y tecnologías.

Ejemplo: Se necesita hacer "agrupamiento" (clustering). Esto puede hacerse en Matlab, R, Python, Lenguaje C++, Fortran, SPSS, SAS,... e incluso en Excel, programando con Visual Basic para Aplicaciones. Más importante que la herramienta a usar, es que el profesional que consigamos tenga la capacidad de analizar el problema, identificar los aspectos relevantes a considerar, e implemente la solución de forma eficiente, cumpliendo con los requerimientos exigidos. Quien sepa programar en cualquiera de estos lenguajes y herramientas, podría fácilmente aprender otro. En estos casos, lo más difícil de la programación, no es saber cómo se escribe una instrucción, sino tener claro en la cabeza qué es lo que se quiere hacer.

Es importante entonces buscar las personas con el cerebro entrenado para el tipo de problema, y no personas que sepan usar un conjunto de herramientas. El que tiene la capacidad de analizar y resolver el problema, aprenderá fácilmente la herramienta que necesite utilizar.