Ninja programador

3,438 views
3,444 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,438
On SlideShare
0
From Embeds
0
Number of Embeds
2,454
Actions
Shares
0
Downloads
26
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Ninja programador

  1. 1. Afilando la Katana: Qué debe saber un Ninja Programador (en 2013) Pedro Galván Kondo @pedrogk #sgvirtual
  2. 2. Un ninja sabe ... ● Lenguajes ● Frameworks ● Moverse en todo el stack ● Aportar en el ciclo de vida de software #sgvirtual
  3. 3. Un ninja es políglota pero tiene un lenguaje base ● ¿estático o dinámico? ● multiplataforma ● Recomendaciones: Python, Ruby, Groovy, C# #sgvirtual
  4. 4. Un ninja sabe programación funcional ● ● #sgvirtual Clojure Haskell
  5. 5. Un ninja usa distintos lenguajes para dominios específicos ● ● Php (Web) ● Javascript ● Lua (juegos) ● R (análisis de datos) ● #sgvirtual Objective-C (iOS) C++ (infraestructura)
  6. 6. Un ninja entiende y aprovecha frameworks ● ● ● #sgvirtual Entender patrones arquitectónicos (MVC, MVP, MVVM) Entender Convention <-> Configuration Microframeworks (ej. Sinatra)
  7. 7. Un ninja es un full stack developer ● ● Middleware ● Data management ● Integración ● #sgvirtual Front end Infraestructura
  8. 8. Un ninja hace vibrar al front end ● ● ● ● #sgvirtual HTML5/CSS Manipulación de DOM (JQuery) OpenGL Otros específicos a plataforma (Cocoa, WPF, etc)
  9. 9. Un ninja sabe moverse en el middleware Application servers/containers ● Message oriented ● Package management ● Programación asíncrona (ej. Node.js) ● #sgvirtual
  10. 10. Un ninja sabe manejar datos ● ● NoSQL (mongoDB, Redis) ● NewSQL ● #sgvirtual BD relacionales Big data (MapReduce)
  11. 11. Un ninja sabe integrar sistemas ● Entiende protocolos de comunicación (HTTP) ● ● #sgvirtual Usa y diseña APIs (REST) Aplica Patrones de Integración.
  12. 12. Un ninja sabe de infraestructura ● ● ● #sgvirtual Linux y bash PaaS (App Engine, Azure, AWS, Heroku) Gestión de cómputo elástico
  13. 13. 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, integración continua) #sgvirtual
  14. 14. Un ninja detecta tendencias ● ● #sgvirtual Interfaces humanas (reconocimiento de voz y gestos, natural language processing) Datos (big data, machine learning, visualización)
  15. 15. Si te falta mucho ... No te preocupes, mejor ocúpate #sgvirtual
  16. 16. Gracias Lee SG http://sg.com.mx Regístrate en http://sgtalento.com #sgvirtual

×