Planner

Introducción

En un post de la autora de este libro (Catherine Nelson) leí que estaba a punto de lanzar su 2do. libro titulado: “Software Engineering for Data Scientists - From Notebooks to Scalable Systems”, en cuanto leí el título, sentí que necesitaba este libro porque representaba muy bien lo que venía haciendo en ese tiempo, que era alejarme un poco del uso de los Jupyter Notebooks. Finalmente, con la ansiedad que me caracteriza, hice un pre-order del libro en Amazon y lo compré a casi el doble de lo que vale ahora jajaja (me costó 80 USD aprox.). Esperé tanto este libro que cuando lo recibí me lo devoré y creo que es de los pocos libros de O’Reilly que he leído casi al 90%. En esta edición de Ideas en Papel desglosamos el trabajo de Catherine Nelson, si vale la pena comprarlo, de qué trata y si me ha servido en mi carrera.

Desmenuzando el Libro

En primer lugar, vamos a partir rapidísimo, a mí el libro me gustó. Lo recomendaría para personas que:

  • Son Data Scientist, si no lo eres no lo recomiendo. Y si eres Data Scientist le podrías sacar más provecho si eres Data Scientist Senior.
  • Estén interesadas en seguir mejorando su forma de programar.
  • Se interesen en programar de forma más modular. (!Ojo¡ el libro explica algo de esto, pero no te dice el cómo. Explicaré eso más abajo.)
  • Utilicen ya OOP. (Programación orientada a objetos)
  • Quieren aprender buenas prácticas aplicadas a la ciencia de datos. (Diría que el libro se basa mucho en esto)
  • Busquen conocer nuevas herramientas y sumarlas a su arsenal. (Hay harto de State of the art y muchas opciones para distintos propósitos)

Si no estás dentro del grupo o listado que puse más arriba, no sé si valdría la pena comprarlo. Hay que ser práctico, si no te están evaluando por programar bien o sientes que puedes vivir con los notebooks (.pynb) está perfecto, incluso diría que podrías aburrirte con el libro.

En segundo lugar, el core del libro y todo su propósito se basa en mostrar el cómo técnicas de Ingeniería de Software han llegado al mundo de los científicos de datos y el porqué son importantes. Dicho esto, te encontrarás con muchos, pero MUCHOS pequeños tips para optimizar y mejorar tu trabajo como DS. Para mí lo más importante es que estas técnicas provenientes del mundo del Software Engineering están con casos de uso aplicados a la ciencia de datos así que se hizo un muy buen trabajo de la autora incorporando ejemplos aplicados al contexto. Entre algunas de las cosas que encontrarás en el libro están:

  1. Linters.
  2. Code formatters.
  3. Uso de loggings.
  4. Estructura de carpetas para desarrollos de Data Science. (Algo así como el clásico Cookiecutter)
  5. Testings.
  6. Github actions.
  7. Pre-commit hooks.
  8. Documentación de tu código.
  9. Cómo analizar el performance de tu código.

Si leíste bien en el párrafo de arriba, puse tips y pienso que lo “malo” de este texto es que no profundiza mucho en ningún tópico, tiene un enfoque más bien práctico y straightforward como dicen los gringos. Me hubiese gustado quizás que se profundizara más en los tópicos, de hecho este libro perfectamente podría ser un conjunto de blog posts con cada uno de los capítulos o tópicos que se tratan. Siempre se dice que uno puede aprender solo, que todo está en internet, pero finalmente el mérito de los libros o los programas universitarios está en que nos resumen y ordenan grandes cantidades de información.

Por último e importantísimo, podría decir que la premisa del libro “From Notebooks to Scalable Systems” no se cumple, es decir, que no se otorga una receta paso a paso para que nosotros la implementemos, pero sí se entregan muchos consejos, herramientas y conocimiento que nos permiten armar este gran rompecabezas. Queda a responsabilidad del lector implementar y probar cada una de estas prácticas. (¡Ojo! En la implementación de buenas prácticas puede que tardes más y no veas el beneficio en el corto plazo, pero como consejo apunta al largo plazo)

¿Recomiendo o no?

Si me hago la pregunta: ¿Me ha servido?, respondería mucho.

Primero, he implementado harto de lo que he aprendido (ha necesitado un trabajo personal importante y también leer hartas documentaciones, no basta con lo del libro), lo segundo es que en mi equipo he agendado varias sesiones de aprendizaje respecto a tópicos que trata el libro. Creo que con el hecho de aportar en mi día a día y en mi equipo es suficiente para decir que el libro se pagó. Solo ten en consideración lo que mencioné antes respecto a la profundidad y el enfoque práctico. Finalmente, buen material y gran esfuerzo de Catherine por resumir temas que están lejos de nuestro mundo y que, sin duda, hemos visto en alguno que otro repositorio en Github y no conocíamos el porqué de su origen. Si no te decides aún, échale una mirada al índice de contenidos.

Sofware Engineering for Data Scientists