• Inspiración
  • Tutoriales
  • Bootcamp

Planer

  • Inspiración
  • Tutoriales
  • Bootcamp

Metodologías 4

Pair programming (de a dos es mejor)

Pair Programming

Aunque no lo creas hay una práctica común en el mundo de la programación que consiste en dos personas trabajando en un sólo computador. A esta práctica se le conoce como pair programming y tiene numerosas ventajas dependiendo de la situación.

Más Disciplina. Emparejando correctamente es más probable que hagan “lo que se debe hacer” en lugar de tomar largos descansos.

Mejor código. Trabajando en parejas es menos probable producir malos diseños ya que su inmersión tiende a diseñar con mayor calidad.

Flujo de trabajo constante. Bajo la metodología de pair programming el flujo de trabajo distinto al trabajar solo. En parejas el flujo de trabajo se recupera más rápidamente: un programador pregunta al otro “¿por dónde quedamos?“. Las parejas son más resistentes a las interrupciones ya que un desarrollador se ocupa de la interrupción mientras el otro continúa trabajando.

Y finalmente hay una virtud muy útil cuando se trabaja de forma maratónica, ya sea porque se acerca un plazo de entrega o se está una competencia y es la resistencia a la fatiga, los programadores estamos acostumbrados a trabajar muchas horas seguidas, pero durante los periodos finales cometemos muchos más errores que cuando estamos descansados, en ese caso pair programming sirve para que uno de los miembros revise los detalles menores (errores que introduciremos) mientras el otro trabaja en el big picture.

¿ Cuando no ocupar la metodología de Pair PRogramming?

Como en todas las estructuras de trabajo no hay balas de plata ni formulas mágicas, en ciertas ocasiones el trabajo de un programador puede ser relativamente mecánico, en ese caso y cuando los errores no son críticos, el pair programming es una práctica que no es muy útil, puesto que hay dos personas haciendo el trabajo de una sola, lo que puede ser visto como un desperdicio de tiempo en la empresa.

Tampoco es aconsejable obligar a dos personas que no se relacionan bien a trabajar en conjunto, el pair programming requiere que dos personas pueden comunicarse bien, una debe liderar el proceso y la otra lo sigue, pero esos roles son dinámicos a lo largo de la jornada y también es común que ambos intercambien de asientos durante el proceso.

 

Share
February 11, 2016 Metodologíasmetodologías, pair programming, programación

El programador Full Stack

Full Stack Unicorn

El programador Full Stack es el generalista de los programadores, vendría siendo como el ingeniero civil industrial dentro del mundo de la informática con todo un arsenal de habilidades técnicas y no hay que confundirlo con el desarrollador Senior.

En resumen un programador full stack es un programador que puede crear aplicaciones complejas desde cero el sólo, para ello debe ser una persona que entienda en profundidad como interactúan las distintas capas de servicio de una aplicación.

Warning! El resto de este artículo está cargado de un arsenal de acrónimos informáticos.
Lo que debe saber un programador Full Stack:

1

Desarrollo Web laMP

El Kit más básico para ser un programador Full Stack es conocer desarrollo de aplicaciones WEB + LAMP, o sea Linux, Apache, MySQL y PHP, ahora muchas de estas tecnologías son intercambiables por otras similares, NginX en lugar de Apache, PostgreSQL en lugar de MySQL y Ruby on Rails en lugar de PHP, pero se entiende la idea.

Por supuesto que existe un equivalente Microsoft del Stack anterior, sería Windows + Microsoft IIS + .NET + SqlServer.

2

DESARROLLO WEB MEAN

El siguiente kit de un full stack developer es el llamado MEAN, que consiste en MongoDB (un motor de bases de datos no relacional) Express (que es un framework para Node y sólo se menciona antes que Node.js para que el acrónimo sea pronunciable), Angular el cual es un framework MVC (o MVVM) muy potente del lado cliente y Node, el famoso framework del lado servidor de javascript.

A diferencia del kit anterior este stack busca entregar la mayor cantidad de carga al lado del cliente pero requiere de una forma bien distinta de pensar las cosas.

3

Modelamiento

Claro, no se puede ser un desarrollador de aplicaciones independiente y no conocer de modelamiento y análisis de requisitos, Estos dos skills son mandatorios. Obviamente estos no son sólo conocimientos teóricos sino que se traducen en habilidades técnicas reales, conocer y manejar diversos tipos de diagrama de datos, partiendo como mínimo UML

4

Control de Versiones

Además un programador Full Stack debe saber ocupar herramientas de control de versiones como GIT, (SVN es mirado despectivamente dentro de los círculos snobs de programadores), y saber vincular GIT con herramientas de testing y deployment

5

Testing

Todos sabemos que la ley de murphy aplica siempre a menos de que estamos tratando de demostrar la existencia de la ley de murphy así que hay que testearlo todo y automatizar los testing.

6

PAAS y soluciones Cloud

Un buen programador Full Stack debe entender de manejo de PAAS como Heroku y Amazon, no sólo como usarlas si no que entender sus costos y como escalan y cuando deben ser usadas estas soluciones y cuando no.

7

Big Data, Scrapping y métricas

Este tipo de programador también debe saber de manejo de datos y cómo utilizar herramientas para análisis de ellos, o sea, sumemos a los requisitos conocer Hadoop y entender de operaciones map reduce. Además debe entender como extraer datos de sistemas de analíticas como googleanalytics, hay que tener en mente que el programador Full Stack no sólo es un programador, es además un análista.

Y como este tipo es un Rambo de la programación cuando no se tienen los datos debe saber scrappearlos de la web. Para analizar estos datos este Batman de la programación dispone en su cinturón herramientas decenas de algoritmos de Machine Learning e Inteligencia Artificial.

8

Aplicaciones Móviles

De Batman a Superman no hay mucha distancia, y como el full stack developer tiene que estar 100% actualizado obviamente debe saber como crear aplicaciones móviles, tanto híbridas como nativas, lo que suma a los requisitos conocer de frameworks web-mobile como PhoneGap y Titanium, de Frameworks Mobile como Ionic y Ratchet y obviamente debe saber Objective C (y Swift) y Java.

9

SEO y Sem

Hay que tener en mente que no es sólo suficiente construir, hay que publicar, y saber llegar a la gente y hay que saber ponerse en lugares para que la gente llegue aquí, publicar en las appstores es un arte, y estar primero en Google es una constante guerra y se hace mucho más difícil cuando la internet está llena de consejos malos.

10

Redes

Para que el arsenal esté completo, a este superheroe también se le pide que sea un experto en redes, y eso no es tan simple como montar una WIFI,hay que saber montar firewalls y hay que saber lidiar con iptables que definitivamente no es para novatos.

Las empresas cada día requieren de redes e infrastructuras más complejas y resistentes a ataques lo que me lleva al siguiente punto.

11

Seguridad Ofensiva

La mejor defensa es un ataque y ninguna persona que no esté constantemente leyendo los reportes de seguridad e intentando atacar sitios web puede estar al día en la defensa de su sitio, Un programador que no saber realizar inyecciones de queries via SQL es el mismo programador que dejará expuesta toda la base de datos de su aplicación. No digo que haya que andar por la vida haciendo daño sólo digo que es importante saber de seguridad informática.

Programadores Full Stack Vs Mundo Laboral

Es normal que las empresas quieran conseguir a los mejores trabajadores por la menor cantidad de recursos posibles puesto que en pedir no hay engaño, pero tener este tipo de conocimientos no es trivial, si bien se entiende que el full stack developer tiene más amplitud de conocimiento que profundidad entender de todos estos temas demora de muchos años de práctica por lo tanto no existe ni existirá algo así como Full Stack Developer Junior.

Hoy en día los alumnos salen de sus carreras de computer science, o ingeniería informática sin conocimientos de estos temas, por lo que una empresa los pida significa que este alumno debe tener 4 años de estudios universitarios y cómo un mínimo 5 a 10 de practica, o sea un Full Stack Developer tiene la misma experiencia de un Senior y como son técnicamente inexistentes les llaman los Unicornio de las programación.

Como empresa En1mes entiende de las necesidades de la falta de personas capacitadas en la industria, tanto en las areas de emprendimiento como en la industria formal TI y es por eso que hemos armado un Bootcamp especial para aplanar la curva de aprendizaje de estas tecnologías.

 

Share
September 30, 2014 Inspiración, MetodologíasBases de datos, emprendimientos digitales, Inspiración, lenguajes de programación, MySQL, php, Ruby on Rails

Explícale a un idiota

Explícale a un idiota

Les presento al startup monkey, este es mi compañero de programación y me acompaña desde que empecé a emprender, normalmente está colgando en la pared al lado mío pero cuando no se me ocurre como resolver un problema le cedo mi asiento y le explico lo que estoy haciendo, ¿ridículo cierto?

Esta práctica es famosa en la industria de la programación, se llama explícale a un idiota y consiste en explicarle a alguien más lo que estás haciendo, esta persona no tiene porque ser necesariamente idiota, basta con que esté presente.

Lamentablemente no siempre tenemos a alguien disponible e incluso teniendo a alguien al lado no es buena practica estar interrumpiendo a los compañeros programadores. En ese caso es cuando se vuelve útil contar con un peluche, figura de acción, amigo imaginario, mascota, da igual que sea real o virtual, pero tiene que ser algo o alguien que te permita contarle tu problema paso a paso de forma de hacer explícito tu razonamiento.

La importancia de hacer explícito tu razonamiento es que los problemas complejos de resolver en el ámbito de la programación muy rara vez son del tipo del te faltó un punto y coma, normalmente suceden por errores lógicos , y la lógica al igual que las ideas en tu cabeza cuadran perfecto, pero cuando la pones en papel te das cuenta que no tiene sentido.

Explícale a un idiota es el método de debugging por excelencia

La próxima vez que te enfrentes a un error que no logres encontrar en tu código prueba esta metodología, hacerlo con un peluche es particularmente funcional puesto que te vas a sentir muy ridículo haciéndolo y por lo mismo te vas a relajar lo que te va a hacer más fácil encontrar tus errores.

Share
September 17, 2014 Metodologíasmetodologías, programación

¿Qué se entiende por desarrollador senior?

administrador de sistemas

Me ha tocado leer varias veces en ofertas de trabajo que se buscar desarrollador (o programador) senior, ¿pero qué significa ser un desarrollador senior?

La definición más clásica es por años de trabajo, con más de 5 años de trabajo en un lenguaje uno podría decir que se senior, pero la verdad es que esta es una definición completamente arbitraria, por ejemplo tu podrías llevar 5 años trabajando en un lenguaje pero sólo manteniendo 1 proyecto, en cuyo caso sabrías mucho de ese proyecto y del alcance de desarrollar proyectos grandes pero escasa capacidad de presentar soluciones distintas en proyectos nuevos.

Podría pasar lo mismo al revés, o sea tener mucha experiencia prototipeando proyectos pero poca llevando proyectos hasta el fondo y escalándolos.

Además en muchas ocaciones los desarrolladores no ocupan un sólo lenguaje y 2 años trabajando en 3 lenguajes no es lo mismo que 2 años trabajando en uno sólo y obviamente ambas dimensiones tienen características deseables.

Lo que si no es arbitrario es saber que es lo que se espera de un programador senior, y es que entienda a profundidad el lenguaje en el que trabaja, eso quiere decir solamente que no sólo debe conocer los códigos, un programador senior debe poder predecir las complicaciones que pueden surgir de las implementaciones de diversas soluciones y ser capaz de estimar los tiempos de desarrollo de estas.

Muchas empresas no saben que es lo que buscan, la mayoría de las empresas de tecnología no saben de tecnología, y cuando buscan a un desarrollador piden cosas que no existen, es así como piden 10 años de experiencia en HTML5 cuando es un estándar que ni siquiera ha sido terminado de implementar. Pero eso nos da una ventaja, pues entendiendo bien la industria y sus necesidades podemos presentar soluciones e innovar.

En resumen un desarrollador senior es alguien quien entiende a cabalidad el ámbito donde se está desarrollando una solución informática y ese aprendizaje no se logra memorizando códigos ni soluciones, se logra con años de práctica en la industria y obviamente manteniendose actualizado.

Un buen consejo: Tener una barba larga ayuda a parecer un desarrollador senior

Share
September 16, 2014 Citas emprendedoras, Emprendimientos Digitales, MetodologíasDesarrollo de software, IT, Programador, Recursos Humanos, Senior
Tags
mostbetslotticamostbet UZslottica PLkudos casino no deposit bonuskudos casino bonus codeskudos casino free chipkudos casino loginRuby on Railskudos casino sister siteskudos casino free spinskudos casino no deposit bonus codesaviatoraviator KZozwincasinoozwincasino AUemprendimientos digitalesfortunetigerfortunetiger BRTutorialesDiseño20bet plbet20 casinokudos casinoLondonLondon UZ20 betbj88slottica BR20bet casino logowanie20bet kasynoHerramientas20 bet casinohtml5gratogana entrargratogana juegos en vivo20bet logowanieWordpressrubyLanding PageBases de datosplaycroco casinoplay crocogratogana onlineparty poker casino
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • PADANGTOTO
  • Interesado en otros tipos de emprendimiento?

    Quieres aprender a importar y exportar productos a todo el mundo? entra aquí

  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • LOMBOKTOTO
  • No te pierdas ningún artículo.

  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • RAMALANTOTO
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • IRAMATOGEL
  • 2025 © UGMSLOT
    Planer theme by Dankov