Conocimiento técnico previo requerido
- Programación orientada a objetos básica
- ¿Qué es un Objeto?
- ¿Qué es una Clase?
- ¿En qué consiste la encapsulación, agregación, composición?
- ¿Qué es la Herencia (inheritance)?
- ¿Qué es una Clase Abstracta?
- ¿Cuál es la diferencia entre una Interfaz y una Clase Abstracta?
- ¿Qué es un Class Diagram?
- ¿Qué estructuras de datos conoces y has manejado?
- Patrones de diseño
- En qué consiste el patrón Model-View-Controller (MVC)?
- Cuál es la diferencia entre un Modelo y un Controlador?
- Recursos
- APIs
- Qué es un API?
- Cuáles son las ventajas de tener un API?
- Recursos
- HTML/CSS
- ¿Qué es un tag de HTML?
- ¿Qué es un atributo?
- ¿Qué es el DOM?
- ¿Qué es un selector de CSS?
- ¿Cuál es la diferencia entre un elemento HTML inline y uno block?
- ¿Cómo se modifican estilos básicos de un elemento HTML con CSS (color de fondo, color de texto, etc.)?
- Recursos
- https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Introduction
- https://developer.mozilla.org/en-US/docs/Web/CSS/Syntax
- https://developer.mozilla.org/en-US/docs/Web/CSS/Specificity
- https://developer.mozilla.org/en-US/docs/Web/CSS/inheritance
- https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Getting_started
- JavaScript
- ¿Para qué se utiliza JavaScript en una página web?
- ¿Cómo se pueden asociar funciones a eventos como un clic en un elemento HTML?
- ¿Cómo se pueden crear Clases y Objetos en JavaScript?
- Recursos
- Ruby
- ¿Qué es un símbolo?
- ¿Como se lleva a cabo la sobrescritura de métodos en clases?
- Recursos
- Recursos en Internet
- ¿Cómo funciona StackOverflow?
- ¿Qué diferencias conoces entre SaaS, PaaS, IaaS?
- Recursos
Instalación de software necesario
- Laptop con sistema operativo UNIX based:
- Mac OS X
- Ubuntu
- Debian
- Git
- Ruby
- Editor de texto favorito
- Sublime Text
- Vim
- Emacs
- Brackets
- TextMate
- Web server local
- Cuenta de github creada
- PostgreSQL
- CLI de tu preferencia:
- zsh
- bash
Existe un script que automatiza la instalación de todo lo mencionando anteriormente, su nombre es kaishi y lo puedes encontrar aquí.
Práctica de tareas básicas de manejo de código
- Git
- Crear un repo local (git init)
- Hacer un commit (git commit)
- Hacer un branch (git branch)
- Hacer merge entre dos branches (git merge)
- Hacer reset o revert hacia un commit anterior (git reset)
- Github
- Crear un repo en github
- Sincronizar en computadora local
- Hacer un commit y push
- Command Line Interface
- Crear un directorio local (mkdir)
- Cambiar de directorio (cd) y listar sus contenidos (ls)
- Crear un symlink (ln -s)
- Eliminar un archivo (rm)
- Modificar permisos de un archivo o directorio (chmod)
Recursos de apoyo
- CodeSchool
- CodeAcademy
- Command Line Interface