Contenidos:
#100DíasDeData
El proyecto #100DaysOfCode tiene la idea de que una puede aprender muchísimo si escribe código una hora diaria por 100 días.
¿Qué tal si hiciéramos algo parecido con datos? Trabajar una hora por cien días seguidos en algo relacionado a datos.
Limpieza, manipulación, lectura y escritura, visualización, presentación, aplicaciones de datos. En Python, R, d3, stata, Excel, PowerBI, Tableau, lo que quieras.
El repositorio esta compuesto por proyectos y ejercicios.
Un ejercicio es una actividad con una meta definida que puedes lograr en menos de una hora. No todos los ejercicios van a necesitar de escribir código para lograr la meta. Por ejemplo, crear unas paletas de color divergentes y secuenciales. Esto puede lograrse programáticamente escribiendo código o también utilizando ciertos sitios web. Un ejercicio debe tocar solamente 1 (o 2) "temas" relacionado con los datos. Por ejemplo: recoleccion, limpieza, visualización, aprendizaje. Las demás partes deben o ser incluidas como parte del planteamiento (como un notebook con celdas pre-llenadas) o simplemente no consideradas.
Un proyecto es un grupo de ejercicios relacionados. Los proyectos toman más de una hora en terminar y puede que los ejercicios que lo compongan sean secuenciales. Es decir, puede que el tercer ejercicio de un proyecto no pueda llevarse a cabo hasta que se termine el segundo ejercicio. Si tienes una idea de un ejercicio que toque más de 2 "temas", considera romperlo en 2 o más ejercicios modulares para crear un proyecto en su lugar.
instrucciones.md
y solucion.md
. La solución puede ser un script si está bien documentado. El nivel de un ejercicio se describe en 3 áreas: complejidad, nivel de conocimiento previo necesario, tiempo necesario.
Cada área recibe una calificación 1, 3 o 5 (Básico, intermedio, avanzado). Si tienes dudas de que nível darle a tu ejercicio sólo hace falta mencionarlo en tu PR y te ayudaremos a decidir.
La complejidad de un ejercicio se define por el número de pasos y tecnologías necesarias para llevarlo a cabo. Por ejemplo, un ejercicio en el que aprendemos a crear un gráfico de barras con bokeh
puede ser nivel 1 o 2 de complejidad ya que es una sola tecnología (bokeh
) y son pocos pasos necesarios para crear un gráfico de barras. Sin embargo, si el ejercicio es personalizar un gráfico de barras conbokeh
, puede que el nivel de complejidad suba, dependiendo en que tantos pasos requiera esta personalización.
El nivel de conocimiento previo necesario depende de la cantidad de tecnologías y/o información necesaria para llevar a cabo el ejercicio sin ayuda de alguien más. Por ejemplo, un ejercicio donde aprendamos a crear buenos mapas puede que se concentre en escoger buenos colores o la proyección "correcta". Si este es el caso, el ejercicio asume que ya sabes crear un mapa (aunque sea básico). Si esto es lo único que se necesita saber previamente a comenzar el ejercicio, puede tener una calificación de 1 o 2 para esta área. (Un ejemplo de nivel 4 o 5 puede ser desplegar una aplicación shiny a un servidor, por ejemplo).
El tiempo necesario depende de la cantidad mínima necesaria de tiempo para completar un ejercicio. Por ejemplo, un ejercicio rápido mostrando como hacer un INNER JOIN
en SQL puede ser un nível 1 o 2, si el ejercicio requiere que creemos una cuenta de BigQuery para ejecutar este SQL con los datos en la nube esta área sería un 2 o 3 o 4. Si el ejercicio requiere crear y entrenar un modelo de aprendizaje automatizado con una cantidad enorme de datos puede que te tome la hora entera sería un 5.
Reglas que seguir:
Stata
y SAS
). No sugieras que paguen por ese software. Para desalentar el fanatismo por las herramientas el repositorio debería estar organizado por temas en el mundo de los datos:
cookiecutter
, creación de paquetes/librerías, Docker, etc)proyectos
.
├── LICENSE
├── README.md
├── -plantillas <- Plantillas a seguir.
│ └── <nivel-de-dificultad>-<nombre-de-ejercicio> <- Cada ejercicio tiene una carpeta con:
| ├── instrucciones.md <- Archivo markdown con las instrucciones del ejercicio
| └── solucion.md <- La solución del ejercicio. Preferiblemente en markdown pero puede ser un _script_
├── adquisicion-distribucion
│ ├── <nivel-de-dificultad>-<nombre-de-ejercicio>
| │ ├── instrucciones.md
| │ └── solucion.md
| ...
│ └── <nivel-de-dificultad>-<nombre-de-ejercicio>
| ├── instrucciones.md
| └── solucion.md
├── analisis
| ...
├── automatizacion
| ...
├── limpieza
| ...
├── proyectos
| └── <nivel-de-dificultad>-<nombre-del-proyecto> <- Cada proyecto tiene una carpeta con varios ejercicios
| ├── <nivel-de-dificultad>-<nombre-de-ejercicio>
| │ ├── instrucciones.md
| │ └── solucion.md
| ...
| └── <nivel-de-dificultad>-<nombre-de-ejercicio>
| ├── instrucciones.md
| └── solucion.md
├── surtido
| ...
└── visualizacion
...
└── <nivel-de-dificultad>-<nombre-de-ejercicio>
├── instrucciones.md
└── solucion.md