¿Quieres ser desarrollador? Probablemente debería ser Programación por pares.

Cuando la gente piensa en el desarrollo de software, es comprensible que piense en un programador lobo solitario desconectado del mundo que resuelve problemas complejos.

¿Qué pasaría si te dijera que esto es casi nunca la forma en que el desarrollo de software realmente funciona en el mundo real ... y que la programación en pareja podría ser tu respuesta para aprender a codificar más rápido, prepararte para el mundo real del desarrollo de software y quizás divertirte más en ¿proceso?

Suena bien. Entonces, ¿cómo funcionan realmente los desarrolladores de software?

Lo que puede ser más exacto es un equipo de desarrolladores de software, que a veces se desconecta del mundo, se conecta con el mundo en otras ocasiones y sigue resolviendo problemas complejos (pero juntos ).

El escenario del lobo solitario puede ser cierto en ciertas situaciones, como completar un proyecto paralelo o un trabajo independiente. Sin embargo, la mayoría de las veces, el desarrollo de software para productos de cualquier escala significativa lo realiza un equipo de software completo, probablemente con una combinación de diferentes fortalezas de desarrollo (consulte la imagen a continuación del DSDM Agile Framework). Este equipo de software se conectará a un equipo comercial y empresarial más amplio (no podemos olvidar a nuestro usuario final :))

¿Qué significa esto para nosotros, los desarrolladores de software que estamos aprendiendo el oficio? Significa que, si bien aprender a codificar a menudo comienza como un juego de lobo solitario, queremos que (lo antes posible) se convierta en el deporte de equipo del desarrollo de software que prevalece en la mayoría de las organizaciones.

Más allá del contenido de codificación en sí, es esencial desarrollar las habilidades de colaboración y trabajo en equipo que lo ayudarán a prosperar en un equipo de desarrollo de software. Contar con el apoyo externo de otros para que te esfuerces también es una manera fantástica (quizás la mejor) de aprender, incluso si la tentación natural es luchar solo con los complicados problemas de codificación.

Encontrar un equipo con el que aprender y crecer puede no ser una solución práctica. Encontrar a otra persona con quien emparejar el programa es un punto de partida mucho más realista.

Ok, estoy intrigado ...

Para los no iniciados: ¿qué es la programación en pareja?

Afortunadamente, Wikipedia puede ayudarnos aquí:

“La programación en pareja es una técnica de desarrollo de software ágil en la que dos programadores trabajan juntos en una estación de trabajo. Uno, el conductor , escribe el código mientras que el otro, el observador o el navegador , revisa cada línea de código a medida que se escribe. Los dos programadores cambian de función con frecuencia ".

¿Cómo cambia esto la mentalidad de las dos personas que se acercan al código?

“Al revisar, el observador también considera la dirección“ estratégica ”del trabajo, aportando ideas para mejoras y probables problemas futuros a abordar. Esto libera al conductor para que concentre toda su atención en los aspectos "tácticos" de completar la tarea actual, utilizando al observador como red de seguridad y guía ".

Está bien. Pero, ¿no va a resultar muy incómodo este asunto de la programación en pareja?

Puede que seas escéptico con la programación por pares; yo mismo ciertamente era escéptico. Su primer pensamiento puede ser que la idea suena incómoda. ¿Será así?

Para calmar su escepticismo razonable, hablemos de algunas de las ventajas de la programación por pares, aplicada con un enfoque particular en aquellos que están cerca del comienzo de su viaje de codificación.

Tres ventajas principales de la programación por pares, adaptada a alguien que está aprendiendo a codificar:

(1) La programación en pareja es una forma fantástica de aprender de otro codificador.

En ningún otro entorno estarás en el mismo punto exacto de un desafío de codificación, luchando con el mismo problema y tratando de resolverlo juntos. Te reirás, llorarás y finalmente aprenderás .

Es importante destacar que habrá acumulado diferentes bases de conocimientos a medida que haya aprendido a codificar y podrá obtener contenido nuevo de su par. Más importante aún, una buena programación se trata, en última instancia, de aplicar su mejor proceso de resolución de problemas, no solo de tener mucho conocimiento del contenido (consulte esta publicación). La programación por pares le permitirá aprender del proceso de otro desarrollador, así como también le dará la oportunidad de recibir comentarios sobre su propio proceso de codificación (más información sobre los comentarios a continuación).

Beneficio adicional de tener esta perspectiva sobre su proceso de codificación y tener que explicárselo a su pareja: eludir el problema es una forma fantástica de depurar código. En pocas palabras, implica explicar lo que está tratando de resolver a un 'pato de goma' u otro objeto inanimado, para que tenga una perspectiva del problema. ¿Por qué no explicarle a un codificador de la vida real que puede intercambiar ideas en su lugar?

(2) El emparejamiento es un excelente entorno para practicar las habilidades de equipo que son fundamentales para un buen desarrollo de software.

Establecimos anteriormente que el software es un deporte de equipo. Al llevar su práctica de codificación fuera de su propia cabeza mediante el emparejamiento, naturalmente desarrollará las habilidades de equipo suave que son tan vitales para trabajar en un equipo de desarrollo de software más grande.

La codificación de entrevistas a menudo puede implicar hablar con su entrevistador a través de su proceso de pensamiento mientras codifica o pseudocodifica. Con la práctica de emparejamiento, podrá articular claramente sus pensamientos de codificación y darse la mejor oportunidad que pueda en estas entrevistas de estilo por pares.

(3) Los beneficios de la programación por pares son aún mayores para los desarrolladores de software (relativamente) nuevos.

Según lo respaldado por la investigación realizada por Laurie Williams, la codificación por pares funciona mejor cuando (i) el par trabaja en tareas complejas y (ii) los individuos tienen niveles similares de conocimiento de programación (ver la investigación de programación por pares compilada por Laurie Williams).

Como codificador recién creado que se abre camino hacia la grandeza, muchas de las tareas que emprenda serán naturalmente complejas, porque todavía no tiene esa base de experiencia y conocimiento que pueda facilitar tareas específicas de codificación. Es más probable que su pareja que también está aprendiendo a codificar esté a un nivel similar al suyo en una variedad de áreas de conocimiento de codificación, incluso si uno de ustedes es más fuerte en un área específica.

Más allá de la investigación rigurosa, también puede consolarse con el hecho de que la mayoría de los prestigiosos bootcamps de codificación (diseñados para llevar a las personas desde programadores novatos hasta desarrolladores junior en aproximadamente 3 meses) dependen en gran medida de la programación en pares como una forma para que los programadores pasen de cero a héroe lo más rápido posible.

El hecho de que estos bootcamps intensivos de enseñanza de código utilizan tanto el emparejamiento es un claro indicador de que definitivamente hay una pepita de oro en su uso para aprender y aprender rápido. Yo mismo descubrí las glorias de usar el emparejamiento para aprender en el bootcamp de programación al que asistí, Makers Academy.

Si todavía es escéptico, lo desafío a que pruebe la codificación por pares . Podría seguir enumerando sus beneficios, pero esto palidecerá en comparación con probarlo, ver sus poderes en la práctica y, en última instancia, decidir si es una excelente manera de aprender para usted.

De acuerdo, estoy convencido de intentarlo, ¿cómo empiezo?

Primero, encuentre su pareja (idealmente una persona que tenga un nivel de habilidad similar y que también esté aprendiendo a codificar). Este podría ser un amigo que conoce que está aprendiendo a codificar o alguien que conozca a lo largo de su viaje de codificación.

El emparejamiento en persona es ideal, pero el emparejamiento remoto también es excelente y puede ser una solución más conveniente (para lo cual puede usar software para compartir pantalla como Skype o Mikogo). En el lugar de trabajo, el emparejamiento se lleva a cabo con frecuencia entre desarrolladores senior y junior, de modo que el junior pueda aprender rápidamente del desarrollador senior.

Si actualmente no tiene a alguien obvio con quien pueda emparejarse, es hora de comenzar a construir su comunidad de desarrolladores.

Conocer a otros desarrolladores es un aspecto tan importante de aprender a codificar en sí mismo. Puede intercambiar pensamientos con las personas, desarrollar ideas juntos y aprender de personas con una variedad de antecedentes y fortalezas. Esto hace que valga la pena unirse a estas comunidades solo para conocer a otros desarrolladores, encontrar a alguien con quien emparejarse es una gran ventaja.

Si eres un codificador nuevo, te sugiero dos rutas seguras para conocer a otros desarrolladores:

(1) Únase a una comunidad de codificación donde las personas se unen para codificar / aprender a codificar. Por ejemplo, en Londres, puede unirse a 'London Hackspace'

(2) Asistir a eventos de la comunidad de codificación, en particular aquellos para nuevos codificadores. Una buena ruta es asistir a un evento organizado por un bootcamp actual. Otros programadores que revisen el bootcamp estarán en una posición similar a la tuya.

Una vez que encuentre un par potencial (¡o varios!), Pruebe diferentes técnicas de programación de pares para encontrar uno que le guste:

A continuación, se muestran dos ejemplos de técnicas de programación por pares:

(1) Maridaje Pomodoro. Se establece un temporizador de 25 minutos, donde una persona es el conductor y la otra el navegador. Cada 25 minutos, tienes un breve descanso y cambias de roles. Hay una gran extensión de Chrome para esto aquí.

(2) Maridaje de ping-pong. El conductor escribe una prueba fallida y luego pasa el rol de conductor (y el teclado) a la otra persona. El nuevo controlador escribe el código para que la prueba pase, refactoriza el código y escribe una prueba fallida para que la otra persona la procese. (Para comprender el desarrollo basado en pruebas, lea el punto 1 aquí)

Para conocer más técnicas de programación en pareja, vea:

  • Par de técnicas de programación
  • Programación de pares remotos

Para finalizar: equilibrar la vista sobre la programación por pares

Con suerte, ahora se siente inspirado para agregar la programación por pares como una herramienta poderosa a su caja de herramientas de aprendizaje. Realmente es muy útil, y espero que ahora tenga suficiente información para comenzar.

Para equilibrar lo anterior: la programación en pareja, por supuesto, no siempre es fácil. Aprender a explicar y externalizar su proceso de codificación puede resultar complicado. Trabajar con otros puede ser difícil en general, y ciertos escenarios pueden reducir el valor que proporciona la programación del par (por ejemplo, si las habilidades o los objetivos del par no coinciden).

"Las cosas difíciles no son fáciles, pero valen la pena" Mia love

Sin embargo, fundamentalmente, si está aprendiendo a codificar y a trabajar en un equipo de desarrollo de software, no he encontrado nada más útil que horas y horas de programación en pareja con una amplia gama de personas con diferentes antecedentes y talentos.

Cuando se trata de eso, la mayoría de las cosas en el código (y en la vida) se reducen a trabajar bien con otros. ¿El bono adicional? Trabajar con otros tiene la emoción de ir en direcciones inesperadas, el rigor de garantizar un código de alta calidad a través del desacuerdo y la discusión, y tal vez, solo tal vez, ¡simplemente será mucho más divertido!

¿Busca más secretos de codificación?

Esta es la quinta publicación de una serie que se centra en los metaaprendizajes secretos que he adquirido a medida que aprendí a codificar en Makers Academy: los enfoques, las herramientas y la mentalidad para lograr los avances que necesitas para ser un codificador increíble .

Haga clic aquí para ver mi publicación anterior: 5 formas de liberarse de problemas de codificación complicados y pegajosos

Si te gustó esta publicación de blog y te gustaría leer más como esta, haz clic en "Seguir" y dame algunos aplausos haciendo clic en el botón Aplausos medianos a continuación.