Upload
vuongnguyet
View
215
Download
0
Embed Size (px)
Citation preview
1
Full Stack DeveloperThe Python Stack
Un Full Stack Developer es una profesional con habilidades en todos los ámbitos del desarrollo de aplicaciones, generalmente en unos o dos stacks, tanto en su vertiente Front-
end como en la vertiente Back-end.
2
Requisitos¿Qué necesitas saber?
ProgramaciónFundamentos. Programación
orientada a objetos. MVC. Diseño Workflow.
HTTP/HTML5Protocolo HTTP, Verbos.
Sesiones. HTML5 Canvas, Web Components. Storage, etc.
JAVASCRIPTFundamentos. DOM. Ajax.
Objetos. Prototipos. Closures, etc. Jquery.
CSS3Fundamentos. Animaciones.
Transformaciones. Media queries. Bootstrap.
En generalEl candidato debe ser capaz de elaborar sin mucho esfuerzo un conjunto de páginas web que intercambien información entre sí por medio de Ajax y HTTP request y ser capaz de dotarlas de estilo e interacción con CSS3, Bootstrap y Jquery. Debe conocer los fundamentos del protocolo HTTP/S y manejo de
sesiones. Debe saber como almacenar información en el navegador con HTML5. Términos como OAuth2, Websockets o WebRTC no deben ser extraños para tí.
3
FrontendJquery UI. BootstrapVue.js. D3.js. SASS. Chrome Dev Tools.
Postman. Gulp, Grunt. RestAPI. Vagrant. CI con
Jenkins
DjangoIntroducción. MVC/MTV. Instalación, Estructura. Configuración. Modelos. URL Mappings. Vistas y
Plantillas. Debugging. RestAPI. Testing
InfraestructuraNginx reverse proxy para
Apache. WSGI. Configuración. Seguridad. Administración. Gestión dependencias con PIP.
PythonInstalación, IDEs,
Funciones, listas y cadenas. Colecciones. Modularidad. Objetos,
Excepciones. Iterables. Clases. Archivos.
Itinerario formativoResumen
01 02 03 04 05 06
FundamentosIntroducción. Python.
Entorno desarrollo. Servidores web. Acceso a
datos. Framework. Despliegue.
DatosPostgreSQL. Redis.
Conectando con Python. DatabasesIntefaces, DB-
API. Django ORM
4
Distribución del conocimientoCómo se organiza el contenido
Fundamentos y ConceptosEl objetivo será fundar una base
sólida donde los conceptos estén claros y se obtenga una visión actual y holística del desarrollo
de aplicaciones con Python.
Experiencia RealNuestros expertos están
trabajando en proyectos Full Stack con Python en empresas
de primer nivel. Compartirán con nosotros los casos a los que se
enfrentan día a día, y analizaremos juntos las
lecciones que han obtenido.
Clases ÚnicasUna vez a la semana recibiremos una master class de un experto
en diferentes áreas que nos desvelarán los secretos y
conocimientos avanzados que de otra manera tardaríamos años en
adquirir.
Eminentemente prácticoLa mayor parte del programa se
dedicará a la realización tutorizada de ejercicios
prácticos. Estos ejercicios serán guiados al principio pero muchos ejercicios se realizarán en equipo
y podrán tener más de una solución.
Teoría Casos Reales Master Class Ejercicios
10% 20% 20% 50%
5
HabilidadesQué habilidades adquiriremos
Fundamentos
DjangoAprenderemos a manejar el framework Python más utilizado. Pondremos en marcha aplicaciones en minutos y aprenderemos a extender Django. Testing con Python.
La baseDomino de los elementos necesarios para construir
nuestra aplicación: HTML5, Javascript, CSS3. Pero
también aprenderemos a programar de manera más
efectiva y productiva.
PythonAdquiriremos un dominio avanzado del lenguaje Python, y sentaremos las bases para extender nuestro dominio de Python con librerías y técnicas avanzadas.
InfraestructuraUn full stack developer tiene
control sobre todos los aspectos que influyen en su
aplicación. Trabajaremos con Apache y NGINX y con PostgreSQL y
MongoDB
FrontendTrabajamos con.Jquery y
Bootstrap para dar estilo a nuestro proyecto.
Conoceremos herramientas como Gulp o Jenkins para
mejorar nuestra productividad y calidad del
proyecto.
Python
Infraestructura
Django
Frontend
6
Cómo nos gusta enseñarNuestra metodología
El conocimiento se transmite.
Nos apasiona nuestro trabajo y deseamos que
nuestros alumnos participen de nuestra
ilusión. El aprendizaje se potencia cuando te
diviertes…Esto es un hecho,
El conocimiento se adquiere
Nuestra filosofía es aprender haciendo. Sabemos que es ahí donde necesitas nuestra guía. No te vamos a enseñar nada que puedas buscar tu mismo en Google.
7
Herramientas
01
02
03
04
05Master ClassesY Casos reales
Pruebas de nivel y aprovechamiento
Virtual & RemoteTraining
LaboratoriosEscritoriosVirtuales
Learn by doing
8
Cómo seleccionamos a los candidatosProceso de selección
Hemos puesto mucho esfuerzo encrear estos másteres. Deseamos que
todos los participantes disfrutenaprediendo tanto como nosotros
vamos a disfrutar enseñando. Necesitamos asegurarnos que todos
los candidatos tienen las características y capacidades
necesarias para aprovechar y asimilarlos conocimientos.
Buscamos a los mejores
www.digitaltechinstitute.com/apply
9
Cómo seleccionamos a los candidatosNuestro proceso de selección
IlusiónPreferimos una persona
apasionada que cien meramente interesadas
ConocimientosNos aseguramos que el candidato disponga de los conocimientos necesarios para aprovechar el itinerario formativo.
ExpectativasValoramos las expectativas del candidato hacia el curso. Nos aseguramos de ofrecerte exactamente lo que estás buscando.
TrayectoriaValoramos la experiencia profesional y el perfil del candidato.
10
Cuándo empezamosCalendario 2017
EneroLu Ma Mi Ju Vi Sa Do
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
FebreroLu Ma Mi Ju Vi Sa Do
30 31 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 1 2 3 4 5
MarzoLu Ma Mi Ju Vi Sa Do
27 28 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
Inicio Máster
Inicio del proceso de selecciónComienza el proceso de selección de candidatos por medio de entrevistas y pruebas de nivel.
Fin del proceso de selecciónSe cierra el proceso de selección, loscandidato en lista de espera serántrasladados a la próxima edición.
Desarrollo del másterDurante 8 semanas aprenderemos las técnicas y fundamentos para convertirnos enexpertos en Big Data.
11
CalendarioCalendario 2017
AbrilLu Ma Mi Ju Vi Sa Do
27 28 29 30 31 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Semana Santa
Desarrollo del másterDurante 8 semanas aprenderemos las técnicas y fundamentos para convertirnos enexpertos en Big Data. Terminamos el Viernes 28 de abril.
Fin del Máster
12
Dónde celebramos nuestro MásterCentros de formación
MadridRibera del Loira, 46 Edificio 2 28042
Madrid
BarcelonaCan Bruixa, 16 08028Barcelona
13
Establecemos las bases. Manejamos los términos de manera apropiada y definimos términos basándonos en
ejemplos.
Módulo 1 - Python
INTRODUCCIÓNQué es Python. Conceptos del lenguaje. Diferencias e idoneidad con otros lenguajes. Sintaxis e indentación. El Intérprete de Python. Estilo de código.
PRESENTACIÓNIntroducción y definición de objetivos. Descripción general de la formación. Claves para sacar el máximo provecho. Entorno de trabajo. IDEs. Instalación
FUNDAMENTOSTipos. Numerales. Cadenas. Operadores. Control de flujo: Condicionales. Bucles. Listas. Tuplas. Sets. Diccionarios. Métodos y funciones de estructuras de datos.
MÓDULOSIntroducción a los módulos. Los módulos estándar. Pycache. Función dir(). Paquetes. Importación selectiva y referencias.
MANEJO DE ERRORES Y EXCEPCIONESErrores de sintaxis. Errores semánticos. Errores de ejecución. Excepciones. Manejo. Lanzamiento de excepciones. Excepciones definidas por el usuario
FUNCIONESDefinición. Flujo. Estructura. Argumentos. Argumentos con claves. Argumentos arbitrarios. Lambdas. Documentación. Anotaciones. Recursividad.
14
Profundizamos en Python. Exploramos la librería estándar y aprendemos a usar otras librerías. Trabajaremos con
tests automatizados y unitarios. Aprenderemos a utilizar Git y Mercurial y a gestionar las dependencias con PIP.
Módulo 2 - Python Avanzado
LIBRERÍA ESTÁNDAR IIntroducción. Funciones integradas. Contantes integradas. Tipos. Excepciones. Servicios de cadenas. Tipos de Datos. Módulos matemáticos. Acceso a archivos y directorios.
LIBRERÍA ESTÁNDAR IIIHerramientas de proceso de marcado estructurado: HTML, XML. SGML, SAX2, DOM Trees. Protocolos de Internet. Servicios Multimedia. Internacionalización.
TESTING & DEBUGGINGPydoc. Unit testing. Automated testing. Debuggerframework. Profilers.
LIBRERÍA ESTÁNDAR IIPersistencia. Compresión de datos. Formatos de archivo. Servicios criptográficos. Servicios del sistema operativo. Networking y comunicación entre procesos. Manejo de datos de Internet.
CONTROL DE VERSIONES Y DEPENDENCIASIntroducción a Git. GitHub. Mercurial. BitBucket. Workflow. Gestión de dependencias con PIP
CLASES Y OBJETOSClases y objetos. Nombres de clase. Ámbito. Definición de clases. Objetos. Instancias. Métodos. Definición de tipos. Variables de clase y de instancia. Variables privadas. Generadores. Polimorfismo. Herencia. Delegación.
15
Trabajaremos con servidores web como Nginx. Aprenderemos a instalar Nginx como proxy reverso para
servidores WSGI. Aprenderemos aspectos de configuración, rendimiento y seguridad.
Módulo 2 - Infraestructura
INTRODUCCIÓNArquitectura. El entorno de desarrollo y producción. Configuraciones frecuentes.
NGINXIntroducción a Nginx. Descarga e instalación. Configuración. Línea de comandos. Cookbook. Load balancing.
PYTHON ON CLOUDGoogle Cloud Platform. AWS SDK. IBM Blue Mix. Python for Watson SDK.
RENDIMENTOAjustes de rendimiento en programación. Benchmarking. Python-memcached. Pylibmc. Ajustes rendimiento servidores web.
SEGURIDADSeguridad de aplicaciones web. Consideraciones de configuración. Revelación de información. Pentesting. Tips de seguridad. Desarrollo de aplicaciones seguro.
WSGIQué es WSGI. Interfaz. Entorno. Response Iterable. Getparsing. Post parsing. Nginx como proxy reverso de WSGI. Implementaciones: Green Unicorn, uWSGI
16
Estudiaremos los distintos sistemas de almacenamientomás utilizados en python y veremos multitud de casos de
uso. Trabajaremos con PostgreSQL y Redis.
Módulo 4 - Almacenamiento
INTRODUCCIÓNMotores de bases de Datos. Lenguaje SQL. SQL vs NoSQL. Inotrducción a PostgreSQL y Redis.
REDISIntroducción e instalación. Configuración. Sintaxis. Tipos. Comandos redis. Cookbook.
POSTGRESQLIntroducción y casos de uso. Sintaxis. Definición de tipos. Índices. Consultas. Búsqueda Full Text. Administración. Clientes. Consurrencia y rendimiento.
ACCESO A DATOS CON PYTHONDatabasesInterface. DB-API. Conectando y oprando con PostgreSQL. Conectando y operando con Redis.
17
No sumergiremos en el framework más utilizado en Python: Django. Realizaremos proyectos de desarrollo ágil
con este framework.
Módulo 5 - Django
INTRODUCCIÓNIntroducción a Django. Principios. MVC/MTV Instalación. Iniciando un proyecto. HTTP Requests. Aplicaciones. Excepciones. Testing y despliegue en Django.
MODELOSModelos. QuerySets. Instancias de modelos. Migraciones. ORM. Atributos. Campos. Métodos. Herencia. Paquetes.
PLANTILLASIntroducción. El motor de plantillas de Django. EL lenguaje de plantillas. Etiquetas y filtros. Widgets. API.
ADMINAdmin site. Admin actions. Admin documentationgenerator.
FORMULARIOSIntroducción. Form API. Campos built-in. Widgets built-in. Formularios y modelos. Media. FormSets. Validación
VISTASIntroducción. URLconfs. Bultin-views. Request/Response Object. Template response. File uploads. Class-based views. Middleware. Generando csv/pdf
DJANGO AVANZADOConfiguración avanzada. Seguridad. Internacionalización. Optimización y rendimiento. Geographic framework. Web Appliation Tools.
18
En éste módulo nos sumergiremos en las herramientas y frameworks que nos ayudarán a producir un trabajo de
calidad con un aspecto profesional y atractivo. Nos introduciremos en el mundo de la integración continua.
Módulo 6 - Front-end y DevOps
JQUERY & JQUERY UI & BOOTSTRAPRepaso Javascript & DOM. Jquery Selectors. Interacción con el DOM. Manejo de eventos. Ajax. Efectos y anmaciones. JQuery UI Widgets. Interacciones. Efectos. Bootstrap intro y Componentes. Plugins.
HERRAMIENTASChrome Dev tools. Firefox developer edition. Postman. Gulp. Grunt.
VUE.JSIntroducción. Data binding. Directivas y filtros. Métodos. Eventos. Formularios. Transiciones. Componentes. Plantillas.
VAGRANTIntroducción. Entorno. Linea de comandos. Configuración del proyecto. Boxes. Vagrant share. Provisioning. Networking. Sync. Providers. Plugins
CI CON JENKINSIntroducción a Jenkins. Instalación. Flujos de trabajo. Creando Application Builds. Testing. Integración Continua. Entrega continua. Plugins. Integrando Jenkins con Git y Bitbucket y Vagrant.