Laboratoria / curriculum

El bootcamp de @Laboratoria es un programa de aprendizaje inmersivo de 6 meses enfocado en los perfiles de Web Developer y UX Designer.
https://curriculum.laboratoria.la
Creative Commons Attribution Share Alike 4.0 International
491 stars 462 forks source link

11-react: Ops team feedback #538

Closed lupomontero closed 6 years ago

lupomontero commented 6 years ago

Abro este issue para que tengamos un lugar donde manejar el feedback sobre el curso de React que actualmente está corriendo en Lima y Santiago con vistas a su próxima ejecución en Ciudad de México.

Todo el feedback, sugerencias y dudas son bienvenidas. Lxs que estén ejecutándo el curso en este momento (@alejandrarv, @joalbertg, @michellesegv, @developerVilchez y @RuthMeryCardenas en Lima, y @brecabal, @FabianBravoA, @nerdale, @MarciaMillanao y @bosqueinvierno en Santiago) porfa compartan sus experiencias para que el equipo de CDMX (@LucileBaratier, @indie-rok y @shirley-suarez) pueda aprovechar esos aprendizajes.

Off-topic: Alguien sabe si Valentina está en GitHub?

cc/ @chamodev @merunga @ivandevp

brecabal commented 6 years ago

Si @lupomontero , es @valesmithb

shirley-startary commented 6 years ago

@lupomontero hemos estado revisando como estructurar nuestras clases y nos gustaría que nos dijeras ¿Por qué razón la unidad 5 de "Estado global" (que contiene Redux) antes que la unidad 6 "React OOP : ciclo de vida, estados" y porque desde la unidad 4 (componentes) ya no existen quizes?.

indie-rok commented 6 years ago

Complementando a @shirley-suarez , me gustaría preguntar si hay alguna razón en específica por la cual no hay algún recurso en el curso acerca de yarn/npm? Se asumió que se cubrió en deep dive? Si es asi, Podriamos agregar algún recurso nosotros en algún lado?

Algunas estudiantes aún tienen dudas.

Saludos @lupomontero @merunga

lupomontero commented 6 years ago

@shirley-suarez, @indie-rok: gracias por las preguntas/feedback 👍

Respondiendo a sus preguntas...


¿Por qué razón la unidad 5 de "Estado global" (que contiene Redux) antes que la unidad 6 "React OOP : ciclo de vida, estados" (@shirley-suarez)

El motivo por el que se decidió primero introducir componentes como funciones puras, después estado global (con redux) y finalmente OOP, es porque nos parece que de esa forma la complejidad va aumentando de forma gradual.

Un componente stateless es más simple a nivel de API e implementación, y no requiere haber visto el paradigma de OOP ni clases de ES6. De hecho, en nuestra experiencia, en aplicaciones reales casi siempre se usa un manejador de estado (ie: redux) en conjunción con React y se prefieren componentes stateless antes que stateful, a menos de que necesitemos algunos de los features específicos de los componentes como clases (hooks de life-cycle, refs, o estado que por algún motivo queramos mantener como interno del componente).

Por otro lado, React y su comunidad favorecen el estilo (paradigma) funcional sobre el orientado a objetos a nivel de arquitectura y diseño. De hecho, la implementación OOP de componentes en React es un azúcar sintáctico para facilitar la encapsulación de estado y lógica interna, pero no se usa como mecanismo de herencia y reuso de código, que es la motivación principal detrás del paradigma orientado a objetos. En el universo de React siempre se favorece la composición sobre la herencia, la inmutabilidad, las funciones puras, ... En ese contexto, se considera una buena práctica el solo implementar un componente como clase cuando sea la única manera de hacerlo, y la mayoría de componentes se pueden/deben implementar como funciones puras (stateless), lo cual trae los beneficios añadidos de ser más fácil de razonar, aislar y testear.

Siguiendo la misma filosofía, se decidió arrancar con React y ReactDOM calatos (sin JSX, ni Babel, ni Webpack, ...) en vez de usar creare-react-app, con la idea de que fueramos viendo paso a paso donde encaja cada pieza (su función y necesidad), y poco a poco ir aumentando la complejidad según aparecen las necesidades. Asumimos que las chicas van a ver create-react-app por su cuenta (un googleo básico y la documentación oficial te van a llevar ahí), y quizás deberíamos incluir aunque sea un side note sobre esta herramienta en el syllabus, pero justamente lo lindo de create-react-app es que oculta toda la complejidad del set up, que en este caso queremos aclarar. Es un tema básicamente de propuesta de ruta de aprendizaje. Qué opinan?


¿Por qué desde la unidad 4 (componentes) ya no existen quizzes? (@shirley-suarez)

Originalmente este curso no tenía quizzes por diseño. A la hora de reorganizar el curso para dictarse en el Bootcamp, el equipo de operaciones en Santiago propuso agregar algunos quizzes ya que ellas sienten que esto ayuda a las estudiantes a ellas mismas ir midiendo su aprendizaje. Así que @brecabal y @nerdale se animaron a contribuir con los quizzes que tenemos actualmente (https://github.com/Laboratoria/curricula-js/pull/520, https://github.com/Laboratoria/curricula-js/pull/522). Si consideran que sería útil agregar quizzes en otras unidades, se puede proponer y estamos abiertxs a que cualquiera se ofrezca como voluntarix 😉


Hay alguna razón específica por la cual no hay ningún recurso en el curso acerca de yarn/npm? Se asumió que se cubrió en deep dive? Si es así, podríamos agregar algún recurso nosotros en algún lado? (@indie-rok)

Efectivamente en este curso se asume que a estas alturas ya te ha tocado trabajar con yarn y/o npm. Quizás podríamos agregar un nota y/o links a recursos externos, pero creo que queda fuera de scope del syllabus de este curso.


Thoughts?

merunga commented 6 years ago

Un comentario en relacion a lo q dice @shirley-suarez y @lupomontero Si analizamos el curso hasta la unidad 4, el contenido es puramente react presentacional, no existe nada en relacion a estados ni manejos de eventos. La unidad 5 y 6 muestran 2 maneras distintas (y potencialmente complementarias) de como hacer justamente eso.

En el caso especifico de por qué esta primero estado global q react oop, es como dice @lupomontero porque en su momento consideramos estructurar el contenido asi porque sigue el mismo paradigma de programacion: el funcional (solo funciones puras y objetos json inmutables). Pero en lineas generales yo diria que ambas unidades son intercambiables, ya q no existe una dependencia de una a otra y creo q el orden final en el q se exponen los contenidos del curso, es flexible en ese aspecto, (@lupomontero me corrijes si lo q digo no es asi porfa) y depende del contexto en el q se dicte

indie-rok commented 6 years ago

Es un tema básicamente de propuesta de ruta de aprendizaje. Qué opinan?

En esto estoy muy deacuerdo, @lupomontero, a mi me gusto mucho la forma de como en este curso se enseñan las bases; sin dependencias y solo React :+1:

Si consideran que sería útil agregar quizzes en otras unidades, se puede proponer y estamos abiertxs a que cualquiera se ofrezca como voluntarix wink

Les mandamos PR en estos dias con quizzes de próximas unidades cc @shirley-suarez

Quizás podríamos agregar un nota y/o links a recursos externos, pero creo que queda fuera de scope del syllabus de este curso.

Si me gustaría agregar un link validado por algún profe (yo lo puedo hacer) para poder decir a las estudiantes: "A las que no sepan que estamos haciendo con yarn install react, por favor chequen su LMS en la unidad de React".

Si me das tu ok @lupomontero, te mando un PR en estos dias.

Pero en lineas generales yo diria que ambas unidades son intercambiables. (@merunga)

Igual, si @lupomontero nos da su ok, preferimos dictar primero OOP React como experimento (les damos feedback al terminar) para intentar enamorar a las estudiantes del poder de OOP y React antes de enojarnos con Redux ( :smiley: ) por su larga curva de aprendizaje.

shirley-startary commented 6 years ago

Igual, si @lupomontero nos da su ok, preferimos dictar primero OOP React como experimento (les damos feedback al terminar) para intentar enamorar a las estudiantes del poder de OOP y React antes de enojarnos con Redux ( 😃 ) por su larga curva de aprendizaje.

Igual si alguien de otra sede (@alejandrarv, @joalbertg, @michellesegv, @developerVilchez y @RuthMeryCardenas, @brecabal, @FabianBravoA, @nerdale, @MarciaMillanao y @bosqueinvierno ) tiene algún comentario o aportación por su experiencia que nos pueda ayudar, se los agradeceríamos.

lupomontero commented 6 years ago

[...] yo diría que ambas unidades son intercambiables, ya q no existe una dependencia de una a otra y creo q el orden final en el q se exponen los contenidos del curso, es flexible en ese aspecto, (@lupomontero me corriges si lo q digo no es así porfa) y depende del contexto en el q se dicte @merunga

Efectivamente cada equipo de operaciones tiene la libertad y flexibilidad para adaptarse tanto a las alumnas como a lxs instructorxs. En este caso estoy de acuerdo con que las unidades 5 y 6 se pueden dictar en orden inverso si consideran que puede ser beneficioso.

Les mandamos PR en estos días con quizzes de próximas unidades [...] (@indie-rok)

Genial 🎉🎈. Quedamos a la espera de propuestas de quizzes via PR.

Si me gustaría agregar un link validado por algún profe (yo lo puedo hacer) para poder decir a las estudiantes: "A las que no sepan que estamos haciendo con yarn install react, por favor chequen su LMS en la unidad de React". (@indie-rok)

Esto, siendo un tema más genérico de JavaScript y no necesariamente parte del curso de React, quizás tenga más sentido como un blog post o incluso en el curso 99-general-concepts, donde estamos acumulando temas generales para compilar como un curso de referencia... pero esto todavía está cocinándose... En el curso de React en particular, sólo añadiría una nota (un parrafito) con links a recursos externos (por ahora).

developerVilchez commented 6 years ago

Si! Si!! Tengo mucho que aportar e ideas que dar!! Solo les pido un ratito, estoy estructurando las ideas para poder plasmarlo.

indie-rok commented 6 years ago

Felicidades @Laboratoria/education-team , lo logramos.

Tenemos un bot en el repositorio 🎉 🎉

lupomontero commented 6 years ago

La semana pasada tuve la oportunidad de participar en salón de clase del Bootcamp en Lima junto con @merunga, y nos gustaría compartirles nuestras impresiones, comentarios, cosas que nos funcionaron, ... como feedback de nuestra experiencia de la semana pasada.

Cosas buenas

Cosas no tan buenas


Food for thought... 💭

cc/ @chamodev @merunga @ivandevp @developerVilchez, @alejandrarv, @joalbertg, @michellesegv, @RuthMeryCardenas, @valesmithb, @brecabal, @FabianBravoA, @nerdale, @MarciaMillanao @bosqueinvierno @LucileBaratier, @indie-rok y @shirley-suarez

indie-rok commented 6 years ago

Muy interesante aporte tu reflexión @lupomontero .

Algunas cosas de las que mencionas ya las empecé a notar. (AKA Redux xd)

Te pido que dejes este issue abierto un par de semanas mas y cuando termine el sprint @shirley-suarez y yo te damos un feedback concentrado.

lupomontero commented 6 years ago

Hola @indie-rok, qué tal? Cómo les ha ido? Tienen algo de feedback que quieran agregar a este issue?

cc/ @shirley-suarez @LucileBaratier

lupomontero commented 6 years ago

Cierro este issue en favor de #569, que todavía está pendiente...