Full Stack Developer - zemsania.com · desarrollo de aplicaciones, generalmente en unos o dos...

18
1 Full Stack Developer The 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.

Transcript of Full Stack Developer - zemsania.com · desarrollo de aplicaciones, generalmente en unos o dos...

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.