El primer paso para convertirse en Data Scientist es ser capaz de preparar un entorno de trabajo profesional. El segundo, poder escribir código suficientemente limpio como para ser útil en un entorno real. En esta primera semana, hacemos una introducción al programa y trabajamos esos conceptos!
Objetivos de la semana:
- Preparar el entorno de desarrollo (versiones de python, pyenv, poetry…)
- Fork del repositorio inicial.
- Preparar VSCode.
- Construir nuestro primer python script, con unit tests, mypy, black and flake8.
Materiales de preparación:
1. Preparar entorno de trabajo
Para preparar el entorno de desarrollo tenemos que instalar python, pyenv y poetry. Además recomendamos utilizar vscode como IDE ya que se ha convertido en el estandard de facto para la gente que no utiliza la terminal para todo.
Para la gente utilizando mac, podéis seguir este tutorial hasta aquí (ya que a partir de esa sección nosotros utilizaremos pyenv y poetry) para instalar la terminal, git, python y pyenv. Es importante que profundicéis en los distintos conceptos: qué son las distintas versiones de python, porque utilizamos virtualenvs y qué son, por qué necesitamos un gestor de dependencias.
Para la gente utilizando windows, mi recomendación es utilizar Windows Subsystem for Linux (WSL) y a partir de ahí trabajar con Linux. Una vez con la terminal de linux, hace falta instalar git, python y pyenv.
Ya sea en mac o linux, para instalar poetry podéis hacer referencia a la documentación oficial: https://python-poetry.org/docs/
Una vez tenemos todas los prerrequisitos debemos hacer un fork (no clonarlo, si no crear un fork personal siguiendo esta guía) del repositorio: [email protected]:Zrive/zrive-ds.git
. El README del repositorio contiene instrucciones específicas sobre como instalar las dependencias iniciales utilizando pyenv y poetry además de una guía de como utilizaremos el repositorio.
Finalmente, podéis hacer referencia a esta documentación para instalar y configurar vscode correctamente: https://code.visualstudio.com/docs/python/python-tutorial
2. Materiales del módulo:
Set up development enviroment:
- Git basics: visual_intro, another visual intro, another visual intro and a visual reference of commands.
- Virtual envs: a guide and a video on why not to use system python
- Dependecy management: artículo que explica bastante bien el problema de dependencias
- Black: entiende las ventajas de utilizarlo aquí.
- Flake8: que es un linter y por qué lo utilizamos aquí.
- Mypy: documentación e intro aquí y por qué utilizarlo aquí
Pull data from API and build unit tests:
- Qué es una API aquí y como acceder a ella con python aquí
- Introduction to unit testing in python aquí
- Pytest documentation aquí
Grabaciones de clases y slides:
Slides – Module 1: Intro to program, DEV environment and APIs
Homework assessment:
Durante el programa, los alumnos trabajan en solucionar el caso práctico por su cuenta antes de ver la solución del profesor. RECOMENDAMOS INTENTARLO DURANTE 10h ANTES DE VER LA SOLUCIÓN.