elprogramadormediocre/chapter04.md

13 KiB

Las posadas en las que nos hospedamos

Compañeros de viaje

Siempre que pensamos en programadores tendemos a pensar en una persona sentada frente a un ordenador escribiendo código, con el brillo del monitor reflejándose en su cara. Normalmente el programador está solo (aunque hay algunas metodologías en las que participa más de un programador a la vez, "programación en pareja" o "pair-programming" por ejemplo). Durante esas sesiones de escribir código, no hay mucho contacto con otros programadores y puedes sentirte aislado al estar en compañía únicamente de ti mismo. De acuerdo, esta puede ser una sensación agradable (hay momentos en los que realmente disfruto de la soledad junto al ordenador, completamente ocupado y centrado), pero hay otros momentos en los que necesitamos sentir que no estamos solos. Esto es especialmente cierto cuando estamos aprendiendo y adentrándonos en un territorio incómodo. Encontrar a otras personas en situaciones similares nos puede ayudar en nuestro proceso de aprendizaje. Otras personas nos pueden ayudar respondiendo a nuestras preguntas y revisando nuestro progreso. Encontrar una buena comunidad que nos apoye en nuestro aprendizaje es esencial en nuestro viaje en la programación. Cuando tenemos una gran comunidad, tenemos un lugar donde poder aprender y ayudar a que otras personas aprendan. Podemos crecer en la comunidad y encontrar apoyo.

Una buena comunidad es aquella que nos fortalece a nosotros y a quienes nos rodean. Nos nutre y nos proporciona refugio. Es un lugar seguro donde no tenemos que mantener la guardia alta de los ataques a nosotros mismos y a los demás. En ella las personas se rinden cuentas entre sí. Podemos confiar en los miembros de la comunidad y sentir que la confianza es recíproca. Las buenas comunidades existen sin competencia ni ego, donde los miembros pueden expresarse abiertamente y aceptar a los demás tal como son.

Encontrar una buena comunidad

Hay un montón de buenas comunidades ahí fuera que están dispuestas a ayudarte a ser un mejor programador, pero ¿cómo encontrarlas?

Esa es una pregunta complicada.

La mayoría de lenguajes de programación tienen algún tipo de comunidad que se ha formado entorno a ellos. Algunas usan las listas de correo u otros canales de comunicación a los que te puedes unir y en los que participar. Desafortunadamente, los lenguajes de programación más populares tienen espacios que son complicados de seguir, especialmente cuando estás tratando de aprender. Lo sé porque me uní al canal principal de comunicación de un lenguaje de programación muy popular y me sentí abrumado por las múltiples conversaciones que se llevaban a cabo a la vez. Las listas de correo diseñadas para ayudar a los principiantes pueden tener una gran cantidad de tráfico de correos y ese tráfico puede ser abrumador si estás tratando de entender los aspectos básicos del lenguaje de programación mientras tratas de estar al día con la avalancha de correos que llegan a tu bandeja de entrada. Leer los correos antiguos en los archivos de las listas de correo o en un chat puede ayudarte a determinar si estás preparado para ese nivel de tráfico y si las conversaciones en la lista son el tipo de conversaciones que te gustan. Recuerda: esto es para ayudarte en el viaje. Lanzarte a una habitación abarrotada, en la que te veas inundado por una gran cantidad de conversaciones y ruido solo hará que te sientas más aislado y sentir que no eres bienvenido.

Algunos lenguajes de programación tienen grupos de usuarios locales. Estos al principio pueden parecen intimidantes, especialmente si el grupo ya tiene un largo recorrido. Lo sé, porque me sentí intimidado antes de asistir a mi primer grupo local de usuarios, por miedo a lo que podría encontrarme allí. Lo que encontré fue un grupo de personas que estaban interesadas en los temas en los que también yo estaba interesado. He hecho amistades duraderas en esos grupos locales de usuarios y te animo a comprobar si también a ti te funciona.

Si no sabes cómo encontrar el grupo adecuado (quizás te encuentres en un área en la que sientes que eres la única persona que comparte tus intereses), podrías considerar iniciar tu propio grupo o formar uno nuevo a partir de un grupo ya existente. Mi amigo Rick y yo abrimos un grupo local llamado Coffee House Coders donde los programadores se reúnen una vez a la semana durante unas horas para sentarse y programar. Todo lo que hicimos fue publicar las horas y los lugares en los que nos íbamos a reunir y les dijimos a las personas que simplemente se presentaran con su portátil para escribir código. Por el camino hemos conocido a algunas personas increíbles y hemos mantenido al grupo en marcha durante muchos años. Empezar un grupo es un acto de valentía. Ha habido muchas noches en las que me he sentado solo en una cafetería esperando a ver si aparecían otras personas. Está bien. La gente está ocupada y los intereses se desvanecen y cambian con el tiempo. Lo importante es crear el espacio para que nosotros y los demás nos sintamos bienvenidos. Para nosotros, eso significaba encontrar una cafetería local que estuviera abierta hasta altas horas de la noche y tuviera un amplio espacio para colocar nuestros portátiles. También ayuda encontrar un lugar en el que haya suficientes tomas de corriente para conectarse a la energía eléctrica, para que la gente pueda cargar las baterías de sus equipos si es necesario.

Hay muchas maneras de ser creativo a la hora de comenzar una comunidad. La llegada de las herramientas en la red permite que puedas construir comunidades con personas de todo el mundo. El acercar esas personas y reunirlas para hablar y discutir ideas y ofrecer ayuda es genial cuando ocurre. A veces, puede ser tan simple como crear una sala de chat sobre intereses comunes. Explora lo que existe ahí fuera y si lo que hay no satisface tus necesidades no dudes en crear una tu mismo.

La dificultad de encontrar una buena comunidad

Reconozco que cualquiera no puede unirse a una comunidad o crear una propia. Los espacios existentes en la red tienen la reputación de no ser lugares acogedores para las personas que llegan y los encuentros en persona pueden agotar tus recursos mentales. Me llevó tiempo encontrar el valor necesario para asistir a mi primer encuentro en persona y tuve una mala experiencia con alguien con el que trabajaba y que pensé que estaría en aquel encuentro. (No estoy seguro si esa persona alguna vez asistió a alguno de aquellos encuentros). Pero estoy muy agradecido de haber asistido a aquellos primeros encuentros. Asistir a esos eventos me trajo amistades, oportunidades y otros "compañeros de viaje" para mi propio viaje. Hizo que cambiara a uno de mis lenguajes de programación favoritos (Python) y me llevó a varios trabajos. También me ayudó a sentir que no estaba solo con mis intereses y me presentó a otras personas en las que podía confiar. Me dio un sentimiento de pertenencia.

Superar el obstáculo inicial es difícil. Nuestro miedo al rechazo y nuestro miedo a hacernos vulnerables a los extraños puede desgastarnos. Superar ese miedo requiere mucha energía mental y puede quitarnos el deseo de ser parte de otra comunidad más. No puedo decir que será fácil, pero puedo señalar algunos de los beneficios que tuvo en mi vida. Espero que tu puedas encontrar también esos beneficios.

Una alternativa a las comunidades en persona son las comunidades en la red. Las comunidades en la red pueden ser una excelente manera de encontrar a otras personas. Reúnen a personas de diferentes países y las reúnen en un área común. Una parte de las razones que hicieron que cambiara a encuentros en persona fue por las buenas experiencias que tuve con estas personas en salas IRC (Internet Relay Chat). Disfruté de la compañía de estas personas a través de interacciones por la red y me sentí cómodo cuando las encontré en persona.

Los bajos requisitos de entrada para muchas comunidades en línea, puede permitirnos ver de qué temas se trata en la comunidad. ¿Cuáles son sus prioridades? ¿Son amables con las personas que están comenzando? ¿Tienen un patrón de conducta de ayuda a personas como nosotros o tienden a ofenderlas? ¿Tienen miembros que nutren a sus compañeros o se están interrumpiendo unos a otros?

Desconozco si hay una estrategia óptima para determinar si una comunidad es útil o dañina. Requiere esfuerzo seguir una comunidad y formarse una idea de quiénes son. Desgasta emocionalmente el ponernos en situaciones donde somos vulnerables, para comprobar si otras personas son respetuosas con nosotros. Las comunidades están formadas por personas y las personas somos criaturas inconstantes e irracionales. Lo que puede ser una gran comunidad para una persona puede ser un entorno tóxico para otra. Aunque no tengo una estrategia, tengo algunas ideas de los elementos clave que forman una comunidad.

Cosas que buscar en una buena comunidad

Hay una serie de características que yo buscaría en una comunidad. Aunque esta no es una lista definitiva de todas las cosas que hacen una buena comunidad, ofrece un listado de las pautas que creo que son importantes:

  • Código de conducta: Las buenas comunidades tienen pautas para las cosas que la comunidad aceptará, tolerará o impedirá. Debe ser visible para todos los miembros de la comunidad, y cada miembro de la comunidad debe ser responsable de esas pautas. También se deben hacer cumplir. Si observas situaciones en las que el código de conducta se aplica de manera colectiva contra ciertos miembros, debes tener cuidado de permanecer dentro de esa comunidad.
  • Moderadores: Se necesita que haya una persona (o un grupo de personas) en la comunidad que pueda calmar las situaciones de conflicto y aplicar castigos significativos cuando las personas se extralimiten. Los moderadores deberían ser imparciales y consecuentes con sus decisiones. Deberían demostrar que también siguen el mismo código de conducta con el ejemplo de sus acciones en la comunidad. Un buen moderador debería estar siempre disponible, pero no ser autoritario. Deberías sentirte cómodo con la presencia de un moderador y sentirte libre de preguntar a los moderadores si tienes alguna duda sobre la comunidad.
  • Espacios para preguntas y pautas para realizar buenas preguntas: Debería existir un lugar donde las personas puedan preguntar cuestiones relacionadas con la comunidad. Las personas deberían sentirse seguras al preguntar sobre el tema y la comunidad necesita ser clara sobre lo que considera una pregunta apropiada e idónea. ¿Es el sitio adecuado para preguntas de recién llegados? Si no lo es, ¿se podría crear un sitio así? ¿Qué clases de preguntas estaría la comunidad feliz de responder y qué tipos de preguntas molestarían a la comunidad? Esto necesita estar claramente definido para que las personas recién llegadas puedan hacerse una idea de qué será bienvenido por la comunidad y qué no tolerará.
  • Disfrutar: ¿Disfrutan las personas que forman la comunidad al discutir las cosas? ¿Cual es el tono de las conversaciones? ¿Interactúan las personas de una manera positiva con otras o recurren a los insultos y las faltas de respeto? ¿Se celebran las nuevas preguntas planteadas o son rechazadas e ignoradas? Si no se disfruta al ser parte de la comunidad, entonces se reducirá el número de personas que se queden en ella.
  • Compasión y empatía: ¿Permite la comunidad que la gente cometa errores? Cuando algo sale mal, ¿la comunidad trata de ayudar? ¿La comunidad recuerda cómo era ser principiante y actúa con compasión, o espera que todos tengan más experiencia antes de participar?
  • Amabilidad: Este es el factor más importante, ¿la comunidad se comporta de una manera amable con los demás o se divide en facciones y tratan de reducirse entre sí? ¿Ven a la gente nueva como amigos o como extraños que deben probarse a sí mismos? Esto se relaciona con la compasión y la empatía anteriores, pero tendemos a ver actos de bondad antes de ver la compasión y la empatía. La amabilidad se manifiesta cuando los miembros de la comunidad comprenden que las personas no sepan todo de inmediato y actúan con amabilidad en lugar de adoptar un enfoque severo. Les hacen saber a las personas que ellos también han tenido problemas y sugieren formas de trabajar juntos para suavizar las cosas para las próximas personas que puedan experimentar el mismo problema. Actúan de una manera que no antepone su ego y, en cambio, se comportan como si les hubieran dado un regalo que es mejor compartir con los demás.

Hablaremos más sobre la amabilidad en próximos capítulos.

Estos son solo unos ejemplos de lo que he encontrado en buenas comunidades. No dudes en añadir más a esta lista cuando tu propia experiencia vaya creciendo y házmelo saber, así podré actualizar esta lista para futuros lectores.