Afilando la Katana: Qué debe saber un ninja programador (en 2013)
-
Upload
software-guru -
Category
Technology
-
view
3.043 -
download
1
description
Transcript of Afilando la Katana: Qué debe saber un ninja programador (en 2013)
![Page 1: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/1.jpg)
Afilando la Katana:Qué debe saber un
Ninja Programador (en 2013)
Pedro Galván Kondo@pedrogk
Campus Party Mx 2013#ninjacpmx4
![Page 2: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/2.jpg)
#ninjacpmx4
Un ninja sabe ...● Lenguajes● Frameworks● Moverse en todo el stack● Aportar en el ciclo de vida
de software
![Page 3: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/3.jpg)
#ninjacpmx4
Un ninja tiene un lenguaje base
● ¿estático o dinámico?● multiplataforma● Recomendaciones: Python, Ruby,
Groovy, C#
![Page 4: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/4.jpg)
#ninjacpmx4
Un ninja también usa lenguajes compilados de tipado estático
● C++
![Page 5: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/5.jpg)
#ninjacpmx4
Un ninja sabe programación funcional
● Clojure● Haskell
![Page 6: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/6.jpg)
#ninjacpmx4
Un ninja usa distintos lenguajes para dominios específicos
● Objective-C (iOS)● Php (Web)● Javascript● Lua (juegos)● R (análisis de datos)
![Page 7: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/7.jpg)
#ninjacpmx4
Un ninja entiende y aprovecha frameworks
● Entender patrones arquitectónicos (MVC, MVP, MVVM)
● Entender Convention <-> Configuration
● Microframeworks (ej. Sinatra)
![Page 8: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/8.jpg)
#ninjacpmx4
Un ninja es un full stack developer
● Front end● Middleware● Data management● Integración● Infraestructura
![Page 9: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/9.jpg)
#ninjacpmx4
Un ninja hace vibrar al front end
● HTML5/CSS● Manipulación de DOM
(JQuery)● OpenGL● Otros específicos a plataforma
(Cocoa, WPF, etc)
![Page 10: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/10.jpg)
#ninjacpmx4
Un ninja no le teme al middleware
● Programación asíncrona (node.js)
● Message oriented
![Page 11: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/11.jpg)
#ninjacpmx4
Un ninja sabe manejar datos
● BD relacionales● NoSQL (mongoDB, Redis)● NewSQL● Big data (MapReduce)
![Page 12: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/12.jpg)
#ninjacpmx4
Un ninja sabe integrar sistemas
● Entiende protocolos de comunicación (HTTP)
● Usa y diseña APIs (REST)
![Page 13: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/13.jpg)
#ninjacpmx4
Un ninja sabe de infraestructura
● Linux y bash● PaaS (App Engine,
Azure, AWS, Heroku)● Gestión de cómputo
elástico
![Page 14: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/14.jpg)
#ninjacpmx4
Un ninja no se limita a programar funcionalidad
● Diseño lógico (arq., modelado, patrones)● Testing (unitario y stress)● Software configuration management (control
de versiones distribuido, build automation, continuous integration)
![Page 15: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/15.jpg)
#ninjacpmx4
Un ninja detecta tendencias● Interfaces humanas
(reconocimiento de voz y gestos, natural language processing)
● Datos (big data, machine learning, visualización)
![Page 16: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/16.jpg)
#ninjacpmx4
Si te falta mucho ...
● No te preocupes ... mejor ocúpate
![Page 17: Afilando la Katana: Qué debe saber un ninja programador (en 2013)](https://reader034.fdocumento.com/reader034/viewer/2022052400/559b4f331a28ab3d3b8b458f/html5/thumbnails/17.jpg)
#ninjacpmx4
Gracias
● Lee SG http://sg.com.mx
● Participa en http://applatina.com.mx