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.
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.
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, profes y alumnas. Si tienes alguna sugerencia o comentario no dudes en abrir un issue ;-)
Fuente: Laboratoria#25
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 medio tiempo, no dominan el idioma ingles y dedican tiempo todos los días, mientras que 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 (curso online de 1 mes), bootcamp (cursos blended part-time, 6 meses) y educación continua (cursos blended 7 horas por semana, 18 meses).
Por ahora sólo hay un curso en la fase prep
. La idea es que son cursos
dirigidos a gente que nunca ha tenido contacto con la programación, o
principiantes que quieran iniciarse en el viaje del Full Stack JS.
Recomendamos a todas las interesadas que descarguen y sigan los siguientes cursos interactivos creados por la comunidad 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: Learn JavaScript by adventuring around in the terminal.
- learnyouhtml: Learn how to create your first web-page.
- git-it: Git-it is a (Mac, Windows, Linux) Desktop App for Learning Git and 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.
El Bootcamp tiene una duración de X meses, a tiempo parcial. Las chicas
postularán una vez completado el curso de "Introducción a la programación".
Una vez dentro, llevarán durante X semanas una serie de temas a la que denominamos
Common Core, a partir de ahí podrán especializarse en 4 perfiles (tracks
): UI Developer
,
UX Designer
, Front-End Developer
y Back-End Developer
.
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 a profundidad, pero si lo necesario para poder entender en que track especializarse.
Autor: ???
En este primer curso se construirá un sitio estático desde cero, empezando por entender los diversos roles que intervienen en el desarrollo de un producto web. Luego, se verán temas como HTML semántico, arquitectura de información, estilos (CSS), agregando interactividad con JavaScript a través del DOM y eventos, control de versionamiento de código con git, subiendo proyectos a Github y haciendo deployment a GitHub Pages, todo esto acompañado de talleres de UX que nos provean de una visión de creación productos eficientes.
Durante este curso, se buscará que todos los temas sean involucrados en la práctica, es decir, HTML, CSS, JS y Git será usado en todos los proyectos en proporciones significativas con la finalidad de que se encuentren en constante práctica.
- Portfolio site: El entregable final del curso será un website estático. Cada alumna podrá sugerir el tema y scope de su proyecto, con la supervisión de un instructor. Este portafolio evolucionará durante el transcurso del bootcamp y al final se convertirá en tu portafolio real, necesario para el proceso de inserción laboral.
Tags: html5
, semantic markup
, css3
, box model
, selectors
, display
, positioning
,
layout
, grid-system
, js
, es6
, problem solving (logic)
, dom
, eventos
, git
,
unix shell
, github-pages
, ux
, design-thinking
, lean
, design-sprint
, discovery
,
research
.
Debido a que los perfiles son afines, el siguiente paso es ver herramientas que se usan en el desarrollo web de manera profesional. Aquí se verán temas como: Agile (Scrum), Test Driven Development, Progressive Enhancement (Mobile First), CSS Frameworks, DOM JavaScript libraries (e.g. jQuery), Git Workflow para equipos.
Tags: scrum
, tdd
, unit-testing
, mocha
, media-queries
, bootstrap
, flexbox
,
data-attributes
, jquery
, git-workflow
, synthetiz-and-define
, sketch
.
- Portfolio v2: El entregable final del curso será un website aun estático pero con herramientas que hacen un producto con mayor calidad, agregando herramientas usadas en el mercado como CSS Frameworks y JS libraries, además de usar metodologías de trabajo colaborativo y enfocado a pruebas.
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
o Back-End Development
.
Autor: ???
Este curso incluye un poco más de teoría de lo habitual. Cubriremos tipos de datos
, operadores
,
objetos
y funciones
en profundidad.
- Calculadora: en este curso construirás una calculadora que permita sumar, restar, multiplicar, dividir y calcular potencias. La calculadora se implementará como una web app escrita puramente en vanilla JS dentro del navegador.
Tags: tipos de datos
, operadores
, funciones
, objetos
, execution context
, es6
, ...
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: ???
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 temas como algoritmos, notación asintótica, estructura de datos, patrones de diseño aplicados al desarrollo web.
- 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: searching
, sorting
, stacks
, queues
, graphs
, binary-trees
,
solid
, mvc
, singleton
.
Autor: ???
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), para luego profundizar en
temas de diseño de APIs para luego poder consumirlos o desarrollarlos.
- ** AirBnB **: Construcción de un que permita registrar lugares de hospedaje a través de un API y que luego puedan ser consumidas en una aplicación cliente que haga el proceso de búsqueda y reserva.
Tags: http
, tcp-ip
, dns
, networking
, json
, api
, rest
, auth
, xhr
,
microservices
.
Autor: ???
Tags: browser-apis
, geolocation
, web-storage
, web-sockets
, web-workers
,
web-rtc
, progressive-web-apps
.
Autor: L. Montero
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: ???
Tags: package-manager
, babel
, bundlers
, pre-processors
, linter
, testing
,
task-runner
.
Autor: ???
Tags: react
, angular
, vue
, typescript
, flow
.
Autor: ???
Tags: http
, file-system
, express
, api-development
, deployment
.
Autor: ???
Tags: schema-design
, sql
, no-sql
, querying
, performance
, orm
.
Autor: ???
Tags: web-stack
, fullstack-framework
, routing
, mv*
, orm
.
En este track se encontrarán las estudiantes que sientan una mayor afinidad con el diseño de experiencia de usuario.
En este track se encontrarán las estudiantes que sientan una mayor afinidad con el desarrollo de interfaces sin necesidad de profundizar tanto en la lógica de programación.
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.
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: 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
.
Autor: ???
Tags: docker
, containers
, clusters
, scalability
, partitioning
...
Autor: ???
Tags: estadística
, map/reduce
, d3
, canvas
, ...
Autor: ???
Application deployment, management, maintenance, configuration and repair.
Tags: devops
, webops
, deployment
, maintenance
, management
, backup
,
repair
, debugging
, ...
Autor: ???
Tags: big-O
, adhoc
, search
, sort
Autor: ???
Tags: cs
, arrays
, objects
, stacks
, sets
, queues
, graphs
, trees
Toda contribución es gratamente bienvenida.
Pero POR FAVOR no olvides leer detalladamente la guía para contribuidores antes de enviar un PR.
Todos los materiales de este repo son (c) 2017 Laboratoria.
Este trabajo está publicado bajo la licencia Creative commons Attribution-ShareAlike 4.0.