GithubHelp home page GithubHelp logo

joalbertg / curricula-js Goto Github PK

View Code? Open in Web Editor NEW

This project forked from laboratoria/curriculum

0.0 1.0 0.0 17.04 MB

Malla curricular Full Stack JavaScript @Laboratoria

License: Creative Commons Attribution Share Alike 4.0 International

HTML 16.81% CSS 10.36% JavaScript 72.83%

curricula-js's Introduction

Full Stack JavaScript

Build Status

Este repositorio es el lugar donde vamos a ir continuamente diseñando nuestro programa de formación en JavaScript.

En este repo se irán ordenando, desarrollando, discutiendo y proponiendo todo lo que tenga que ver con el diseño de la malla curricular y cursos.

La malla curricular

Cuando decimos malla curricular nos referimos al big picture, el hilo conductor que conecta el conjunto de cursos.

Nuestra propuesta de modelo de aprendizaje pretende atacar de frente el desafío de cómo hacer que la teoría se aprenda a través de la práctica. Por ello, la currícula está imaginada como una serie de productos completos, de complejidad y scope incremental.

En este issue puedes seguir y/o participar en la discusión abierta sobre el modelo: Aprendizaje orientado a productos.

Inicialmente, los encargados oficiales de la malla curricular son Lupo Montero, Iván Medina y Rodulfo Prieto, pero está abierta a sugerencias (issues, pull requests, ...) de todo el equipo de formación de Laboratoria así como de la comunidad en general. Queremos hacer una malla abierta.

Mapa de conceptos, tecnologías y herramientas

Como guía en el proceso de diseño de la malla estamos usando un "mapa" de conceptos, tecnologías y herramientas que queremos cubrir en la currícula. Este mapa es un mapa vivo, se basa en feedback de empleadores, instructores y alumnas. Si tienes alguna sugerencia o comentario no dudes en abrir un issue ;-)

mapa de topicos

Los cursos

Cada curso debe tener un dueño o autor, quien es responsable del curso como unidad atómica. Estos autores podrán ser personal de Laboratoria así como profesionales y expertos de la industria.

Cada curso tendrá una duración de aprox. 4 semanas. Los cursos diseñados para el bootcamp tendrán en cuenta que las alumnas estudian a medio tiempo (dedican tiempo todos los días) y no dominan el idioma inglés. Por otro lado, los cursos de educación continua están dirigidos a un público que trabaja, y por lo tanto tiene mucho menos disponibilidad de tiempo (aprox. 7h por semana).

Los cursos se dividen en 3 fases:


Prep

Cursos dirigidos a gente que nunca ha tenido contacto con la programación, o principiantes que quieran iniciarse en el viaje del Full Stack JavaScript.

00. Cursos/tutoriales de terceros

Recomendamos a todas las interesadas que descarguen y sigan los siguientes cursos interactivos creados por la comunidad de nodeschool. Estos cursos te darán una oportunidad de familiarizarte no sólo con JavaScript, HTML y Git, que son conocimientos esenciales, si no que lo harás en el entorno de la línea de comando (tu nuevo mejor amigo).

  • javascripting: Aprende JavaScript aventurándote en el terminal.
  • learnyouhtml: Aprende cómo crear tu primera página web.
  • git-it: Git-it es una aplicación de escritorio (Mac, Windows, Linux) que te ayuda a aprender Git y GitHub.

Autor: R. Prieto

Este curso será requisito para acceder al resto de los cursos.

Tags: javascript, html, css, http, url, variables, tipos de datos, estructuras de datos, operadores, condicionales, ciclos, funciones.

Durante este curso se harán productos como:

  • Cajero automático: crea un programa que un cajero automático pueda utilizar para determinar el número mínimo de billetes a entregar dado un monto solicitado.
  • ¿Es una tarjeta de crédito falsa?: crea un programa que confirme si una tarjeta de crédito es válida según el algoritmo de Luhn.
  • Posts encriptados en Facebook: crea y despliega una web que publica mensajes encriptados en Facebook, que tus amigos solo pueden decifrar regresando a tu web.

Bootcamp

El Bootcamp tiene una duración de 6 meses, a tiempo parcial. Las chicas postularán cuando hayan completado el curso de Introducción a la programación. Una vez dentro, llevarán durante 9 semanas una serie de temas a la que denominamos Common Core, a partir de ahí podrán especializarse en 3 perfiles (tracks): Front-End Developer, Maquetadora Web y UX Designer.

Common Core

En este espacio, las estudiantes experimentarán un poco de los diversos tracks con la intención de descubrir su afinidad, no se verán todos los temas en profundidad, pero sí lo necesario para poder entender en qué track especializarse.

02. Building a static site and making it dynamic

Autor: Iván Medina & ???

En este primer curso se construirá un sitio dinámico desde cero pasando por las diversas fases del desarrollo de un producto web. A lo largo de este curso, se verán temas de maquetación (HTML y CSS), lógica (JS), herramientas de flujo de trabajo (git), además de interacción con el DOM para agregar dinamismo a través de eventos.

  • Data Dashboard: El entregable final del curso será una web app en la que deberán diseñar la experiencia del producto que consiste en mostrar el progreso de un listado de estudiantes, manipulando data almacenada en un arreglo de objetos y agregando funcionalidad que requiere algoritmos básicos como un filtro de búsqueda y ordenamiento.

Main tags: html, css, ux, git, js, logic, dom, eventos.

Secondary tags: semantic markup, box model, selectors, display, positioning, layout, grid-system, problem solving, dom, eventos, git, unix shell, github-pages, flows, sketching.

Tiempo estimado: 4 semanas.

03. Optimizing your workflow with common libraries and frameworks

Autor: Iván Medina & ???

En este curso se realizará la segunda versión del producto construido en el curso anterior, mejorando su visualización a través de diversos dispositivos (responsive) y haciendo uso de librerías y frameworks que permitan optimizar el flujo del desarrollo.

  • Data Dashboard v2: El entregable final del curso será la versión 2 del primer producto, esto consiste en desarrollar el UI haciendo uso de librerías y frameworks que hagan el flujo más cercano al campo laboral, además, contiene retos técnicos como conectarse a APIs y visualización de datos.

Main Tags: basic-algorithms, scrum, mobile-first, bootstrap, jquery, ux.

Secondary tags: big-o, time-complexity, sorting, searching, git-workflow, google-charts/d3, api, json, usability, information-architecture.

Tiempo estimado: 4 semanas.

Front-End Development

En este track se encontrarán las estudiantes que sientan una mayor afinidad con la programación y JavaScript de tal manera que puedan especializarse en Front-End Development.

04. Really get to know JavaScript by building your own library

Autor: Belén Recabal & Iván Medina

En este curso construirás tu propia librería usando JavaScript, lo cual nos permitirá explorar las particularidades del lenguaje y entender como funciona por dentro, haciendo incapié en temas de performance, uso de memoria y optimización.

  • UI Library: El entregable final de este curso será construir una librería para desarrollo de interfaces, teniendo en cuenta el performance y manejo de memoria, que se usará para desarrollar una réplica de Pinterest.

Main tags: types, operators, functions, objects, scope, closure, execution-context, linter.

Secondary Tags: primitive-vs-reference, bitwise-operators, function-statement, function-expression, callbacks, hoisting, iife, apply, call, bind, this.

Tiempo estimado: 3 semanas.

05. Building a multi-user Single Page App (SPA) using remote data

Autor: Iván Medina

En este curso se verán temas de network para entender qué es lo que sucede por detrás de la web (arquitectura cliente-servidor). Profundizaremos en temas de diseño de APIs para luego poder consumirlos o desarrollarlos.

  • AIRDNA clone: El entregable final de este curso es el desarrollo de un sitio como AIRDNA que muestre datos estadísticos en base a ubicaciones integrando el API de Google Maps y personalizando tanto el mapa como marcadores.

Main tags: http, browser-apis, api, json, rest, xhr, firebase, deployment.

Secondary Tags: tcp-ip, dns, networking, geolocation, web-storage, web-sockets, web-workers, web-rtc, auth, microservices, broadcasting, progressive-web-apps, cloud computing, saas-paas-iaas.

Tiempo estimado: 3 semanas.

06. What every Front-End Developer needs to know about the Back-End

Autor: Iván Medina

En este curso vas a salir de JavaScript, y vas a entender como integrar tu front-end con un back-end. Usaremos Ruby como lenguaje de programación aprovechando la sencillez de su framework Ruby on Rails que integra a Sass como pre-procesador de CSS.

El desarrollo Front End es un mundo muy amplio tal como lo es el desarrollo Back End, y trabajar éstos en conjunto es algo aún muy común en el desarrollo de software. Veremos cómo implementar lo que ya conocemos hasta el momento dentro de un framework Back End que podría estar realizado en cualquier lenguaje, pero que sigue un patrón muy similar.

  • Fiverr clone: El entregable final de este curso es replicar la experiencia del sitio de Fiverr teniendo un Back End que se encarga del enrutamiento y la data, pero pendiente de la implementación del Front End.

Main tags: sass, rails, mv* back-end architecture, database, routing.

Secondary Tags: mvc, orm, migrations, templating.

Tiempo estimado: 3 semanas.

07. Programming Paradigms in the real world

Autor: L. Montero

Los Paradigmas de Programación (Programming Paradigms) son formas diferentes de pensar en cómo se organiza un programa basado en una serie de principios, los cuales resultan en estilos muy distintos y lenguages muy diversos.

  • Extender video juego 2d: En este curso formarás parte de un equipo responsable de extender la funcionalidad de un juego 2d. Tu equipo tendrá que dividir tareas, trabajar en parejas y hacer code reviews. Durante la primera semana tu equipo tendrá que extender el juego heredando del prototipo de un constructor ya implementado, mientras que en la segunda semana tendrán que refactorizar el código de la primera semana usando el paradigma funcional.
  • Refactorizar video juego 2d: como ejemplo de programación funcional tendrás que refactorizar el juego con el que se ha estado trabajando en el curso anterior. La versión refactorizada debe usar los principios de FP e incluir tests exhaustivos.

Main Tags: oop, fp, bundlers, prototype, inheritance, composition, immutability, testing, task-runner.

Secondary Tags: constructors, factories, hof, pure-functions, es6, side effects, jest, gulp.

Tiempo estimado: 3 semanas.

08. React

Autor: M. Crowe

React es una tecnología realmente revolucionaria, que no sólo nos permite encapsular nuestro código en lindos componentes, si no que representa un cambio de paradigma que va mucho más allá del navegador o incluso la web. React es una forma de pensar y construir interfaces, y no está ilimitado a una sóla plataforma; a través de la abstracción de los renderers podemos escribir interfaces nativas para web, mobile, desktop, tv, ...

  • Slack clone: El entregable de este curso será desarrollar una aplicación de mensajería como Slack clone en la que se haga uso de React para la creación de componentes y además combine todo lo visto a lo largo del bootcamp.

Main Tags: react, jsx, webpack, babel, jest.

Secondary Tags: es6, fp, components, virtual-dom.

Tiempo estimado: 2 semanas.

09. Hackathon: Front-End Frameworks - Self-learning Experience

Autor: ???

El desarrollo de productos con JavaScript involucra muchos conceptos y mucho código, sin embargo, hay soluciones que ya han sido probadas en el desarrollo de diversos proyectos que nos dan una estructura y flujo definido, de tal manera que implementarlo nos permite despreocuparnos de algunos detalles, a esto se conoce como Framework, y como todo en tecnología, no hay solo una alternativa, sino, una gama de diversas opciones que nos permiten llegar a la mejor solución. Como curso final del track de Front End Development, se verán 2 conceptos fundamentales: Data Binding y Virtual DOM, con esto durante una semana se llevará a cabo una hackathon en la cual el reto será desarrollar un producto (debajo se muestra un ejemplo de complejidad) usando alguna librería y/o framework moderno de JS.

  • Kickstarter clone: El entregable de este curso será la réplica del flujo del sitio Punchstarter en el cual debido a la cantidad de vistas y dependencias involucradas en este proyecto, notaremos la necesidad de usar herramientas que hagan nuestro flujo más rápido y eficiente.

Tags: angular, vue, typescript, api, real-time.

Tiempo estimado: 2 semanas.

UX Design

En este track se encontrarán las estudiantes que sientan una mayor afinidad con el diseño de experiencia de usuario.

Maquetadoción Web

En este track se encontrarán las estudiantes que sientan una mayor afinidad con el desarrollo y diseño de interfaces sin necesidad de profundizar tanto en la lógica de programación.

Capstone Project

En este último paso, se dará un espacio para que los diversos tracks se junten y desarrollen productos juntos, enlazando todos los skills aprendidos e integrándolos.


Educación Continua

El programa de Educación Continua en principio se ofrece a egresadas de nuestro Bootcamp. Tiene una duración de 18 meses durante los cuales se les quiere ofrecer una selección de cursos que las ayude a seguir creciendo como desarrolladoras, profundizar conocimientos y apoyarlas en el inicio de sus carreras como developers.

Autor: L. Montero

Los Paradigmas de Programación (Programming Paradigms) son formas diferentes de pensar en cómo se organiza un programa basado en una serie de principios, los cuales resultan en estilos muy distintos y lenguages muy diversos.

  • Extender video juego 2d: En este curso formarás parte de un equipo responsable de extender la funcionalidad de un juego 2d. Tu equipo tendrá que dividir tareas, trabajar en parejas y hacer code reviews. Durante la primera semana tu equipo tendrá que extender el juego heredando del prototipo de un constructor ya implementado, mientras que en la segunda semana tendrán que refactorizar el código de la primera semana usando el paradigma funcional.

Tags: oop, fp, constructors, prototype, inheritance, factories, composition.

Autor: Milton Mazzarri

En este curso te familiarizarás con los principios de la programación funcional, tan de moda en el mundo de JavaScript.

  • Refactorizar video juego 2d: como ejemplo de programación funcional tendrás que refactorizar el juego con el que se ha estado trabajando en el curso anterior. La versión refactorizada debe usar los principios de FP e incluir tests exhaustivos.

Tags: fp, hof, pure functions, immutability, side effects, es6, testing, jest.

Autor: M. Crowe

React es una tecnología realmente revolucionaria, que no sólo nos permite encapsular nuestro código en lindos componentes, si no que representa un cambio de paradigma que va mucho más allá del navegador o incluso la web. React es una forma de pensar y construir interfaces, y no está ilimitado a una sóla plataforma; a través de la abstracción de los renderers podemos escribir interfaces nativas para web, mobile, desktop, tv, ...

  • Convertir video juego 2d en React app: Convertir video juego en app con interfaz más completa, high scores, ...

Tags: react, jsx, webpack, babel, jest

Autor: M. Crowe / L. Montero

...

Tags: react router, redux, raduim, ...

Autor: ???

La web es un ecosistema de estándares, protocolos, lenguajes y software. Pocas veces nos paramos a pensar en todas las piezas que componen este ecosistema vivo, desde el modelo TCP/IP o sistemas operativos, hasta HTML/CSS/JS, pasando por DNS, HTTP (servidores, clientes, proxys), URLs, dominios, ...

Al final del curso habrás construido y desplegado una aplicación usando un dominio de verdad (?) y presentarás una demo donde explicarás la experiencia, lo aprendido y cómo encajan las diferentes piezas del web stack en el producto.

Tags: html, css, js, http, url, xhr, json, server, client, ...

Autor: ???

Node.js es sin lugar a dudas una de las tecnologías más de moda en Silicon Valley y el mundo. Como desarrolladoras Full Stack JavaScript, Node.js es una de las principales herramientas con las que contamos en nuestro arsenal. Node nos permite llevar nuestro conocimiento de JavaScript más allá del navegador.

En este curso construirás un servidor web que sirva contenido estático además de algunos endpoints dinámicos que sirvan data en formato JSON.

Tags: node, npm, yarn, http-server, filesystem, static-server, ...

Autor: ???

Las bases de datos no relacionales (NoSQL) son una nueva generación de bases de datos diseñadas específicamente para enfrentar desafíos de escalabilidad y agilidad en el desarrollo moderno.

En este curso contruirás una aplicación que use una base de datos no relacional de documentos JSON (MongoDB o CouchDB). Los usuarios de esta aplicación deberán poder crear "documentos" de varios tipos que podrán salvar, editar, borrar y sincronizar.

Tags: nosql, data, model, json, concurrency, locking, partitioning, search ...

Autor: ???

La primera unix shell apareció en 1971, con la primera versión de Unix. A pesar de sus más de 40 años de edad, sigue siendo una tecnología totalmente vigente, y de alguna forma se ha convertido en el estándar para la interacción con servidores y sistemas operativos "Unix-like" (GNU/Linux, BSD, MacOS, Android, ...).

En este curso aprenderás a escribir shell scripts además de construir un programa con Node.js para ser usado desde la lína de comando.

Tags: cli, shell, bash, filesystem, profile, history, envirnoment, process, argv, pipes, stdin, stdout, stderr, nodejs, npm, npm-scripts.

17. NodeJS

Autor: ???

Tags: npm, http, fs, path, streams, express, api-development, deployment.

18. Databases

Autor: ???

Tags: schema-design, sql, no-sql, querying, performance, orm.

19. ME*N Stack

Autor: ???

Tags: web-stack, fullstack-framework, routing, mv*, orm.

20. Micro services?

Autor: ???

Tags: docker, containers, clusters, scalability, partitioning ...

21. Análisis y visualización de datos

Autor: ???

Tags: estadística, map/reduce, d3, canvas, ...

22. WebOps/DevOps

Autor: ???

Application deployment, management, maintenance, configuration and repair.

Tags: devops, webops, deployment, maintenance, management, backup, repair, debugging, ...

23. Algoritmos

Autor: ???

Tags: big-O, adhoc, search, sort

24. Estructuras de datos

Autor: ???

La ciencia de la computación consiste en el estudio de sistemas computacionales sobretodo relacionado con software, esto incluye su teoría, diseño, desarrollo y aplicación, dicho esto, en este curso se verán estructura de datos más avanzadas que las ya vistas (arreglo y objetos) con el objetivo de entender dónde se aplican y bajo que condiciones.

  • SCM like Git: Construcción de un Source Code Manager al estilo de git que permita la navegación a través del historial de cambios.

Tags: time complexity, big-o, searching, sorting, stacks, queues, graphs, binary-trees.


Contribuciones

Toda contribución es gratamente bienvenida.

Pero POR FAVOR no olvides leer detalladamente la guía para contribuidores antes de enviar un PR.

Licencia & Copyright

Todos los materiales de este repo son (c) 2017 Laboratoria.

Creative Commons License

Este trabajo está publicado bajo la licencia Creative commons Attribution-ShareAlike 4.0.

curricula-js's People

Contributors

amaliariverac avatar aocsa avatar arcuellar88 avatar chamodev avatar diegovelezg avatar ivandevp avatar lalogf avatar lizzie136 avatar lupomontero avatar mariplaza avatar merunga avatar michellesegv avatar rodulfoprieto avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.