Quiero ser un científico de datos ¿Por dónde empiezo?


Uno de mis alumnos me hizo esta pregunta: “Profesor, quiero desarrollarme como científico de datos, ¿Por donde empiezo?“. Mi respuesta inmediata fue: “Te felicito, que bueno saber que tienes claro tu meta profesional, pero vamos por partes, primero cuéntame ¿Qué es lo que sabes de un científico de datos?¿Qué es lo que te gusta de esta profesión?“. Tuvimos una extensa charla, con puntos muy interesantes, compartiendo material sobre el tema y analizando la demanda de este “nuevo oficio” en el mercado local e internacional.

Este tema lo había leído antes de muchas fuentes, sin embargo sentía que había mucha información por ordenar, quería saber que habilidades técnicas e interpersonales debería poseer este profesional y que herramientas debería dominar un verdadero científico de datos.

En el camino encontré artículos muy interesantes de fuentes confiables y otras con un punto de vista distinto pero que aportaban mucho para mi objetivo.

En el año 2012, la conocida Harvard Business Review publicó un artículo denominado “Data Scientist: The Sexiest Job of the 21st Century“. En este artículo se describe como fue la llegada de Jonathan Goldman a LinkedIn en el 2006,  y cual fue su aporte a la empresa mediante un arduo trabajo de análisis, interpretación, uso de big data, técnicas estadísticas y descubrimiento de un algoritmo que permitió a LinkedIn desarrollar la famosa funcionalidad “Gente a la que puedes conocer“, por la cual esta conocida red social llegó a incrementar de 8 millones en el 2012, a 450 millones cuentas de usuarios en la actualidad.

Quizás ya tienes una idea de lo que es un Científico de Datos o Data Scientist, y si no es así, el siguiente concepto será definitivo.

Un Científico de Datos, es la persona que sabe más de estadística que cualquier programador y que a la vez sabe más programación que cualquier estadístico

De esta manera acertada e ingeniosa fue que Josh Wills, ingeniero de datos de Slack Technologies, hizo referencia a los científicos de datos. Haciendo un resumen, podríamos decir qué  “Un Científico de datos, es un profesional dedicada a analizar e interpretar grandes volúmenes de datos“.

Habilidades de un científico de datos

La mayoría de los científicos de datos utilizan una combinación de habilidades todos los días, algunos de los cuales lo han aprendido en el trabajo o de otra manera, generalmente autodidacta. No hay ninguna credencial académica específica que los científicos de datos están obligados a tener.

Todas las habilidades discutidas en esta publicación pueden ser auto-aprendidas. Considérelo una guía sobre cómo convertirse en un científico de datos.

Amor a las Matemáticas

Habilidades en Matematicas

La matemática es una parte importante de la ciencia de los datos.

Asegúrese de conocer los fundamentos de la matemática universitaria desde el cálculo al álgebra lineal. Cuanto más matemáticas conozca, mejor.

Cuando los datos son grandes, a menudo se vuelven difíciles de manejar. Tendrás que usar las matemáticas para procesar y estructurar los datos con los que estás tratando.

Tendrás que entender cómo manipular matrices de datos y obtener una idea general detrás de la matemática de los algoritmos.

Y bueno, ¿Cómo nos ponemos al día con las matemáticas?. Puedes optar por los cursos MOOC que se ofrecen por Internet, aquí una lista de ellos.

El MIT también ofrece un curso abierto específicamente sobre las matemáticas de la ciencia de datos en inglés, pero puedes encontrar mucha información en español en coursera.

Pasión por la Estadística

Habilidades en Estadistica

La estadística es otro de los conocimientos importantes que debes tener en cuenta para poder inferir ideas de pequeños conjuntos de datos a poblaciones más grandes de datos.

La estadística es la ley fundamental de la ciencia de los datos. Las estadísticas pavimentarán su camino sobre cómo convertirse en un científico de datos.

Necesitas saber estadísticas para jugar con los datos. Las estadísticas nos permiten comprender mejor los patrones observados en la data y extraer las ideas que necesita para sacar conclusiones razonables. Por ejemplo, la comprensión estadística inferencial le ayudará a hacer conclusiones generales sobre todo el mundo en una población de una muestra más pequeña.

Para entender la ciencia de los datos debes conocer los fundamentos de las pruebas de hipótesis y diseñar experimentos para entender el significado y el contexto de tus datos.

Pensamiento Algorítmico

Pensamiento algoritmico

Los algoritmos son la capacidad de hacer que las computadoras sigan un cierto conjunto de reglas o patrones.

La comprensión de cómo utilizar las máquinas para hacer su trabajo es esencial para procesar y analizar conjuntos de datos demasiado grandes para que la mente humana procese.

Para que pueda hacer cualquier trabajo pesado en la ciencia de los datos, tendrá que entender la teoría detrás de la selección del algoritmo y la optimización. Tendrá que decidir si su problema requiere un análisis de regresión o un algoritmo que ayude a clasificar diferentes puntos de datos en categorías definidas.

Es importante conocer muchos algoritmos diferentes, por ejemplo debes aprender los fundamentos del machine learning. El machine learning es lo que permite a Amazon recomendarle productos basados en su historial de compras sin intervención humana directa. Es un conjunto de algoritmos que utilizarán la potencia de la máquina para descubrir ideas para usted.

El machine learning es lo que permite a Amazon recomendarle productos basados en su historial de compras sin intervención humana directa.

Para hacer frente a conjuntos de datos masivos, necesitará utilizar máquinas para ampliar su pensamiento, ¿muy emocionante cierto?.

Detallista en la Visualización de Datos

Finalizar su análisis de datos es sólo la mitad de la batalla. Para impulsar el impacto, tendrá que convencer a otros a creer y adoptar sus ideas.

“Una imagen vale más que mil palabras”.

Los seres humanos son criaturas visuales, casi el 90% de la información transmitida a su cerebro es de naturaleza visual y las imágenes son procesadas 60.000 veces más rápido que el texto, como dice el dicho: “Una imagen vale más que mil palabras”.

La visualización de datos ó Data Visualization es el arte de presentar información a través de gráficos y otras herramientas visuales, para que el público pueda interpretar fácilmente los datos y sacar conclusiones de ello.

¿Qué información se presenta mejor en un gráfico de barras y qué tipos de datos debemos presentar en un diagrama de dispersión? Esas son las preguntas que debe hacerse para mejorar su trabajo.

Recuerda que los seres humanos están conectados para responder a señales visuales. Cuanto mejor pueda presentar sus datos, más probable es que alguien tome medidas basadas en ellos.

Échale un vistazo a estas herramientas para data visualization.

Sólidos Conocimientos del Negocio

La data que pueda analizar significan poco sin su contexto. Tienes que entender el negocio que estás analizando.

La claridad en el negocio es la pieza central de cómo convertirse en un científico de datos.

La mayoría de las empresas dependen de sus científicos de datos no sólo para extraer conjuntos de datos, sino también para comunicar sus resultados a las diversas partes interesadas y presentar recomendaciones sobre las que se puede actuar.

Los mejores científicos de datos no sólo tienen la capacidad de trabajar con grandes y complejos volúmenes de datos, sino que también entienden las complejidades de la empresa para la que trabajan.

Tener conocimiento general de negocios les permite hacer las preguntas correctas, y llegar a soluciones eficientes y recomendaciones que son realmente factibles dado cualquier limitación que el negocio podría imponer.

Mente analítica

Para realizar bien tus proyectos de Data Science necesitarás una mentalidad analítica. Una gran cantidad de datos en tus proyectos implica aplicar soluciones  a los problemas con una mente rápida y aguda.

Échale un vistazo a Lumosity, es un sitio web que pone a prueba tu capacidad y rapidez mental mediante juegos didácticos, es muy entretenido y divertido.

Muy bien, con todas las habilidades desarrolladas (estoy seguro que lo están poniendo en práctica), ahora necesitarás aprender a usar las herramientas modernas para proyectos Data Science. Cada herramienta tiene sus fortalezas y debilidades, y cada una desempeña un papel diferente en el proceso de la ciencia de datos. Puedes utilizar uno de ellos, o puedes utilizar todos ellos. Lo que sigue es una amplia visión general de las herramientas más populares en la ciencia de los datos, así como los recursos que necesitará para aprender adecuadamente si desea bucear más profundo.

Herramientas

Formatos de archivos

De seguro sabes que la data se puede almacenar en diferentes formatos de archivo. Éstos son algunos de los más comunes y utilizados:

CSV: (Comma Separated Values), si, son esos archivos cuyos valores están separados por comas. Es posible que hayas abierto este tipo de archivo con Excel antes. Los CSV separan los datos con un delimitador, un signo de puntuación que sirve para separar diferentes datos.

SQL: SQL (Structured Query Language) o Lenguaje Estructurado de Consulta, almacena datos en tablas relacionales. Si va de la derecha a una columna a la izquierda, obtendrá diferentes puntos de datos en la misma entidad (por ejemplo, una persona tendrá un valor en las categorías (columnas) EDAD, GENERO y ESTATURA).

JSON: Javascript Object Notation es un formato de archivo muy utilizado para el intercambio de datos ligero entre sistemas de software y además su estructura es legible por humanos, es decir, si abrimos este archivo, de seguro que sabrás interpretar la información que contiene.

Microsoft Excel

Excel es a menudo la herramienta de entrada a la ciencia de datos, y algo que cada científico de datos puede beneficiarse de su aprendizaje.

Excel le permite manipular fácilmente los datos, ademas podrás realizar ecuaciones en datos sin necesidad de aplicar conocimientos de programación en absoluto. Es una herramienta útil para los analistas de datos que quieren obtener resultados sin programación.

Excel es fácil de empezar, y es un programa que cualquiera que esté en analytics intuitivamente entenderá. Puede ser útil para comunicar datos a personas que pueden no tener ninguna habilidad de programación: todavía deben ser capaces de jugar con los datos.

Por ejemplo, puedes utilizar excel para hacer lo siguiente: Importar de un pequeño conjunto de datos sobre las estadísticas de los resultados de los partidos de fútbol del campeonato local y hacer un gráfico de los máximos goleadores de la liga.

SQL

Todo proyecto de Data Science necesita datos. SQL es un lenguaje de programación especialmente diseñado para manipular y extraer datos de sistemas gestores de bases de datos relacionales, como MySQL, SQL Server, Oracle, etc.

SQL es la herramienta más popular utilizada por los analistas y científicos de datos.

La mayoría de los datos en el mundo se almacenan en tablas que requieren SQL para acceder. Podrás filtrar y ordenar los datos con él.

Por ejemplo, puedes utilizar SQL para realizar una consulta cuyo objetivo sea seleccionar los diez productos más vendidos en la temporada de invierno de una base de datos SQL de una Tienda Comercial.

Python

Python es un poderoso y versátil lenguaje de programación utilizado para múltiples propósitos, desde la creación de sitios y aplicaciones web hasta para proyectos Data Science. Python tiene muchas bibliotecas de código dedicadas a facilitar el trabajo de la ciencia de datos. Python es un lenguaje de programación versátil con una sintaxis simple que es fácil de aprender.

Python es el lenguaje de programación más popular que se enseña en las universidades de Estados Unidos y otros países con un desarrollo acelerado en proyectos tecnológicos.

Muchos científicos de datos usan Python para resolver sus problemas: el 40% de los encuestados en una encuesta definitiva de ciencia de datos realizada por O’Reilly utilizó Python, que era más del 36% que utilizó Excel.

Los ingenieros de datos y los científicos de datos utilizan Python para proyectos de conjuntos de datos de tamaño mediano a grande.

Por ejemplo puedes utilizar Python para consultar tweets de celebridades y luego hacer un análisis de las palabras más frecuentes que se utilizan al aplicar las reglas de programación.

Lenguaje de programación R

R es un entorno y lenguaje de programación diseñado para el análisis de datos. R brilla cuando se trata de construir modelos estadísticos y mostrar los resultados.

R es un elemento básico en la comunidad de ciencias de la información porque está diseñado explícitamente para las necesidades de ciencias de la información. Es el entorno de programación más popular en ciencias de la información con el 43% de los profesionales de datos que lo utilizan.

R es un entorno en el que se puede aplicar una amplia variedad de técnicas estadísticas y gráficas.

La comunidad aporta paquetes que, de forma similar a Python, pueden extender las funciones básicas de la base de código R para que puedan aplicarse a problemas específicos, como medir métricas financieras o analizar datos climáticos.

Los ingenieros de datos y los científicos de datos utilizarán R para conjuntos de datos de tamaño mediano a complejo.

Por ejemplo, puedes utilizar R para representar gráficamente los movimientos del mercado bursátil en los últimos cinco años.

Herramientas Big Data

¿Te imaginas cuánta información almacena Facebook en este momento?. Cuando hablamos de Big Data, hacemos referencia al almacenamiento de grandes volúmenes de datos y a los procedimientos usados para analizar la información y encontrar patrones repetitivos dentro de esos datos.

Cualquier conjunto de datos que es demasiado grande para herramientas de datos convencionales como SQL y Excel puede considerarse Big Data, de acuerdo con McKinsey. La definición más simple es que Big Data son aquellos datos que no caben en su computadora.

Entre las herramientas más usadas en proyectos de Big Data, tenemos:

Hadoop

La historia de Hadoop se inicia cuando Google descubre que requiere urgentemente de una solución que les permita continuar procesando datos al ritmo que crecía de manera exponencial su famoso buscador y todo su ecosistema.

Usando Hadoop, puedes almacenar tus datos en varios servidores mientras lo controlas desde uno.

La solución es una tecnología llamada MapReduce. MapReduce es una abstracción elegante que gestiona una serie de ordenadores como si fuera un único servidor central. Esto le permite almacenar datos en varios equipos, pero procesarlo a través de uno.

Hadoop es un ecosistema de herramientas open source que te permitirán almacenar enormes volúmenes de datos en diferentes servidores. Además le permite administrar mucho más datos de lo que puede en una sola computadora.

Los científicos de datos utilizan Hadoop para manejar grandes conjuntos de datos.

Por ejemplo usando Hadoop podrás almacenar conjuntos de datos masivos que se actualizan en tiempo real, como por ejemplo el número de likes que generan los usuarios de Facebook.

NoSQL

NoSQL hace referencia a los sistemas gestores de base de datos que difieren de almacenar la información de manera relacionada, es decir, administran base de datos con datos no integrados.

NoSQL incluye una gran cantidad de soluciones de almacenamiento de datos que separan grandes conjuntos de datos en trozos manejables.

NoSQL fue una tendencia iniciada por Google para hacer frente a las cantidades increíblemente grandes de datos que estaban almacenando. La información la almacenan en documentos de manera estructurada en el formato JSON, este formato es muy popular para el intercambio de datos entre sistemas. Las soluciones como MongoDB han creado bases de datos que pueden manipularse como tablas SQL, pero que pueden almacenar los datos con menos estructura y densidad.

Los científicos de datos utilizan base de datos NoSQL para almacenar grandes conjuntos de datos, como por ejemplo para almacenar bases de datos de sitios web que tienen millones de usuarios registrados.

Etapas del Proceso Data Science

Cada una de las herramientas tiene sus fortalezas y debilidades, y cada uno puede ser aplicado a diferentes etapas del proceso de un proyecto Data Science.

Para mayor información, te invito a visitar los siguientes enlaces. Si conoces de otras herramientas o tienes experiencia en proyectos de Data Science por favor compártelo en tus comentarios.

Fuentes y Referencias:

  1. Data Scientist: The Sexiest Job of the 21st Century
  2. Getting your first Data Science job
  3. El científico de datos, una nueva y necesaria profesión
  4. 19 free public Data Sets for your first Data Science Project
  5. Big Data: The next frontier for innovation, competition, and productivity.

Siete errores que estás haciendo en tu carrera profesional


En mi experiencia como desarrollador de software, gestor de proyectos y profesor universitario, he tenido la oportunidad de hablar con distintas personas sobre como pueden mejorar su carrera profesional y acelerar su crecimiento.

Y durante este tiempo, he encontrado algunos errores muy comunes que cometemos en nuestra carrera (incluyéndome) que podemos mejorar.

Si bien el presente post esta orientado para personas dedicadas al desarrollo de software, también aplica para cualquier profesión (creo yo), así que lo invito a leerlo.

1. No tener un objetivo claro.

Sin un destino en mente, vas a la deriva por la vida,  vas por donde el tiempo te lleve.

Si quieres tener una carrera profesional exitosa, lo que necesitas es saber a donde estas intentando ir.

sin_objetivos

Existen muchos profesionales que prácticamente han tenido el mismo trabajo con las mismas responsabilidades durante mucho tiempo, por no decir años, muchas veces por que es la opción por defecto. Si no estas fijando claramente tus objetivos para el futuro, para tu carrera, probablemente caerás en la monotonía laboral.

A si que, ¿Qué puedes hacer al respecto?

Hoy, en este instante, tómate un tiempo y piensa en tu carrera de programador o la que fuere y decide cual es tu objetivo inmediato.

Es decir, ¿Qué es a lo que aspiras, en este momento?

Una vez que sepas cual es tu objetivo, podrás seleccionar uno nuevo, pero por ahora, que es lo que deseas lograr en tu carrera de programador?

Quizás quieras escribir esto y ponerlo en un lugar donde lo veas todos los días para que recuerdes que estás aspirando lograr, eso es un gran paso.

2. No invertir en “habilidades blandas”.

Existen muchos programadores que son muy buenos en las líneas de código.

Conozco a grandes programadores que pueden hacer funcionar algorítmicamente círculos a mi alrededor – es un decir 🙂 – ellos pueden entender y pensar sobre arquitecturas complejas en sus cabezas a un nivel que ni siquiera puedo aspirar en competir con ellos.

Pero adivina que?

Algunos de ellos no lograron el verdadero reconocimiento promocional (aunque sí su reconocimiento personal y eso vale mucho) – por decirlo de alguna manera- debido a que lo más importante no es QUÉ lograste, sino CÓMO lo lograste. Las organizaciones (clientes, usuarios) tienden a valorar más las competencias de una persona, es decir sus comportamientos aplicados para lograr sus objetivos.

Por ello es importante trabajar en las habilidades blandas en tu carrera de programador, y no solo es cuestión de tener habilidades técnicas que tanto hoy en día, los programadores se concentran en ellas.

soft-skills-programmer

Como desarrollador de software, estoy seguro que ya sabes, que no todo es escribir código.

Hay muchas otras habilidades importantes que son necesarias para tener éxito.

Tenemos que trabajar constantemente con personas, las habilidades interpersonales se han convertido en una necesidad.

Los  plazos ajustados y cambios rápidos requieren de una estabilidad mental, concentración y auto-motivación.

En un entorno de constantes cambios, lleno de muchas cosas posibles para trabajar, tenemos que aprender a priorizar y cómo ser lo más productivo posible.

Y no nos olvidemos de la salud y los ejercicios, así como las finanzas personales, que si se ignoran pueden llevarnos a la ruina.

Si eres desarrollador de software,  el siguiente libro “Soft Skills: The Software Developer’s Manual” te ayudará en profundizar sobre este tema.

Lo que quiero resaltar es que en la vida, sin importar lo que estés haciendo o de que profesión eres, las habilidades blandas son casi siempre más importantes que las duras (habilidades técnicas), de modo que asegúrate de aprender de ellas.

3. No ser parte de la comunidad.

Una de las cosas que pueden beneficiar a cualquier persona sea de la especialidad que fuere, es involucrarse en alguna comunidad.

No solo ser parte de algo más grande que uno, sino que al estar en él (comunidad) te ayuda a mejorar tus habilidades, a hacer nuevos contactos (networking) y fijar tus aspiraciones un poco más alto (al compararte).

Ser parte de algo más grande que uno mismo, es una manera segura de crecer.

comunidad-software

Si sientes que tu carrera de desarrollo de software se ha estancado, puedes unirte a una comunidad de personas de ideas afines que comparten sus esfuerzos y pueden ofrecer consejos para ayudarte a superarlos.

Ser parte de una comunidad es también una gran manera de llamar la atención y hacer networking que pueden beneficiarlo en gran medida en su carrera.

Pero ¿Cómo puede unirse a una comunidad?

Es simple. Hay una amplia variedad de grupos de distintos temas en Meetup en todo el mundo, que sólo tienes que unirte y participar en una reunión.

4. No especializarse

Elije un nicho para sí mismo y especialízate en ese nicho.

Esto no significaif only... que no se puede tener una amplia base de conocimientos, pero,  es bueno elegir un área donde enfocar nuestros esfuerzos en profundidad.

Es muy importante, sobre todo al principio de su carrera, ser especialista de algo.

Los especialistas son siempre mucho más demandados, pueden obtener mayores tarifas por hora y salarios, y son capaces de construir una reputación mucho más rápido.

Además, hay una cierta satisfacción de saber que usted conoce alguna área de desarrollo de software o tecnología a profundidad.

Es posible que con el tiempo puedas superar tu estanque – y ser el momento de explorar aguas más profundas – pero, empezando con una especialidad es una gran manera de construir un nombre y una reputación por sí mismo en la industria del desarrollo de software.

5. No invertir en tu marca personal

A lo largo de tu vida muchas cosas van a ir y venir. Es posible que cambies de trabajo. Puedes incluso cambiar de esposa(o). Puedes ser rico o puedes ser pobre. Puedes estar en forma o podrías ser gordito, pero independientemente de lo que te pase en la vida, hay algo que se queda con nosotros para siempre … y ese es Tú nombre!

marca-personal

Por lo tanto, ya que tu nombre va a estar contigo para toda la vida, no crees que deberías poner un poco de esfuerzo en él?

Tu nombre, o tu marca personal, es un activo muy valioso que muchos jóvenes (en proceso de crecimiento profesional) ni siquiera son conscientes de que tienen.

Un nombre o marca personal, es una herramienta muy potente para conseguir un trabajo, conseguir un ascenso, lograr el aterrizaje de un nuevo cliente o incluso iniciar tu propio negocio.

Existen muchos desarrolladores de software que nunca tendrán que preocuparse por la seguridad laboral, ya que han invertido el tiempo y esfuerzo para construir una marca personal sólida por sí mismos. Ellos saben que no importa lo que pase, que pueden conseguir otro trabajo en cuestión de horas, debido a que tienen una buena reputación y son muy bien conocidos.

Para construir tu marca personal seas de la industria que fuera, te recomiendo empezar con la creación de un blog, elegir un nicho o especialidad que quieras ser conocido, aprender a correr la voz y obtener su nombre por ahí .

6. No trabajar en un proyecto paralelo.

Debes siempre tener algún tipo de proyecto paralelo, sea este personal o que usted sea el proveedor de un servicio.

Un proyecto paralelo tiene muchos beneficios que quizás podría no darse cuenta.

proyecto_personal

Trabajando en un proyecto paralelo es una gran manera de desarrollar nuevas habilidades y aprender nuevas tecnologías que pueden beneficiar si alguna vez hay que buscar un nuevo empleo.

A veces, un proyecto paralelo puede ser agradable alivio del estrés del trabajo que tiene que hacer. Un proyecto paralelo puede ser una buena salida que le da algo que esperamos que cada día y te hace sentir más relajado. Quizás te guste dictar clases? trabajar desde casa? convertirte en consultor en la especialidad que fueras.

7. No tener un plan de auto-estudio.

¿Qué estas haciendo para mejorar tus conocimientos, tus habilidades, tus competencias? ¿Qué haces para mantenerte al día en la especialidad que elegiste?leyendo libro

Si no tiene algún tipo de plan de cómo vas a aprender continuamente cosas nuevas y afilar sus habilidades, necesitarás desarrollar uno de inmediato.

¿Quieres un plan sencillo?

Puede bastar con sólo auto-comprometerse a leer un libro técnico o de desarrollo profesional cada mes.

En un año habrá leído 12 libros.

Recuerde, las cosas pequeñas se suman con el tiempo. Sólo dejando de lado incluso 30 minutos al día, cada día, puede hacer una gran diferencia en un año o dos.

A la acción

La actitud de querer hacer las cosas nos lanza a la acción, como reza el dicho ¡querer es poder!

La presente post se alimenta de otras fuentes que más un toque de experiencia personal se convierte en lo que acaba de leer.