3382 lines
216 KiB
HTML
3382 lines
216 KiB
HTML
|
<!DOCTYPE html>
|
||
|
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
|
||
|
<head>
|
||
|
<meta charset="utf-8" />
|
||
|
<meta name="generator" content="pandoc" />
|
||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
|
||
|
<meta name="author" content="Craig Maloney" />
|
||
|
<title>El programador mediocre</title>
|
||
|
<style>
|
||
|
code{white-space: pre-wrap;}
|
||
|
span.smallcaps{font-variant: small-caps;}
|
||
|
div.columns{display: flex; gap: min(4vw, 1.5em);}
|
||
|
div.column{flex: auto; overflow-x: auto;}
|
||
|
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
|
||
|
ul.task-list{list-style: none;}
|
||
|
ul.task-list li input[type="checkbox"] {
|
||
|
width: 0.8em;
|
||
|
margin: 0 0.8em 0.2em -1.6em;
|
||
|
vertical-align: middle;
|
||
|
}
|
||
|
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
|
||
|
</style>
|
||
|
<link rel="stylesheet" href="css/el_programador_mediocre.css" />
|
||
|
<!--[if lt IE 9]>
|
||
|
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
|
||
|
<![endif]-->
|
||
|
</head>
|
||
|
<body>
|
||
|
<header id="title-block-header">
|
||
|
<h1 class="title">El programador mediocre</h1>
|
||
|
<p class="author">Craig Maloney</p>
|
||
|
</header>
|
||
|
<nav id="TOC" role="doc-toc">
|
||
|
<ul>
|
||
|
<li><a href="#introducción" id="toc-introducción">Introducción</a>
|
||
|
<ul>
|
||
|
<li><a href="#el-programador-mediocre"
|
||
|
id="toc-el-programador-mediocre"><span
|
||
|
class="toc-section-number">0.1</span> ¿El programador mediocre?</a></li>
|
||
|
<li><a href="#por-qué-este-libro" id="toc-por-qué-este-libro"><span
|
||
|
class="toc-section-number">0.2</span> ¿Por qué este libro?</a></li>
|
||
|
<li><a href="#descargo-de-responsabilidades"
|
||
|
id="toc-descargo-de-responsabilidades"><span
|
||
|
class="toc-section-number">0.3</span> Descargo de
|
||
|
responsabilidades</a></li>
|
||
|
<li><a href="#de-esta-traducción" id="toc-de-esta-traducción"><span
|
||
|
class="toc-section-number">0.4</span> De esta traducción</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#el-viaje-del-programador-mediocre"
|
||
|
id="toc-el-viaje-del-programador-mediocre"><span
|
||
|
class="toc-section-number">1</span> El viaje del programador
|
||
|
mediocre</a>
|
||
|
<ul>
|
||
|
<li><a href="#cómo-hemos-llegado-aquí"
|
||
|
id="toc-cómo-hemos-llegado-aquí"><span
|
||
|
class="toc-section-number">1.1</span> Cómo hemos llegado aquí</a></li>
|
||
|
<li><a href="#la-brecha" id="toc-la-brecha"><span
|
||
|
class="toc-section-number">1.2</span> La brecha</a></li>
|
||
|
<li><a href="#cerrando-la-brecha" id="toc-cerrando-la-brecha"><span
|
||
|
class="toc-section-number">1.3</span> Cerrando la brecha</a></li>
|
||
|
<li><a href="#el-viaje-es-la-recompensa"
|
||
|
id="toc-el-viaje-es-la-recompensa"><span
|
||
|
class="toc-section-number">1.4</span> El viaje es la recompensa</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#compañeros-de-viaje" id="toc-compañeros-de-viaje"><span
|
||
|
class="toc-section-number">2</span> Compañeros de viaje</a>
|
||
|
<ul>
|
||
|
<li><a href="#programadores-famosos"
|
||
|
id="toc-programadores-famosos"><span
|
||
|
class="toc-section-number">2.1</span> Programadores famosos</a></li>
|
||
|
<li><a href="#entre-bastidores-frente-a-la-actuación-final"
|
||
|
id="toc-entre-bastidores-frente-a-la-actuación-final"><span
|
||
|
class="toc-section-number">2.2</span> Entre bastidores frente a la
|
||
|
actuación final</a></li>
|
||
|
<li><a href="#el-atractivo-del-post-mortem"
|
||
|
id="toc-el-atractivo-del-post-mortem"><span
|
||
|
class="toc-section-number">2.3</span> El atractivo del
|
||
|
<em>post-mortem</em></a></li>
|
||
|
<li><a href="#clasificación-de-programadores"
|
||
|
id="toc-clasificación-de-programadores"><span
|
||
|
class="toc-section-number">2.4</span> Clasificación de
|
||
|
programadores</a></li>
|
||
|
<li><a href="#midiendo-el-rendimiento-del-programador"
|
||
|
id="toc-midiendo-el-rendimiento-del-programador"><span
|
||
|
class="toc-section-number">2.5</span> Midiendo el rendimiento del
|
||
|
programador</a></li>
|
||
|
<li><a href="#compañeros-de-viaje-1"
|
||
|
id="toc-compañeros-de-viaje-1"><span
|
||
|
class="toc-section-number">2.6</span> Compañeros de viaje</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#los-errores-a-lo-largo-del-camino"
|
||
|
id="toc-los-errores-a-lo-largo-del-camino"><span
|
||
|
class="toc-section-number">3</span> Los errores a lo largo del
|
||
|
camino</a>
|
||
|
<ul>
|
||
|
<li><a href="#vaya" id="toc-vaya"><span
|
||
|
class="toc-section-number">3.1</span> ¡Vaya!</a></li>
|
||
|
<li><a href="#evitar-los-errores" id="toc-evitar-los-errores"><span
|
||
|
class="toc-section-number">3.2</span> Evitar los errores</a></li>
|
||
|
<li><a href="#hacer-un-modelo" id="toc-hacer-un-modelo"><span
|
||
|
class="toc-section-number">3.3</span> Hacer un modelo</a></li>
|
||
|
<li><a href="#máquinas-del-tiempo" id="toc-máquinas-del-tiempo"><span
|
||
|
class="toc-section-number">3.4</span> Máquinas del tiempo</a></li>
|
||
|
<li><a href="#aprender-de-los-errores"
|
||
|
id="toc-aprender-de-los-errores"><span
|
||
|
class="toc-section-number">3.5</span> Aprender de los errores</a></li>
|
||
|
<li><a href="#llevar-un-registro-de-nuestros-errores"
|
||
|
id="toc-llevar-un-registro-de-nuestros-errores"><span
|
||
|
class="toc-section-number">3.6</span> Llevar un registro de nuestros
|
||
|
errores</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#las-posadas-en-las-que-nos-hospedamos"
|
||
|
id="toc-las-posadas-en-las-que-nos-hospedamos"><span
|
||
|
class="toc-section-number">4</span> Las posadas en las que nos
|
||
|
hospedamos</a>
|
||
|
<ul>
|
||
|
<li><a href="#compañeros-de-viaje-2"
|
||
|
id="toc-compañeros-de-viaje-2"><span
|
||
|
class="toc-section-number">4.1</span> Compañeros de viaje</a></li>
|
||
|
<li><a href="#encontrar-una-buena-comunidad"
|
||
|
id="toc-encontrar-una-buena-comunidad"><span
|
||
|
class="toc-section-number">4.2</span> Encontrar una buena
|
||
|
comunidad</a></li>
|
||
|
<li><a href="#la-dificultad-de-encontrar-una-buena-comunidad"
|
||
|
id="toc-la-dificultad-de-encontrar-una-buena-comunidad"><span
|
||
|
class="toc-section-number">4.3</span> La dificultad de encontrar una
|
||
|
buena comunidad</a></li>
|
||
|
<li><a href="#cosas-que-buscar-en-una-buena-comunidad"
|
||
|
id="toc-cosas-que-buscar-en-una-buena-comunidad"><span
|
||
|
class="toc-section-number">4.4</span> Cosas que buscar en una buena
|
||
|
comunidad</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#un-día-de-viaje" id="toc-un-día-de-viaje"><span
|
||
|
class="toc-section-number">5</span> Un día de viaje</a>
|
||
|
<ul>
|
||
|
<li><a href="#cabalgando-hasta-el-amanecer"
|
||
|
id="toc-cabalgando-hasta-el-amanecer"><span
|
||
|
class="toc-section-number">5.1</span> Cabalgando hasta el
|
||
|
amanecer</a></li>
|
||
|
<li><a href="#luces-fuera" id="toc-luces-fuera"><span
|
||
|
class="toc-section-number">5.2</span> Luces fuera</a></li>
|
||
|
<li><a href="#hacer-un-descanso" id="toc-hacer-un-descanso"><span
|
||
|
class="toc-section-number">5.3</span> Hacer un descanso</a></li>
|
||
|
<li><a href="#pensamiento-productivo"
|
||
|
id="toc-pensamiento-productivo"><span
|
||
|
class="toc-section-number">5.4</span> Pensamiento productivo</a></li>
|
||
|
<li><a href="#contenedores" id="toc-contenedores"><span
|
||
|
class="toc-section-number">5.5</span> Contenedores</a></li>
|
||
|
<li><a href="#distracciones" id="toc-distracciones"><span
|
||
|
class="toc-section-number">5.6</span> Distracciones</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#el-mapa-no-es-el-territorio"
|
||
|
id="toc-el-mapa-no-es-el-territorio"><span
|
||
|
class="toc-section-number">6</span> El mapa no es el territorio</a>
|
||
|
<ul>
|
||
|
<li><a href="#el-panorama-cambiante-de-la-programación"
|
||
|
id="toc-el-panorama-cambiante-de-la-programación"><span
|
||
|
class="toc-section-number">6.1</span> El panorama cambiante de la
|
||
|
programación</a></li>
|
||
|
<li><a href="#aprender-a-aprender" id="toc-aprender-a-aprender"><span
|
||
|
class="toc-section-number">6.2</span> Aprender a aprender</a></li>
|
||
|
<li><a href="#cómo-escoger-qué-aprender"
|
||
|
id="toc-cómo-escoger-qué-aprender"><span
|
||
|
class="toc-section-number">6.3</span> Cómo escoger qué aprender</a></li>
|
||
|
<li><a href="#resistencia-y-el-contenedor"
|
||
|
id="toc-resistencia-y-el-contenedor"><span
|
||
|
class="toc-section-number">6.4</span> Resistencia y el
|
||
|
contenedor</a></li>
|
||
|
<li><a href="#trazado-de-objetivos-a-largo-plazo"
|
||
|
id="toc-trazado-de-objetivos-a-largo-plazo"><span
|
||
|
class="toc-section-number">6.5</span> Trazado de objetivos a largo
|
||
|
plazo</a></li>
|
||
|
<li><a href="#fracaso-y-aprendizaje"
|
||
|
id="toc-fracaso-y-aprendizaje"><span
|
||
|
class="toc-section-number">6.6</span> Fracaso y aprendizaje</a></li>
|
||
|
<li><a href="#callejones-sin-salida-y-topografía-cambiante"
|
||
|
id="toc-callejones-sin-salida-y-topografía-cambiante"><span
|
||
|
class="toc-section-number">6.7</span> Callejones sin salida y topografía
|
||
|
cambiante</a></li>
|
||
|
<li><a href="#acércate-con-curiosidad"
|
||
|
id="toc-acércate-con-curiosidad"><span
|
||
|
class="toc-section-number">6.8</span> Acércate con curiosidad</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#la-lucha-interna" id="toc-la-lucha-interna"><span
|
||
|
class="toc-section-number">7</span> La lucha interna</a>
|
||
|
<ul>
|
||
|
<li><a href="#las-emociones-de-la-programación"
|
||
|
id="toc-las-emociones-de-la-programación"><span
|
||
|
class="toc-section-number">7.1</span> Las emociones de la
|
||
|
programación</a></li>
|
||
|
<li><a href="#desgastes-emocionales"
|
||
|
id="toc-desgastes-emocionales"><span
|
||
|
class="toc-section-number">7.2</span> Desgastes emocionales</a></li>
|
||
|
<li><a href="#ser-conscientes-de-nuestro-estado-emocional"
|
||
|
id="toc-ser-conscientes-de-nuestro-estado-emocional"><span
|
||
|
class="toc-section-number">7.3</span> Ser conscientes de nuestro estado
|
||
|
emocional</a></li>
|
||
|
<li><a href="#nuestra-historia" id="toc-nuestra-historia"><span
|
||
|
class="toc-section-number">7.4</span> Nuestra historia</a></li>
|
||
|
<li><a href="#la-conciencia-en-acción"
|
||
|
id="toc-la-conciencia-en-acción"><span
|
||
|
class="toc-section-number">7.5</span> La conciencia en acción</a></li>
|
||
|
<li><a href="#hallar-nuestros-sentimientos"
|
||
|
id="toc-hallar-nuestros-sentimientos"><span
|
||
|
class="toc-section-number">7.6</span> Hallar nuestros
|
||
|
sentimientos</a></li>
|
||
|
<li><a href="#separación-y-selección-emocional"
|
||
|
id="toc-separación-y-selección-emocional"><span
|
||
|
class="toc-section-number">7.7</span> Separación y selección
|
||
|
emocional</a></li>
|
||
|
<li><a href="#agotamiento" id="toc-agotamiento"><span
|
||
|
class="toc-section-number">7.8</span> Agotamiento</a></li>
|
||
|
<li><a href="#buscar-ayuda" id="toc-buscar-ayuda"><span
|
||
|
class="toc-section-number">7.9</span> Buscar ayuda</a></li>
|
||
|
<li><a href="#renunciar" id="toc-renunciar"><span
|
||
|
class="toc-section-number">7.10</span> Renunciar</a></li>
|
||
|
</ul></li>
|
||
|
<li><a href="#epílogo" id="toc-epílogo"><span
|
||
|
class="toc-section-number">8</span> Epílogo</a></li>
|
||
|
<li><a href="#agradecimientos" id="toc-agradecimientos"><span
|
||
|
class="toc-section-number">9</span> Agradecimientos</a></li>
|
||
|
<li><a href="#mi-viaje" id="toc-mi-viaje"><span
|
||
|
class="toc-section-number">10</span> Mi viaje</a></li>
|
||
|
</ul>
|
||
|
</nav>
|
||
|
<h1 class="unnumbered" id="introducción">Introducción</h1>
|
||
|
<h2 data-number="0.1" id="el-programador-mediocre"><span
|
||
|
class="header-section-number">0.1</span> ¿El programador mediocre?</h2>
|
||
|
<p>Afrontémoslo: no queremos ser programadores mediocres. ¡Queremos ser
|
||
|
programadores <code>[geniales,increíbles,superlativos]</code>! Queremos
|
||
|
ser los programadores a los que llaman cada vez que están en un aprieto,
|
||
|
y queremos ser los programadores que se sumergen en bases de código
|
||
|
desconocidas y producen código perfecto en cuestión de minutos. Código
|
||
|
que estaría en el Louvre como una obra de arte, estudiado por
|
||
|
generaciones de programadores por su belleza intrínseca y funcionalidad
|
||
|
excepcional.</p>
|
||
|
<p>¿Por qué íbamos a querer ser programadores mediocres? ¿No es mediocre
|
||
|
lo opuesto a genial? ¿No deberíamos esforzarnos por ser grandes
|
||
|
programadores?</p>
|
||
|
<p>Por supuesto, deberíamos esforzarnos por ser grandes programadores a
|
||
|
largo plazo, pero para llegar a ser grandes programadores primero
|
||
|
debemos pasar por la etapa de ser programadores mediocres.</p>
|
||
|
<p>Los programadores mediocres saben que no son (todavía) grandes
|
||
|
programadores. Los programadores mediocres ven la distancia entre donde
|
||
|
se encuentran actualmente y la grandeza que quieren en sus trabajos de
|
||
|
programador. Son conscientes del trabajo que implica ser un gran
|
||
|
programador y creen que si hacen el trabajo también llegarán a ser
|
||
|
grandes programadores.</p>
|
||
|
<p>Pero también ven sus propias faltas y carencias. Ven el historial de
|
||
|
su navegador lleno de búsquedas en internet de sintaxis y conceptos
|
||
|
básicos. Ven sus archivos de correo electrónico de preguntas que han
|
||
|
hecho a otros programadores. Se estremecen ante su código de hace varios
|
||
|
meses y se preguntan si alguna vez llegarán a ser grandes programadores
|
||
|
con todos estos errores y traspiés. Ven la brecha entre ellos y los
|
||
|
grandes programadores, y se siente como si la brecha se ensanchara a
|
||
|
cada paso del camino.</p>
|
||
|
<p>Los programadores mediocres se preguntan si vale la pena. Se
|
||
|
preguntan si deberían hacer algo más con sus vidas además de programar
|
||
|
computadoras. Tal vez no sean tan buenos como creían, o tal vez les
|
||
|
falte ese talento especial que tienen los grandes programadores. Tal vez
|
||
|
sientan que aprendieron cosas equivocadas al principio de sus viajes, o
|
||
|
tal vez piensen que deberían haber comenzado antes.</p>
|
||
|
<p>Ven que otras personas que tienen un gran éxito como programadores y
|
||
|
se preguntan si estuvieron ausentes el día en que se entregaron los
|
||
|
grandes genes programadores.</p>
|
||
|
<p>La verdad es que todos somos programadores mediocres de alguna forma.
|
||
|
Seguimos realizando preguntas y teniendo que echar un vistazo a sintaxis
|
||
|
y conceptos en nuestro día a día cuando programamos. Las computadoras
|
||
|
continúan evolucionando y los programadores continúan añadiendo
|
||
|
complejidad cada día a las tareas de programación. Conlleva mucho ancho
|
||
|
de banda mental mantener todos esos conceptos frescos en nuestra
|
||
|
mente.</p>
|
||
|
<h2 data-number="0.2" id="por-qué-este-libro"><span
|
||
|
class="header-section-number">0.2</span> ¿Por qué este libro?</h2>
|
||
|
<p>Este libro trata de ayudarte en tu viaje como programador mediocre.
|
||
|
Juntos descubriremos algunos conceptos erróneos comunes que tenemos
|
||
|
sobre la programación, el fracaso y el crecimiento. Entenderemos que el
|
||
|
acto de programar y desarrollar es algo que hacemos todos los días.
|
||
|
Todos los días podemos mejorar en pequeñas cosas. Son estos pequeños
|
||
|
cambios los que nos transforman de programadores mediocres en mejores
|
||
|
programadores.</p>
|
||
|
<p>Hay muchos libros sobre cómo convertirse en un mejor programador.
|
||
|
Tienden a tener listas de verificación y otros consejos que el autor
|
||
|
considera lo suficientemente importantes como para que los hagas a fin
|
||
|
de convertirte en un mejor programador. Suelen centrarse en mejoras
|
||
|
específicas, como por ejemplo elegir el mejor editor, escribir mejores
|
||
|
casos de prueba o beber mucha agua. Esos libros tienen muchos consejos
|
||
|
útiles, pero se leen como una lista de cosas que debes hacer todas a la
|
||
|
vez para tener éxito. Este libro intentará no cargarte con más trabajo
|
||
|
(probablemente ya tengas suficiente). Más bien, discutiremos lo que se
|
||
|
siente siendo un programador. Hablaremos de las emociones que aparecen
|
||
|
mientras programamos, los sentimientos de frustración, culpa, ira e
|
||
|
insuficiencia. Trataremos de las dificultades para aprender cosas nuevas
|
||
|
y mantener tus habilidades actualizadas. Hablaremos de esos momentos en
|
||
|
los que tienes ganas de darte por vencido y alejarte de la informática y
|
||
|
si esos sentimientos provienen de un lugar de amor o de una preocupación
|
||
|
por no está al día.</p>
|
||
|
<p>Este libro es un viaje personal para ambos. Es una memoria de mi
|
||
|
tiempo como programador y mis sentimientos a lo largo del camino. He
|
||
|
pensado muchas veces en rendirme y encontrar una carrera diferente, pero
|
||
|
hacer otra cosa que no sea programador de computadoras me asusta aún
|
||
|
más. ¿Significa eso que estoy atrapado en un uróboro (<em>N. del
|
||
|
traductor: un símbolo que muestra a un animal con forma de serpiente que
|
||
|
engulle su propia cola y que forma un círculo con su cuerpo. El uróboro
|
||
|
simboliza el ciclo eterno de las cosas</em>) perverso de autocompasión y
|
||
|
dudas? Difícilmente. Significa que necesito profundizar más para
|
||
|
comprender por qué elegí el camino de ser programador y darme cuenta de
|
||
|
que me costó mucho llegar aquí y que me llevará mucho más llegar a donde
|
||
|
quiero estar. Es un compromiso de ver las cosas como son ahora y seguir
|
||
|
adelante desde donde estoy parado.</p>
|
||
|
<h2 data-number="0.3" id="descargo-de-responsabilidades"><span
|
||
|
class="header-section-number">0.3</span> Descargo de
|
||
|
responsabilidades</h2>
|
||
|
<p>No soy doctor ni terapeuta. No tengo cualificación para darte un
|
||
|
consejo médico. Soy programador. Toda la información de este libro está
|
||
|
dada desde la perspectiva de un programador con dificultades y no debe
|
||
|
tomarse como un consejo médico. Si necesitas ayuda de un profesional
|
||
|
médico, por favor busca a una persona que pueda ayudarte. (Hay un
|
||
|
capítulo entero sobre buscar ayuda de otras personas casi al final de
|
||
|
este libro).</p>
|
||
|
<p>Comencemos nuestro viaje averiguando dónde estamos y recordando qué
|
||
|
nos llevó a este lugar.</p>
|
||
|
<h2 data-number="0.4" id="de-esta-traducción"><span
|
||
|
class="header-section-number">0.4</span> De esta traducción</h2>
|
||
|
<p>No recuerdo cómo conocí el texto de Craig Maloney, quizás dí con él
|
||
|
porque le sigo en Mastodon y desde ahí conocí su proyecto. Cuando lo
|
||
|
conocí, antes de leerlo, quizás pensé que sería un montón de recursos y
|
||
|
consejos técnicos para las nuevas personas que llegaran a esto de la
|
||
|
programación, pero me resultó curioso el título.</p>
|
||
|
<p>Después de leerlo, me dí cuenta que no. Que no se hablaba de nada
|
||
|
técnico sobre programación, que lo que aquí se cuenta tiene que ver más
|
||
|
con el aspecto psicológico y mental en lo referente a la programación
|
||
|
que con aspectos técnicos.</p>
|
||
|
<p>Yo, sin ser programador, encontré en el libro algunos consejos y
|
||
|
trucos interesantes para aplicar en mi día a día en algunos aspectos de
|
||
|
mi faceta digital (mi blog, traducciones, colaboraciones, etc).</p>
|
||
|
<p>Y como siempre, de ese interés personal nació esta traducción que hoy
|
||
|
tienes delante, después de pedir el correspondiente permiso al autor
|
||
|
original. Me gustó lo que se contaba y la traducción “me obligaba” a
|
||
|
tener que leer el texto y comprenderlo para realizarla y poder
|
||
|
compartirla con todo el mundo.</p>
|
||
|
<p>Si tu trabajo tiene que ver de alguna manera con la programación y en
|
||
|
algún momento te has sentido una persona perdida, frustrada o fuera de
|
||
|
lugar, este texto te ayudará a saber que es algo común y el autor
|
||
|
compartirá contigo sus visiones de su propio viaje en el mundo de la
|
||
|
programación y cómo consiguió ir pasando etapas en ese viaje. Tu tendrás
|
||
|
tu propio camino en el viaje de la programación, pero tomar como
|
||
|
referencia lo que otras personas han sentido quizás te sirva como ayuda
|
||
|
en los momentos bajos del camino, espero que sea así.</p>
|
||
|
<p>Pero si no eres programador, también es un texto interesante, este es
|
||
|
un relato en el que el autor revela sus puntos flacos, y comparte
|
||
|
algunos de los recursos que le han ayudado a conseguir sus metas. Quizás
|
||
|
tu puedas aplicarlas a tu día a día en otras facetas, a mí me han
|
||
|
servido.</p>
|
||
|
<p>La traducción la he realizado en un repositorio git hospedado en <a
|
||
|
href="https://codeberg.org/victorhck/elprogramadormediocre">Codeberg</a>
|
||
|
donde tienes disponible todos los capítulos y el código original que
|
||
|
utiliza el autor para generar su página web.</p>
|
||
|
<p>Si este u otro contenido que creo te resulta interesante, siempre
|
||
|
puedes agradecérmelo mediante una donación en <a
|
||
|
href="https://es.liberapay.com/victorhck/">Liberapay</a>. Pero tanto si
|
||
|
donas como si no, todo el contenido que creo estará libre para que lo
|
||
|
disfrutes.</p>
|
||
|
<h1 data-number="1" id="el-viaje-del-programador-mediocre"><span
|
||
|
class="header-section-number">1</span> El viaje del programador
|
||
|
mediocre</h1>
|
||
|
<h2 data-number="1.1" id="cómo-hemos-llegado-aquí"><span
|
||
|
class="header-section-number">1.1</span> Cómo hemos llegado aquí</h2>
|
||
|
<p>Tienes tu propia historia única de cómo has llegado hasta aquí como
|
||
|
programador. Es posible que te hayas enterado de qué era eso de la
|
||
|
programación cuando eras un niño curioso que quería ver lo que un
|
||
|
ordenador podía hacer. O quizás es posible que hayas llegado como un
|
||
|
adulto que escuchó sobre estas cosas llamadas computadoras que puedes
|
||
|
programar. Sea cual sea tu caso, has tenido un viaje para llegar hasta
|
||
|
este punto y aprendiste una cierta cantidad de cosas para llegar hasta
|
||
|
aquí. Pasaste tu tiempo libre aprendiendo a escribir código, o tuviste
|
||
|
la suerte de poder trabajar en la programación como parte de tu trabajo.
|
||
|
Fuiste a la escuela para aprender más sobre programación o quizás
|
||
|
tomaste clases de extras. Compraste libros o leíste artículos en
|
||
|
Internet para aprender más sobre programación. Cualquiera que sea el
|
||
|
camino que hayas tomado, iniciaste tu viaje como programador.</p>
|
||
|
<p>Y ahora te sientes estancado.</p>
|
||
|
<p>Miras a tu alrededor y te preguntas si alguna vez sabrás todo lo que
|
||
|
deberías saber. Lees un artículo en un sitio y se despierta tu interés.
|
||
|
Un amigo en Internet menciona esta cosa genial que ha encontrado y
|
||
|
espera que aprendas más al respecto. Tu colega encontró algo que podría
|
||
|
resolver un problema que tiene en un proyecto y ahora tienes algo más
|
||
|
que aprender.</p>
|
||
|
<p>Casi todas las semanas surgen nuevos temas y tecnologías. Estas
|
||
|
“cosas” se van introduciendo en nuestras discusiones de programación y
|
||
|
en nuestro trabajo. Quizás encuentres estas cosas nuevas que aparecen en
|
||
|
anuncios de trabajo que requieren un mínimo de más de 3 años de
|
||
|
experiencia, y te preguntas cómo alguien podría tener ese nivel de
|
||
|
experiencia. Tal vez elegiste ignorar estas cosas durante un tiempo y
|
||
|
ahora se han convertido en un factor determinante en tu trabajo. Es como
|
||
|
si alguien cambiara un simple bit de estado 0 a 1 y ahora ya no eres
|
||
|
digno de ser llamado programador a menos que hubieras sido uno de los
|
||
|
primeros en adoptar estas cosas.</p>
|
||
|
<p>Cada una de estas experiencias te hace sentir como si estuvieras
|
||
|
incompleto sin aprender estas cosas nuevas. Nos muestran que no importa
|
||
|
cuál sea nuestra experiencia actual, todavía hay lagunas en nuestro
|
||
|
conocimiento que deben ser llenadas. Cuando miras hacia el horizonte,
|
||
|
puedes ver las brechas que surgen entre el lugar donde estás y el lugar
|
||
|
donde crees que deberías estar.</p>
|
||
|
<h2 data-number="1.2" id="la-brecha"><span
|
||
|
class="header-section-number">1.2</span> La brecha</h2>
|
||
|
<p>Elegí la palabra “brecha” (<em>Nota del traductor: en inglés usa la
|
||
|
palabra “gap” que tiene distintos significados como brecha o hueco</em>)
|
||
|
para describir la diferencia entre dónde estás ahora y dónde crees que
|
||
|
deberías estar por una buena razón. Una brecha es algo impuesto por
|
||
|
otros, ya sea por la fuerza o por negligencia. Si aparece un agujero en
|
||
|
la cerca de tu jardín, significa que la cerca es más débil para proteger
|
||
|
el jardín. Una brecha también puede ser algo que requiere nuestra
|
||
|
atención. En inglés la expresión “Mind the gap” es una frase acuñada a
|
||
|
finales de la década de 1960 por el metro de Londres para advertir a la
|
||
|
gente sobre el espacio que hay entre la plataforma y los vagones del
|
||
|
tren. Si las personas no tienen cuidado con ese espacio, podría generar
|
||
|
una situación insegura.</p>
|
||
|
<p>La brecha en este caso es la distancia entre nuestras habilidades
|
||
|
actuales y dónde pensamos que deberíamos estar. A veces las brechas son
|
||
|
auto impuestas debido a nuestros propios deseos de mejorar, pero la
|
||
|
mayoría de las veces las brechas son impuestas de manera externa.</p>
|
||
|
<p>Uno de los grandes creadores de brechas en nuestra profesión como
|
||
|
programadores es el cambio. Como programadores estamos siempre alerta
|
||
|
del ciclo de los cambios en la cultura de la programación. Estamos
|
||
|
constantemente enfrentándonos a los cambios que nos llegan: cambios de
|
||
|
tecnología, cambios de prioridades en el trabajo o incluso cambios en
|
||
|
nuestra estrategia para tratar de mantenernos al día con las demandas
|
||
|
que se nos piden.</p>
|
||
|
<p>El cambio también puede provenir de dentro de nuestra comunidad. En
|
||
|
nuestra comunidad de programadores y usuarios puede cambiar a nuevos
|
||
|
puestos de trabajo o nuevas tecnologías. Es posible que ya no obtengamos
|
||
|
el apoyo que necesitamos para hacer nuestro trabajo y que nos
|
||
|
enfrentemos a la posibilidad de que nosotros también necesitemos
|
||
|
actualizar nuestras habilidades o nos quedemos atrás en una comunidad
|
||
|
abandonada.</p>
|
||
|
<p>El cambio puede provocar estrés. Es común en el círculo de los
|
||
|
programadores porque las cosas cambian a menudo. Lo que funcionaba el
|
||
|
viernes por la tarde puede que ya no sirva el lunes por la mañana debido
|
||
|
a un cambio en una biblioteca que estábamos utilizando. Nuestro entorno
|
||
|
de desarrollo podría romperse debido a una actualización que no se
|
||
|
aplicó de la manera correcta. El código en producción podría necesitar
|
||
|
algunos parches de seguridad y esos parches significan que tenemos que
|
||
|
volver a hacer una gran parte de nuestro software porque si no ya no
|
||
|
funcionaría. Hay una gran variedad de maneras en las que estamos
|
||
|
inmersos en ese ciclo del cambio.</p>
|
||
|
<p>No todo el cambio es malo. El software que utilizamos podría tener
|
||
|
razones muy válidas para cambiar. Las nuevas funcionalidades que deben
|
||
|
ser añadidas requieren nuevas formas de pensar nuestro código. Las
|
||
|
correcciones a problemas de seguridad podrían significar que nuestros
|
||
|
sistemas ahora serán más resistentes frente a ataques externos, pero
|
||
|
requieren diferentes formas de utilizar ese sistema. Nuevas y mejores
|
||
|
optimizaciones pueden llevar a que nuestro código se ejecute de una
|
||
|
manera más rápida pero necesite algunos ajustes para que pueda
|
||
|
beneficiarse de esa velocidad. Refactorizar una API puede llevarnos a
|
||
|
interactuar con nuestros sistemas de una manera más limpia y concisa,
|
||
|
pero puede introducir cambios que no son compatibles con el código
|
||
|
actual.</p>
|
||
|
<p>El cambio puede ser positivo, pero el cambio requiere tiempo y
|
||
|
esfuerzo para adaptarse a él. La brecha solo se puede cerrar si tenemos
|
||
|
los recursos y el tiempo necesario para trabajar en ella. Si estamos
|
||
|
luchando con nuestra carga de trabajo actual y alguien cambia la forma
|
||
|
en que funciona algo, ahora tenemos que tener en cuenta nuestro tiempo
|
||
|
para adaptarnos a ese cambio. Si nuestro músculo de memoria mental sabía
|
||
|
cómo funcionaba algo y ahora se enfrenta a un cambio significativo,
|
||
|
requiere que volvamos a entrenar ese músculo de memoria mental para que
|
||
|
coincida con la forma en que funciona ahora. Y si ya sientes que no
|
||
|
comprendes los sistemas y entornos en los que estás trabajando, añadir
|
||
|
cambios adicionales pueden dejarte varado entre las brechas recién
|
||
|
formadas de tu conocimiento.</p>
|
||
|
<h2 data-number="1.3" id="cerrando-la-brecha"><span
|
||
|
class="header-section-number">1.3</span> Cerrando la brecha</h2>
|
||
|
<p>Me encantaría decirte que hay una manera de cerrar esa brecha,
|
||
|
decirte que has aprendido todo y que ya te puedes sentir a salvo porque
|
||
|
ya dominas la totalidad de la programación.</p>
|
||
|
<p>Desafortunadamente, yo no he encontrado una manera de cerrar las
|
||
|
brechas.</p>
|
||
|
<p>Puedes seguir aprendiendo todo lo que hay que saber sobre cualquier
|
||
|
tema sobre el que hayas escogido aprender. Puedes realizar todos los
|
||
|
cursos disponibles. Puedes asistir a todas las charlas y debates, leer
|
||
|
informes que traten del tema e incluso realizar tu propia investigación
|
||
|
y aún así te puedes seguir sintiendo como que no has cerrado
|
||
|
definitivamente esa brecha.</p>
|
||
|
<p>Así que, si no hay una manera de cerrar por completo la brecha ¿Qué
|
||
|
puedes hacer?</p>
|
||
|
<p>Tienes tres posibles opciones disponibles:</p>
|
||
|
<p>La primera opción es no intentarlo. Asumir que siempre habrá algo más
|
||
|
que aprender. ¿Por qué preocuparse? Es más sencillo auto convencerte de
|
||
|
que nunca serás capaz de cerrar esa brecha del conocimiento. La mejor
|
||
|
opción es, te dices a ti mismo, quedarte con lo que sabes y aguantar
|
||
|
todo el tiempo que puedas.</p>
|
||
|
<p>La segunda opción es intentar hacerlo todo a la vez. Te lees cada
|
||
|
libro, cada artículo de un blog, cada nuevo informe, vídeo, o lo que sea
|
||
|
para intentar aprender sobre el tema. A continuación, te das cuenta que
|
||
|
solo tienes una cantidad finita de tiempo para aprender sobre el tema y
|
||
|
que no puedes consultar todo ese material a la vez. Revisas tu progreso
|
||
|
y te desesperas porque tu aprendizaje no está progresando tan rápido
|
||
|
como te gustaría. Culpas a los materiales de aprendizaje por tu falta de
|
||
|
progreso y buscas algo más que te ayude a aprender mejor el tema. La
|
||
|
frustración se instala cuando te culpas a ti mismo por no haber
|
||
|
comenzado antes a cerrar esta brecha.</p>
|
||
|
<p>La tercera opción es el enfoque más mesurado. Empiezas poco a poco
|
||
|
con pequeñas tareas y avanzas hacia la meta. En lugar de ver la brecha
|
||
|
como algo que se deba cerrar, te das cuenta de que no puedes conocer la
|
||
|
totalidad de cualquier tema que estés aprendiendo. Disfrutas del
|
||
|
conocimiento que recibes en la búsqueda del aprendizaje del tema.
|
||
|
Mantienes un ritmo constante para aprender tanto como puedas. En lugar
|
||
|
de lamentarte por no haber comenzado antes, estás agradecido de haberlo
|
||
|
hecho.</p>
|
||
|
<p>De estas tres opciones, la primera y la tercera son en las que
|
||
|
encontrarás mayor satisfacción. La primera opción (no intentar) te
|
||
|
permite acomodarte con el conocimiento que tienes. Pero hay una
|
||
|
desventaja en simplemente permanecer en el lugar. Nuestra industria está
|
||
|
en constante cambio y la tecnología sigue avanzando. Lo que solía ser la
|
||
|
norma se convierte en algo ya obsoleto y lo que estaba a la vuelta de la
|
||
|
esquina se convierte en lo que está siendo demandado.</p>
|
||
|
<p>Una de las habilidades más útiles de un programador es la capacidad
|
||
|
de adaptarse a las nuevas tecnologías. A medida que cambia nuestro
|
||
|
entorno tecnológico, nuestra capacidad para adaptarnos a esos cambios
|
||
|
nos permite continuar como programadores. Máquinas más rápidas,
|
||
|
diferentes tecnologías, diferentes dispositivos, diferentes requisitos,
|
||
|
cada uno de estos nos trae desafíos emocionantes si los reconocemos.
|
||
|
Pero también consumen tiempo para aprender y crean brechas en nuestro
|
||
|
conocimiento. Confiar en nuestro conocimiento previo para llevarnos a
|
||
|
través de estos cambios no será suficiente. Tenemos el desafío de
|
||
|
adaptarnos al nuevo entorno.</p>
|
||
|
<p>La segunda opción (tratar de acapararlo todo y frustrarse) es el
|
||
|
camino menos óptimo. Tratar de aprender con todos los recursos
|
||
|
disponibles e incrustándolos en nuestros cerebros es un camino hacia la
|
||
|
frustración, la fatiga y el agotamiento. Muchos desarrolladores intentan
|
||
|
esto porque sienten la necesidad de adaptarse al nuevo entorno, pero es
|
||
|
difícil hacer muchos cambios radicales de una sola vez. Es como tratar
|
||
|
de desarrollar alas para volar porque llegas tarde a una cita: te
|
||
|
sentirás frustrado por su incapacidad para desarrollar alas y aun así
|
||
|
llegarás tarde a tu cita. La segunda opción también mide tu progreso en
|
||
|
función de cuánto más crees que debes avanzar. Descarta el progreso
|
||
|
hecho y crea un ciclo sin fin hacia una línea de meta en continuo
|
||
|
movimiento.</p>
|
||
|
<p>De las tres opciones, la tercera opción es la que tiene más sentido.
|
||
|
El tomar una decisión mesurada para cerrar las brechas de nuestro
|
||
|
conocimiento nos permite disfrutar más del proceso de aprendizaje. Al
|
||
|
conseguir pequeños pasos en nuestro viaje, esto nos concede pequeñas
|
||
|
victorias en el camino recorrido. En vez de esperar una gran
|
||
|
transformación nos permitimos cambios graduales para adaptarnos a
|
||
|
nuestro entorno.</p>
|
||
|
<p>Con este acercamiento mesurado y gradual también obtenemos la
|
||
|
sabiduría de que no tenemos que cerrar todas las brechas. Nos permitimos
|
||
|
seguir aprendiendo en las áreas que necesitamos y de forma gradual vamos
|
||
|
construyendo nuestras propias habilidades.</p>
|
||
|
<p>También nos podemos dar cuenta, que cerrar la brecha por completo es
|
||
|
una ilusión. Mientras seamos personas vivas siempre habrá brechas, ya
|
||
|
que surgen cosas nuevas cada día. Podemos escoger cómo de expertos
|
||
|
podemos ser en cualquier tema que hayamos escogido aprender. Incluso
|
||
|
podemos esforzarnos por aprender tanto como podamos, pero lo hacemos con
|
||
|
una sensación de alegría en el proceso de aprendizaje, no por una
|
||
|
necesidad perversa de tratar de recopilar la totalidad del conocimiento
|
||
|
informático en nuestras cabezas.</p>
|
||
|
<h2 data-number="1.4" id="el-viaje-es-la-recompensa"><span
|
||
|
class="header-section-number">1.4</span> El viaje es la recompensa</h2>
|
||
|
<p>El secreto para avanzar en nuestro viaje como programadores y
|
||
|
desarrolladores es darnos cuenta de que cada paso que damos en ese
|
||
|
camino es valioso y digno de nuestra atención. El hecho de que no
|
||
|
hayamos aprendido la última tecnología en quince días no significa que
|
||
|
debamos dejar de intentarlo. Tampoco aprender una tecnología solo para
|
||
|
ver cómo se ve eclipsada por otra cosa, significa que nuestro tiempo de
|
||
|
aprendizaje se haya desperdiciado. Cada desafío al que nos enfrentamos,
|
||
|
cada tecnología que aprendemos y cada hora que dedicamos a programar es
|
||
|
un paso más en nuestro viaje para convertirnos en mejores programadores.
|
||
|
Cada error y giro equivocado nos presenta oportunidades para aprender de
|
||
|
esos errores y crecer como programadores y desarrolladores. No existe un
|
||
|
camino perfecto para mejorar en esto. Incluso si lo hubiera, estoy
|
||
|
seguro de que podríamos señalar cualquier punto de nuestro pasado y
|
||
|
decir que fue menos que perfecto. No es posible trazar el camino
|
||
|
perfecto desde donde estamos hasta donde deseamos estar. Peor aún, es
|
||
|
una ilusión que nos impide avanzar en nuestra práctica diaria de
|
||
|
programación y desarrollo. Puede parecer trillado decir “el viaje es la
|
||
|
recompensa”, pero cada día que trabajamos como programadores y
|
||
|
desarrolladores estamos un día más cerca de cerrar esas brechas en
|
||
|
nuestro conocimiento y estar más contentos de ver cómo crecen nuestras
|
||
|
habilidades.</p>
|
||
|
<h1 data-number="2" id="compañeros-de-viaje"><span
|
||
|
class="header-section-number">2</span> Compañeros de viaje</h1>
|
||
|
<h2 data-number="2.1" id="programadores-famosos"><span
|
||
|
class="header-section-number">2.1</span> Programadores famosos</h2>
|
||
|
<p>A lo largo de la historia de la computación ha habido personas que
|
||
|
han demostrado increíbles capacidades a la hora de crear código. Residen
|
||
|
en el panteón de los grandes programadores informáticos: Ada Lovelace
|
||
|
(la primera programadora de computadoras), Dennis Ritchie (el creador
|
||
|
del lenguaje de programación C), Rear Admiral Grace Murray Hopper
|
||
|
(creadora de COBOL y acreditada por encontrar el primer “error”
|
||
|
informático documentado). (<em>N. del traductor: un error informático en
|
||
|
inglés es llamado “bug” que también se puede traducir como bicho o
|
||
|
insecto</em>) y muchos más. También tenemos desarrolladores en nuestras
|
||
|
propias comunidades, que tienen un cierto grado de notoriedad, ya sean
|
||
|
las personas que escribieron el lenguaje de programación que usamos
|
||
|
actualmente, las personas que mantienen el sistema operativo que usamos
|
||
|
o alguien que saltó a la fama en nuestra comunidad preferida. Puede ser
|
||
|
intimidante cuando nos comparamos con estas grandes personas. Después de
|
||
|
todo, cualquier cosa en la que estemos trabajando actualmente podría no
|
||
|
estar a la altura de lo que estas personas hayan hecho. Peor aún,
|
||
|
podemos estar trabajando en algo similar y sentir que cualquier cosa en
|
||
|
la que estemos trabajando nunca estará a la altura de lo que estas
|
||
|
personas han logrado. Incluso podemos ser amigos de programadores que
|
||
|
parecen resolver las cosas mucho más rápido y de una manera más elegante
|
||
|
que nosotros y maravillarnos de cómo parecen tener todo ese conocimiento
|
||
|
al alcance de la mano que posiblemente no podamos entender.</p>
|
||
|
<h2 data-number="2.2"
|
||
|
id="entre-bastidores-frente-a-la-actuación-final"><span
|
||
|
class="header-section-number">2.2</span> Entre bastidores frente a la
|
||
|
actuación final</h2>
|
||
|
<p>Uno de los mejores consejos que he recibido sobre compararnos con los
|
||
|
demás, es darnos cuenta de que la comparación es entre nuestra vida
|
||
|
entre bastidores <em>versus</em> la actuación final que ven los
|
||
|
espectadores. La metáfora se basa en el teatro, donde los artistas saben
|
||
|
todo lo que no está bien sobre la actuación de su propio grupo de teatro
|
||
|
y lo comparan injustamente con la actuación final de otro grupo de
|
||
|
teatro. Esta metáfora es útil en nuestro caso porque tendemos a comparar
|
||
|
todas las cosas que sabemos (las largas horas de crear código
|
||
|
improductivas, las dificultades para aprender, etc.) con el producto
|
||
|
final de otra persona. No vemos su lucha para hacer que las cosas
|
||
|
funcionen, o sus innumerables horas haciendo prototipos de mierda y
|
||
|
proyectos sin terminar antes de hacer lo que admiramos. Permítete tener
|
||
|
un lugar entre bastidores desordenado y hacer muchos ensayos, y
|
||
|
comprende que se necesita esfuerzo y práctica para realizar una buena
|
||
|
actuación.</p>
|
||
|
<h2 data-number="2.3" id="el-atractivo-del-post-mortem"><span
|
||
|
class="header-section-number">2.3</span> El atractivo del
|
||
|
<em>post-mortem</em></h2>
|
||
|
<p>Hay una tradición en algunos proyectos de programación (especialmente
|
||
|
en proyectos de desarrollo de juegos donde hay un final claro para el
|
||
|
proyecto cuando se envía el producto) de hacer una autopsia del
|
||
|
proyecto. Lo que hace la autopsia, es permitir que los desarrolladores
|
||
|
de un proyecto indiquen lo que salió bien y lo que no salió bien. Las
|
||
|
mejores autopsias tienden a ser relatos sinceros de los éxitos y
|
||
|
fracasos de un proyecto.</p>
|
||
|
<p>La autopsia puede ser una mirada fascinante al desarrollo de un
|
||
|
proyecto. Me he encontrado leyendo muchas de estas, en busca de
|
||
|
información sobre el proceso de desarrollo. Pero hay una trampa sutil en
|
||
|
la autopsia: son un recuerdo de eventos desde el punto de vista de un
|
||
|
proyecto exitoso (o fallido). Son un recuerdo de alguien que trabajó en
|
||
|
un proyecto que fue lo suficientemente exitoso, como para que tu
|
||
|
dediques tiempo a leer sobre los altibajos de ese proyecto. Están
|
||
|
escritos desde una perspectiva en la que el éxito del proyecto es una
|
||
|
conclusión inevitable (o están escritos sobre proyectos que se
|
||
|
destacaron por cómo fallaron o no cumplieron con las expectativas de los
|
||
|
involucrados). Puede llevar a la creencia de que en lo que estás
|
||
|
trabajando no es tan importante como las cosas en las que están
|
||
|
trabajando otras personas. Pero no sabemos la importancia de nuestro
|
||
|
proyecto en tiempo real. Incluso la gente en la autopsia no sabía si su
|
||
|
proyecto funcionaría o tendría éxito mientras trabajaban en él. Es
|
||
|
posible que nuestros proyectos nunca vean la luz del día o que sean algo
|
||
|
que cambie el mundo. No podemos saber el valor de aquello en lo que
|
||
|
estamos trabajando mientras lo hacemos (aunque podemos tener una idea de
|
||
|
si <em>sentimos</em> que nuestro trabajo es importante o no).</p>
|
||
|
<p>Una autopsia también tiene el beneficio de la retrospectiva. Las
|
||
|
decisiones que eran claras y definitivas en ese momento podrían no tener
|
||
|
mucho sentido cuando se las compara con los datos obtenidos más adelante
|
||
|
en la vida útil del proyecto. También hay un problema con la “memoria
|
||
|
selectiva” en la que es posible que algo no se recuerde con la misma
|
||
|
claridad o se combine con otros eventos. Declaraciones confiadas como
|
||
|
“Sabíamos que esto no habría funcionado” en realidad podrían haber sido
|
||
|
“No estábamos seguros de si esto funcionaría, así que probamos varias
|
||
|
cosas. Todas no funcionaron”. Debes considerar a cualquiera que escriba
|
||
|
sobre su pasado como un narrador poco confiable. Cierto, pueden ser los
|
||
|
mejores y más informados narradores que tenemos, pero no tienen una
|
||
|
perspectiva objetiva de lo que sea que estaban creando. Tienen sus
|
||
|
propios prejuicios y razones para las historias que presentan en una
|
||
|
autopsia. Debes tratar estas autopsias como tratarías una autobiografía
|
||
|
de una persona famosa: una fuente primaria con una agenda para mostrar
|
||
|
el tema de la mejor manera posible.</p>
|
||
|
<p>No hay nada de malo en leer una autopsia sobre un proyecto, podemos
|
||
|
aprender mucho sobre cómo se ejecuta un proyecto (o no se debe ejecutar)
|
||
|
y qué peligros debemos tener en cuenta si seguimos un camino similar,
|
||
|
pero hay que comprender que estás leyendo un informe (ya sea de una
|
||
|
persona o de un equipo de personas). Tienen la perspectiva de alguien
|
||
|
profundamente involucrado en el conflicto. Estás mirando sus recuerdos
|
||
|
de tácticas, no la estrategia general que los trajo al lugar.</p>
|
||
|
<h2 data-number="2.4" id="clasificación-de-programadores"><span
|
||
|
class="header-section-number">2.4</span> Clasificación de
|
||
|
programadores</h2>
|
||
|
<p>Hay muchas medidas que la gente usa para clasificar a los
|
||
|
programadores. Es probable que hayas visto que estas medidas se
|
||
|
manifiestan de diferentes maneras: sitios de competencia, números de
|
||
|
<em>commits</em> en un proyecto, medidas de productividad, tiempo para
|
||
|
entregar el código y los buenos sentimientos viscerales que podamos
|
||
|
sentir, como se hacía antiguamente. Nos lo hacemos a nosotros mismos y a
|
||
|
los demás. Comparamos nuestro trabajo con el trabajo de nuestros
|
||
|
compañeros y gente que admiramos, pero eso puede llevarnos a hacer
|
||
|
comparaciones que no son objetivas o no se basan en todos los datos.
|
||
|
Puedo compararme con personas que hacen programación de bajo nivel y
|
||
|
encontrar que no estoy a la altura en ese ámbito. No importa que no haya
|
||
|
hecho mucha programación de bajo nivel, la comparación es válida. O
|
||
|
puedo compararme con personas que fueron asesoradas por programadores
|
||
|
cuyos nombres son legendarios en su campo. Encontraré brechas entre mi
|
||
|
conocimiento y el de ellos, porque no tuve acceso a esos mentores (o
|
||
|
peor aún: no aproveché los mentores a los que podría haber accedido.
|
||
|
¡Ups!). Comparaciones como estas no ayudan y nos llevan a castigarnos
|
||
|
por no ser otra persona. Nuestra evaluación de nuestros proyectos e
|
||
|
historia nos da la conclusión de que no somos esa otra persona, ni
|
||
|
podríamos ser nunca esa otra persona.</p>
|
||
|
<p>El mayor problema con la clasificación de programadores (o en
|
||
|
cualquier caso, clasificación de cualquier cosa) es que los sistemas de
|
||
|
clasificación están basados en una serie de criterios. No hay un
|
||
|
estándar real para clasificar programadores. Los sitios donde se
|
||
|
clasifica y puntúa programadores en base a un número de problemas
|
||
|
resueltos o la dificultad de los problemas resueltos solo han
|
||
|
determinado que hay una serie de programadores que realmente disfrutan
|
||
|
resolviendo esa clase de problemas. También han reunido a un grupo de
|
||
|
programadores que dedicarán tiempo y esfuerzo a resolver estos problemas
|
||
|
y serán competitivos mientras los resuelven. Nos dice poco sobre las
|
||
|
habilidades del programador fuera de esa materia.</p>
|
||
|
<p>También hay otras medidas para clasificar a los programadores. Una
|
||
|
medida clásica es revisar cuántas líneas de código usó un programador
|
||
|
para resolver un problema (esto a veces se denomina “código de golf”,
|
||
|
donde cuanto menor sea el número de líneas de código, mejor será la
|
||
|
solución). Podemos argumentar acerca de cómo de “limpia” es la solución
|
||
|
(limpia es otro término algo nebuloso y poco concreto). Podemos
|
||
|
determinar la “notación Big O”, una notación utilizada para describir el
|
||
|
rendimiento o la complejidad de los algoritmos que utilizó un
|
||
|
programador en su código. Podemos hacer una prueba de <em>estrés</em> o
|
||
|
de esfuerzo del código para determinar lo bien que se adapta el código a
|
||
|
diversas circunstancias. Podemos contar la cantidad de ciclos que
|
||
|
requiere un código en particular para ejecutarse y compararlo con un
|
||
|
código similar. Muy poco de esto nos dice algo sobre un programador en
|
||
|
particular. Lo que sí nos dice es que el programador tiene experiencia
|
||
|
que lo lleva a esa solución en particular. Nos dice que el programador
|
||
|
ha visto este tipo de problemas antes y se preocupó lo suficiente por el
|
||
|
problema como para pensar lo suficiente sobre cómo hacer una mejor
|
||
|
solución. Aprendemos que el programador dedicó tiempo y energía a
|
||
|
practicar este tipo de problemas. Lo que no nos muestra, es una medida
|
||
|
general de las habilidades o capacidades del programador. Es similar al
|
||
|
cuento apócrifo de un profesor brillante. Este profesor era un genio
|
||
|
absoluto en su campo y era una de las personas a las que acudir para
|
||
|
obtener respuestas sobre su tema, pero a pesar de su brillantez, no
|
||
|
sabía cómo cambiar la rueda de un automóvil. ¿Significa eso que el
|
||
|
profesor no era tan brillante como la gente decía que era? Difícilmente.
|
||
|
Significa que el profesor pasó más tiempo pensando en su profesión que
|
||
|
pensando en cambiar ruedas de automóvil. Lo mismo es cierto también para
|
||
|
los programadores. Si un programador pasa la mayor parte de su tiempo
|
||
|
resolviendo un conjunto particular de problemas, eventualmente se
|
||
|
volverá experto en ese tipo de problemas. Pero si ese programador se
|
||
|
atasca con un tipo diferente de problemas, eso no descarta sus
|
||
|
habilidades generales, simplemente señala las áreas en las que podrían
|
||
|
querer trabajar.</p>
|
||
|
<h2 data-number="2.5" id="midiendo-el-rendimiento-del-programador"><span
|
||
|
class="header-section-number">2.5</span> Midiendo el rendimiento del
|
||
|
programador</h2>
|
||
|
<p>También hay una tendencia a medir la productividad del programador
|
||
|
mediante cuántas contribuciones puede hacer el programador a un
|
||
|
proyecto. Bajo ciertos sistemas de control de versiones, estos se
|
||
|
denominan <em>commits</em>. Enumeran un conjunto de cambios que el
|
||
|
programador desea realizar en el código. En una era en la que existen
|
||
|
sitios para escribir código de manera colaborativa y social como Github
|
||
|
o Gitlab, podemos revisar fácilmente los <em>commits</em> que están
|
||
|
realizando otros programadores. Dado que podemos medir la cantidad de
|
||
|
<em>commits</em>, podemos usar esta medida para sentir que no estamos
|
||
|
generando la misma cantidad y frecuencia de <em>commits</em> que otros
|
||
|
programadores. Y a diferencia de las medidas de antaño (líneas de código
|
||
|
en particular, que mide cuántas líneas de código añade un programador a
|
||
|
un programa), podemos revisar la calidad de sus <em>commits</em> con un
|
||
|
proyecto. Puede ser desalentador ver una gran cantidad de trabajo de
|
||
|
calidad realizado por nuestros compañeros. También puede ser fuente de
|
||
|
frustración y sentimientos de insuficiencia. Nos preguntamos “¿Por qué
|
||
|
no puedo ser tan productivo o contribuir como esta otra persona?”</p>
|
||
|
<p>Es incluso todavía más frustrante cuando otras personas utilizan
|
||
|
estas medidas para judgar la productividad y las contribuciones con
|
||
|
código. Podemos encontrarnos siendo criticados por nuestros resultados
|
||
|
(o la falta de estos).</p>
|
||
|
<p>Los <em>commits</em> y las líneas de código son las medidas más
|
||
|
visibles de la productividad al crear código, pero no muestran mucho
|
||
|
sobre la práctica real de la programación. No podemos medir la cantidad
|
||
|
de tiempo que dedicamos a pensar en el problema con solo mirar un
|
||
|
<em>commit</em>. No vemos las montañas de material de referencia que usó
|
||
|
el programador para encontrar una solución y ciertamente no sabemos si
|
||
|
este <em>commit</em> es el resultado de una tarde de trabajo o de muchos
|
||
|
días de trabajo (a menos que se hagan <em>commits</em> con más
|
||
|
frecuencia). Incluso podríamos descubrir que esta persona está actuando
|
||
|
como el punto central de una organización y está integrando el trabajo
|
||
|
de varias personas en sus <em>commits</em>.</p>
|
||
|
<p>Medirnos a nosotros mismos basándonos en la cantidad de la producción
|
||
|
de otras personas es fácil y muy seductor pero no es útil para hacerse
|
||
|
una idea de cómo mejorar nosotros mismos en nuestra tarea de crear
|
||
|
código (a no ser que sea “generando más <em>commits</em>”). Esa forma de
|
||
|
pensar puede llevarnos a creer que no estamos dedicando el tiempo
|
||
|
suficiente a la “programación real” y provocar exceso de trabajo, estrés
|
||
|
y agotamiento.</p>
|
||
|
<h2 data-number="2.6" id="compañeros-de-viaje-1"><span
|
||
|
class="header-section-number">2.6</span> Compañeros de viaje</h2>
|
||
|
<p>Hay momentos en los que es útil compararnos con otros programadores.
|
||
|
A veces podemos aprender sobre nuevas tecnologías o nuevas metodologías
|
||
|
mirando el trabajo de otras personas, pero es fácil caer en la trampa de
|
||
|
pensar que porque no estamos al nivel de otros programadores somos de
|
||
|
alguna manera inferiores a ellos. En lugar de ver a otros programadores
|
||
|
como competencia, deberíamos verlos como compañeros. Todos estamos en
|
||
|
esta profesión trabajando para mejorar nuestros respectivos proyectos.
|
||
|
Con el software libre y de código abierto tenemos una oportunidad única
|
||
|
de ver cómo otras personas hacen su trabajo en público. Podemos aprender
|
||
|
del código de otras personas de la misma manera que los científicos
|
||
|
pueden mirar los artículos de otros científicos para ver qué funcionó (y
|
||
|
pueden mejorar la validez del artículo con una réplica y repetición).
|
||
|
Ningún programador está completamente aislado del trabajo de los demás.
|
||
|
(Es raro que un programador haya creado el código de todo su entorno de
|
||
|
programación desde cero sin el trabajo de otras personas). Todas las
|
||
|
personas aprendemos unas de otras, pero en lugar de intimidarnos por el
|
||
|
trabajo de otras, podemos desarmarlo y aprender de él. Si tenemos
|
||
|
suerte, podemos aprovechar la oportunidad para preguntarles cómo
|
||
|
funciona el código y por qué eligieron escribir el código de esa
|
||
|
manera.</p>
|
||
|
<p>Es valioso hacer preguntas a nuestros compañeros programadores.
|
||
|
Tendemos a pasar por alto hacer preguntas por miedo a que vamos a hacer
|
||
|
algo obvio o hacer una pregunta que nos haga sentir incómodos por
|
||
|
haberla realizado. Hacer preguntas es muy útil cuando no entendemos qué
|
||
|
está pasando con una idea o una pieza de código en particular. Hay
|
||
|
programadores a los que no les importa responder preguntas, y espero que
|
||
|
los encuentres. De acuerdo, hay algunos programadores que están muy
|
||
|
ocupados y es posible que no tengan el tiempo o la predisposición para
|
||
|
responder preguntas, pero si realmente estamos atascados y hemos agotado
|
||
|
todas las demás vías, tal vez podamos hacerles preguntas que no
|
||
|
requieran mucho de su tiempo y esfuerzo. Incluso pueden estar
|
||
|
agradecidos por la pregunta porque les da una idea de una perspectiva
|
||
|
que de otro modo no tendrían. Cuando hacemos preguntas iniciamos un
|
||
|
intercambio de ideas en ambas direcciones.</p>
|
||
|
<p>Hacer preguntas es todo un arte y puede ser frustrante cuando las
|
||
|
personas no responden nuestras preguntas o nos responden con otras
|
||
|
preguntas o sugerencias que no son útiles. Esto se manifiesta en
|
||
|
intercambios donde la persona A pregunta: “Me gustaría saber cómo hacer
|
||
|
X” y las personas B y C responden “Yo en tu lugar haría Y”. Es
|
||
|
frustrante cuando la gente no responde a nuestras preguntas de manera
|
||
|
directa. También es fácil verse envuelto en intercambios con la gente
|
||
|
sobre los méritos de hacer Y, donde Y fue sugerido por otra persona que
|
||
|
no tiene nada que ver con la pregunta original sobre X. Pero si volvemos
|
||
|
a enmarcar la experiencia como “esta persona está tratando de ayudarme,
|
||
|
tal vez haya algo en esta recomendación que pueda ser útil”, entonces
|
||
|
podemos tener una mejor conversación. Quizás lo que estamos preguntando
|
||
|
no es la mejor manera de hacer algo y hacer una pausa para escuchar
|
||
|
puede ayudarnos a comprender mejor por qué hicieron su sugerencia.</p>
|
||
|
<p>El sacar nuestros egos de la pregunta nos permite estar más abiertos
|
||
|
a las respuestas que recibimos. Cuando las personas no entienden nuestra
|
||
|
pregunta, es fácil tomarla como algo personal y protestar pensando “no
|
||
|
me entienden” o “no me escuchan”. Al abstraernos de la pregunta nos
|
||
|
permite tomar la respuesta proporcionada “tal cual” y nos da la
|
||
|
capacidad de cambiar la pregunta según sea necesario para obtener
|
||
|
mejores respuestas.</p>
|
||
|
<p>Por supuesto, hay personas que no responderán pensando en lo mejor
|
||
|
para ti y solo están interesadas en imponerte su propia visión del
|
||
|
mundo. En lugar de responder a tu pregunta, cuestionan por qué estás
|
||
|
haciendo eso y en su lugar sugieren que deberías usar su metodología.
|
||
|
Puede requerir mucha energía enfrentarse con estas personas y decirles
|
||
|
“no, realmente tenía la intención de aprender más sobre X”. Me gustaría
|
||
|
tener buenas respuestas sobre cómo manejar a este tipo de personas.
|
||
|
Muchas de estas personas, sienten que cualquier cosa que estén haciendo
|
||
|
es el único camino correcto y aquellas personas que se desvían de su
|
||
|
camino elegido son anatema para su mundo. Mi mejor sugerencia es
|
||
|
agradecerles su tiempo y pedir ayuda a alguien más. Tal vez puedan ser
|
||
|
útiles en el futuro cuando tenga preguntas sobre lo que sea que sea
|
||
|
parte de su agenda, pero por ahora conviene ser lo más amable posible y
|
||
|
desearles lo mejor en su viaje de programación. Los espacios
|
||
|
tecnológicos tienen mucha gente que ha estado trabajando con
|
||
|
computadoras durante mucho tiempo y se ha formado opiniones sólidas
|
||
|
sobre sus herramientas y tecnologías. Mi esperanza es que puedas
|
||
|
encontrar a las personas que también son amables y están dispuestas a
|
||
|
compartir lo que saben y no acosarte con sus creencias arraigadas. Con
|
||
|
el tiempo, también formarás tus propias creencias sobre lo que funciona
|
||
|
y lo que no funciona y transmitirás ese conocimiento a los demás.
|
||
|
Reconocer a las personas que están ahí para ayudar a educar y a las que
|
||
|
están ahí para hacer proselitismo es parte de nuestro proceso de
|
||
|
crecimiento.</p>
|
||
|
<p>Si vemos a otros programadores como compañeros de viaje en esta
|
||
|
travesía, como colegas en nuestra práctica a la hora de crear código,
|
||
|
entonces nos daremos cuenta que estamos en esto todos juntos. Incluso
|
||
|
alguien con muchos más años de experiencia que nosotros es tu colega.
|
||
|
Tienes conocimientos y experiencia que ellos no tendrán y ellos tienen
|
||
|
experiencias y conocimientos que tu no tienes. Si nos despojamos de las
|
||
|
barreras del estatus que percibimos y de la meritocracia de esas
|
||
|
personas podremos entendernos mejor y aprender unos de otros.</p>
|
||
|
<p>El viaje para llegar a ser un programador mejor es largo y duro.
|
||
|
Necesitamos los mejores compañeros que podamos encontrar para ayudarnos
|
||
|
en este viaje. Necesitamos algo más que únicamente compañeros que tengan
|
||
|
muy buenos conocimientos técnicos, también necesitamos compañeros con
|
||
|
los que podamos hablar cuando la jornada termina. Necesitamos compañeros
|
||
|
con los que podamos sentarnos alrededor de la fogata proverbial e
|
||
|
imaginaria donde juntos podamos reír y compadecernos de nuestras
|
||
|
luchas.</p>
|
||
|
<h1 data-number="3" id="los-errores-a-lo-largo-del-camino"><span
|
||
|
class="header-section-number">3</span> Los errores a lo largo del
|
||
|
camino</h1>
|
||
|
<h2 data-number="3.1" id="vaya"><span
|
||
|
class="header-section-number">3.1</span> ¡Vaya!</h2>
|
||
|
<p>Tiene que pasar: algo que pensabas que era una buena idea no funcionó
|
||
|
de la manera que lo habías planeado, y ahora te das cuenta de que has
|
||
|
cometido un terrible error. A veces es algo que se podría haber evitado
|
||
|
fácilmente (por ejemplo: realizar un <em>commit</em> de un código
|
||
|
destinado a la depuración). A veces es una cascada de errores, cada uno
|
||
|
de los cuales se basa en las consecuencias del error anterior. Está el
|
||
|
error de ignorar los efectos secundarios de un módulo cuando se usa de
|
||
|
una manera que no estaba prevista, o darse cuenta de que has diseñado un
|
||
|
módulo pequeño y estrechamente acoplado y después descubrir que tu
|
||
|
módulo será parte de una pieza de software más grande y tu código no
|
||
|
está diseñado para hacer una transición sin problemas. ¡Vaya!</p>
|
||
|
<p>Sin embargo, los errores que realmente me asustan son los que no
|
||
|
esperaba, aquellos en los que las consecuencias no deseadas corren
|
||
|
desenfrenadas por todo el sistema como una reacción en cadena. Esos
|
||
|
errores son los que me quitan el sueño por la noche.</p>
|
||
|
<p>Los programadores cometen errores. La naturaleza de nuestros trabajos
|
||
|
requiere que seamos conscientes de lo que sucede en múltiples secciones
|
||
|
de código. Perdemos la noción del estado de nuestro programa y del
|
||
|
código que ya hemos realizado. Intentamos salpicar nuestro código con
|
||
|
comentarios y recordatorios de lo que sucede en una sección del código,
|
||
|
pero los comentarios se vuelven obsoletos y aumentan nuestra
|
||
|
distracción. Nos apresuramos y confiamos que el músculo de nuestra
|
||
|
memoria tome el relevo. Nos negamos áreas en las que podemos probar el
|
||
|
código adecuadamente porque sentimos que debemos apresurarnos para hacer
|
||
|
las cosas rápidamente.</p>
|
||
|
<p>Entramos en pánico, y cuando entramos en pánico cometemos
|
||
|
errores.</p>
|
||
|
<h2 data-number="3.2" id="evitar-los-errores"><span
|
||
|
class="header-section-number">3.2</span> Evitar los errores</h2>
|
||
|
<p>Vamos a hablar con claridad: no hay manera de evitar o eliminar los
|
||
|
errores. El software es demasiado complejo para estar completamente
|
||
|
libre de errores. Sin embargo, lo que podemos hacer es crear lugares en
|
||
|
los que podamos detectar tantos errores del código como sea posible
|
||
|
antes de mostrarlo a los demás. Podemos comprender mejor nuestro código
|
||
|
y lo que está haciendo cuando tenemos la capacidad de depurar y probar
|
||
|
nuestro código en un entorno seguro. Podemos ver cómo se comportará bajo
|
||
|
ciertas circunstancias. La creación de un modelo similar al del sistema
|
||
|
de destino nos permite probar nuestro código con versiones más pequeñas
|
||
|
de la realidad del sistema del destino y ver cómo se comporta en esas
|
||
|
condiciones.</p>
|
||
|
<p>Ponemos mucho énfasis en evitar errores, tanto en la programación
|
||
|
como en la cultura de la programación. Hay historias de terror de cómo
|
||
|
pequeños errores en un programa causaron grandes dolores de cabeza a las
|
||
|
personas involucradas. La moraleja de estas historias es que los errores
|
||
|
simples pueden ser costosos y debemos ser doblemente cuidadosos para
|
||
|
evitar errores. Estas anécdotas se cuentan con la esperanza de asustar a
|
||
|
los desarrolladores para que sean más cautelosos, pero pueden tener el
|
||
|
efecto contrario. Pueden hacer que los programadores se vuelvan
|
||
|
paranoicos acerca de poder cometer cualquier error, y cuando operamos en
|
||
|
un modo basado en el miedo, comenzamos a entrar en pánico. Decirle a los
|
||
|
programadores que no cometan errores es similar a decirle a alguien que
|
||
|
no tenga miedo: tienen más miedo de tener miedo.</p>
|
||
|
<p>La mejor (y quizás la única) forma en que aprendemos, es cometiendo
|
||
|
errores. Aprender cometiendo errores es una forma efectiva de
|
||
|
permitirnos ser curiosos y ver qué causó que el programa fallara. Cuando
|
||
|
nos privamos de la libertad de cometer errores, nos privamos de las
|
||
|
oportunidades de aprendizaje al cometer esos errores. Eso no significa
|
||
|
que tengamos que cometer todos los errores que otros desarrolladores han
|
||
|
cometido antes que nosotros (eso serían montones de errores). Tampoco
|
||
|
significa que debamos introducir el caos en nuestro proceso de
|
||
|
desarrollo para aprender mejor. Lo que significa es que debemos cometer
|
||
|
nuestros propios errores a nuestra manera, para seguir aprendiendo y
|
||
|
descubrir dónde existen lagunas en nuestra comprensión.</p>
|
||
|
<h2 data-number="3.3" id="hacer-un-modelo"><span
|
||
|
class="header-section-number">3.3</span> Hacer un modelo</h2>
|
||
|
<p>Necesitamos entornos donde los programadores puedan aprender de una
|
||
|
manera segura de sus propios errores. Necesitamos espacios donde los
|
||
|
programadores puedan sentirse bien y seguros a la hora de probar cosas
|
||
|
nuevas. Necesitamos lugares donde los desarrolladores puedan probar sus
|
||
|
ideas y que esos cambios no se extiendan a otros sistemas no
|
||
|
relacionados. Esta es la mejor forma, con la que los desarrolladores
|
||
|
pueden aprender y ser valientes en su proceso de aprendizaje.</p>
|
||
|
<p>Estos entornos deben replicar los sistemas de destino y deben estar
|
||
|
lo más cerca posible de esos sistemas de destino. Eso no significa que
|
||
|
haya que hacer copias exactas de entornos de producción costosos, pero
|
||
|
sí se necesita crear modelos de entornos de producción que prueben la
|
||
|
mayoría de las piezas con las que tu código entrará en contacto. Tener
|
||
|
modelos o réplicas que reflejen los sistemas de producción significa que
|
||
|
cuando muevas tu código a producción, introducirá menos cambios con
|
||
|
consecuencias no deseadas. Tus cambios ya habrán existido en un entorno
|
||
|
de producción. Puedes estar tranquilo sabiendo que los cambios que
|
||
|
provoquen en estos modelos serán los mismos cambios que aparecerán en el
|
||
|
sistema de destino.</p>
|
||
|
<p>En la situación más ideal, necesitarás tener un entorno como este, en
|
||
|
una máquina que controles. Esto significa que no estás compitiendo con
|
||
|
otros programadores de tu organización que también están siendo
|
||
|
valientes con sus cambios. También querrás asegurarte de que tu entorno
|
||
|
se mantenga actualizado con sus cambios (y cualquier cambio de
|
||
|
producción) para que tu modelo de desarrollo coincida con lo que está en
|
||
|
el sistema de destino y lo que estará en el sistema de destino. Un buen
|
||
|
modelo es aquel que se mantiene actualizado con lo que se está
|
||
|
modelando. Es lo mismo que un mapa de una ciudad: es mejor cuando
|
||
|
coincide con el área de su modelo y se mantiene actualizado con los
|
||
|
cambios que ocurren en esa ciudad. Un buen mapa de la ciudad podría
|
||
|
informarte sobre las obras recientes que se están realizando en tu ruta.
|
||
|
Un mapa inútil es aquel que ni siquiera muestra tu ruta porque no se
|
||
|
había construido esa ruta cuando se creó el mapa. Si nuestro modelo de
|
||
|
producción se está quedando atrás constantemente con respecto a lo que
|
||
|
está en producción, dedicaremos más tiempo a rectificar los cambios que
|
||
|
estamos haciendo con los cambios entre nuestro modelo y el que está en
|
||
|
producción.</p>
|
||
|
<p>Esto también significa que deberíamos tener un entorno que se pueda
|
||
|
reconstruir rápidamente y replicar según sea necesario. Tener un modelo
|
||
|
que se convierte en su propia realidad separada se convierte en un
|
||
|
sistema más para mantener. Este modelo debe ser algo que se pueda
|
||
|
eliminar y reconstruir a voluntad para eliminar cualquier experimento
|
||
|
anterior. Es mejor pensar en él como una copia efímera de tu entorno de
|
||
|
destino que tiene un uso limitado y puede desecharse cuando ya no sea
|
||
|
necesario. Este entorno de pruebas debe ser rápido a la hora de volverlo
|
||
|
a replicar para que haya poca fricción a la hora de crear nuevos
|
||
|
entornos para probar. Eso quizás puede significar crear secuencias de
|
||
|
comandos para el proceso de construcción de estos entornos. La forma en
|
||
|
que decidas hacer esto depende de ti, pero ten en cuenta que quieres
|
||
|
algo que sea lo más simple posible y que requiera la menor cantidad
|
||
|
posible de nuestra atención para replicarlo.</p>
|
||
|
<p>De nuevo, no tiene que ser perfecto, sólo es un modelo, pero necesita
|
||
|
ser lo bastante similar al original para que tu código se comporte de
|
||
|
una manera similar entre el modelo creado y el entorno real.</p>
|
||
|
<h2 data-number="3.4" id="máquinas-del-tiempo"><span
|
||
|
class="header-section-number">3.4</span> Máquinas del tiempo</h2>
|
||
|
<p>Hay un buen número de personas que te hablarán sobre los beneficios
|
||
|
de un sistema de control de revisiones (y muchas de esas personas te
|
||
|
mostrarán los pasos exactos para configurar un sistema de control de
|
||
|
revisiones). Los sistemas de control de revisiones como
|
||
|
<code>git</code>, <code>svn</code>, o <code>cvs</code> y similares han
|
||
|
ayudado a los programadores a coordinar lanzamientos de publicaciones y
|
||
|
mantener un registro de qué trabajos se han añadido a sus proyectos.
|
||
|
Tener un buen sistema de control de revisiones te permite crear áreas
|
||
|
donde puedas probar código nuevo sin tener que añadir estas pruebas a
|
||
|
código ya en producción. Un buen control de revisiones te permite crear
|
||
|
un espacio (o también llamados ramas o <code>branch</code> por su nombre
|
||
|
en inglés cuando estamos hablando de <code>git</code>) basado en un
|
||
|
código ya existente que puedes utilizar para experimentar y desarrollar.
|
||
|
También te permite realizar <em>commits</em> en ese espacio y divagar
|
||
|
tanto como necesites para poder explorar a fondo los cambios que estás
|
||
|
realizando. Sin embargo, lo que es más importante es que un buen sistema
|
||
|
de control de revisiones también te permitirá abandonar ese espacio si
|
||
|
lo necesitas, no estás forzado a añadir esos cambios a tu código en
|
||
|
producción. Esto te permite ver si algo podría funcionar o abandonar
|
||
|
esos cambios si no lo hace. Un buen control de revisiones brinda a los
|
||
|
programadores la capacidad de ramificarse desde cualquier punto en el
|
||
|
tiempo y explorar lo que sucedió en el código base. En cierto sentido,
|
||
|
son máquinas del tiempo y universos infinitos, lo que te permite jugar
|
||
|
con distintos escenarios “¿y si?” con tu código y avanzar y retroceder
|
||
|
en el tiempo en el código. Esto es vital para tu aprendizaje porque
|
||
|
puedes sentirte seguro probando y probando cosas y rebobinando esos
|
||
|
cambios (o eliminándolos por completo) sin afectar el trabajo de otras
|
||
|
personas.</p>
|
||
|
<p>Aprender cómo funciona tu sistema de control de revisiones te dará
|
||
|
libertad para cometer errores. Muchos de estos sistemas pueden parecer
|
||
|
complejos al principio, pero con la práctica continua y paciencia,
|
||
|
comprenderás lo que hace el sistema de control de revisiones y cuáles
|
||
|
son sus posibilidades. Podrás juzgar cuántos riesgos puedes tomar con tu
|
||
|
código y tener más confianza con los riesgos que tomas.</p>
|
||
|
<p>El control de revisiones también puede desempeñar un papel importante
|
||
|
al poder ver el desarrollo del código de otras personas. Puedes disponer
|
||
|
de una ventana a su proceso de desarrollo y ver cómo se desarrollan
|
||
|
ciertas características a medida que se añaden. Esto puede ayudarte a
|
||
|
aprender sobre una base de código desconocida y mostrarte la dirección
|
||
|
que tomaron para hacer el código de la manera que es. Puede brindarte
|
||
|
una ventana a la historia de un proyecto y lo que se hizo para que
|
||
|
sucediera. El control de revisiones puede ser una máquina del tiempo en
|
||
|
la historia de un proyecto y puede ayudarte a comprender que la
|
||
|
programación es un proceso. No todos los proyectos vienen completamente
|
||
|
ya formados de la mente de los programadores.</p>
|
||
|
<h2 data-number="3.5" id="aprender-de-los-errores"><span
|
||
|
class="header-section-number">3.5</span> Aprender de los errores</h2>
|
||
|
<p>A veces fallamos. A veces, el código que escribimos no está a la
|
||
|
altura de las realidades del sistema en el que se implementa. Enviamos
|
||
|
código que hace algo inesperado y como resultado, los sistemas se
|
||
|
rompen. Podemos perder la noción de dónde estamos en nuestro código y
|
||
|
hacer cambios que entren en conflicto con otros cambios, lo que luego
|
||
|
hace que dediquemos tiempo a deshacer esos cambios. Todos estos casos
|
||
|
causan malestar, ya sea para nosotros, las personas a las que ayudamos o
|
||
|
las personas con las que trabajamos.</p>
|
||
|
<p>No voy a mentir: el fracaso apesta. Nos hace sentir que somos menos
|
||
|
personas porque fallamos. Nos sentimos incómodos y nos preguntamos qué
|
||
|
pensarán los demás de nosotros. ¿Tendrán los demás una mala opinión
|
||
|
sobre nosotros? ¿Hemos dañado nuestra relación con aquellas personas que
|
||
|
usan lo que sea que hayamos programado? ¿Hemos defraudado a nuestro
|
||
|
equipo? Todas estas preguntas surgen de dos deseos: el deseo de hacer lo
|
||
|
mejor posible y el deseo de no hacer daño a los demás. Queremos que los
|
||
|
demás piensen bien de nosotros y de nuestras habilidades. El fracaso va
|
||
|
en contra de esos deseos y amplifica cualquier sentimiento de
|
||
|
insuficiencia que podamos tener. Esos sentimientos pueden incluir
|
||
|
preguntarse si deberíamos programar o si nuestros talentos deberían
|
||
|
usarse en otras áreas. Nos preguntamos si deberíamos rendirnos.</p>
|
||
|
<p>No solemos pensar en el fracaso como parte del proceso de
|
||
|
aprendizaje. El fracaso a menudo se ve como el punto final del viaje. En
|
||
|
la escuela, una nota baja se considera una castigo. No lo vemos como:
|
||
|
“necesito practicar esto un poco más”, en cambio, sentimos que nos hemos
|
||
|
causado vergüenza e incomodidad a nosotros mismos y a nuestros seres
|
||
|
queridos. Nos perjudicamos gravemente a nosotros mismos, si no nos damos
|
||
|
cuenta de que el fracaso es una parte natural del proceso de aprendizaje
|
||
|
y que está bien fracasar. No todo lo que hagamos será perfecto. Los
|
||
|
errores se infiltrarán en el mejor código que escribamos. Nos
|
||
|
equivocaremos y desplegaremos el código en el sistema equivocado.
|
||
|
Nuestros errores causarán malestar a los demás. Aceptar esto nos da la
|
||
|
libertad de darnos cuenta que, a pesar de nuestros mejores esfuerzos, no
|
||
|
seremos perfectos. En lugar de ver el fracaso como una limitación,
|
||
|
podemos usarlo como parte de nuestro proceso de crecimiento.</p>
|
||
|
<p>Cuando nos damos cuenta de que vamos a cometer errores, podemos
|
||
|
cambiar nuestro enfoque sobre cómo y dónde los cometemos. Antes mencioné
|
||
|
sobre la creación de modelos de nuestros entornos. ¿Qué mejor manera de
|
||
|
permitirnos cometer errores que en un entorno donde esos errores se
|
||
|
pueden contener o revertir? La creación de modelos nos permite practicar
|
||
|
y probar nuestras suposiciones en entornos que nadie más tiene que ver.
|
||
|
Es similar a un lugar de ensayo para músicos, donde pueden repasar su
|
||
|
material sin necesidad de tocarlo bien a la primera. Pueden resolver las
|
||
|
partes problemáticas y cometer errores hasta que tengan confianza en su
|
||
|
ejecución.</p>
|
||
|
<p>Los errores sirven para aprender qué funciona y qué no funciona. Son
|
||
|
una parte integral de nuestro proceso de aprendizaje. Tenemos tendencia
|
||
|
a recordar las lecciones de aquello que no funcionó bien, mejor que
|
||
|
aquellas que sí funcionaron. Los errores nos ayudan a reforzar aquellas
|
||
|
áreas donde nos faltan conocimientos y nos ayudan a comprender las
|
||
|
brechas que aún tenemos que cerrar.</p>
|
||
|
<p>Los errores también actúan como un recordatorio para hacer una pausa
|
||
|
por un momento y no dejarse llevar por la urgencia de las cosas. Mis
|
||
|
propios errores tienden a surgir cuando me apresuro a cumplir con una
|
||
|
fecha límite (ya sea real o auto impuesta). Mis peores errores suceden
|
||
|
cuando estoy cansado y apurado, cuando prácticamente estoy golpeando el
|
||
|
teclado tratando de hacer que algo (¡cualquier cosa!) funcione. Cuando
|
||
|
me permito hacer una pausa por un momento, reflexionar sobre lo que
|
||
|
estoy tratando de hacer y sentir la incertidumbre en el momento, puedo
|
||
|
tomar medidas para recalibrar y reenfocarme en el momento. Me doy la
|
||
|
libertad de corregir el rumbo y comprender que no estoy dando lo mejor
|
||
|
de mí y necesito hacer algo diferente. Puede ser algo pequeño como darle
|
||
|
un poco de descanso a mi cerebro o algo grande como revisar las
|
||
|
suposiciones que hice sobre lo que estoy haciendo. Hacer la pausa me
|
||
|
permite determinar si quiero continuar haciendo lo que estoy haciendo y
|
||
|
entender si ese es el mejor camino.</p>
|
||
|
<h2 data-number="3.6" id="llevar-un-registro-de-nuestros-errores"><span
|
||
|
class="header-section-number">3.6</span> Llevar un registro de nuestros
|
||
|
errores</h2>
|
||
|
<p>Es interesante no cometer los mismos errores dos veces, pero incluso
|
||
|
si repetimos el mismo error aún puede ser útil. Saber que hemos repetido
|
||
|
el mismo fallo es útil porque nos da un patrón que podemos entender.
|
||
|
Esos patrones nos muestran que hacer esto en particular conduce a un
|
||
|
resultado erróneo que se vuelve a repetir. Luego podemos determinar qué
|
||
|
causó el error y planificar cómo mitigarlo. Esto es parte del proceso de
|
||
|
aprendizaje, siempre y cuando no caigamos en una espiral de
|
||
|
auto-recriminación cuando nos demos cuenta de que hemos vuelto a cometer
|
||
|
el mismo error.</p>
|
||
|
<p>Un truco que yo mismo debería usar con más frecuencia es escribir un
|
||
|
registro en un diario. Llevar un diario de lo que ocurrió y cómo lo
|
||
|
solucionamos es una forma de explicarle a otra persona (a menudo a
|
||
|
nosotros mismos) lo que sucedió. Explicar lo sucedido nos permite
|
||
|
convertirnos en maestros para nosotros mismos y para los demás. Refuerza
|
||
|
nuestro proceso de aprendizaje. Escribir lo que sucedió de una manera
|
||
|
que otros puedan entender, nos permite organizar los pensamientos en
|
||
|
nuestra cabeza de una manera clara y comprensible. Cuando articulamos
|
||
|
nuestros propios pensamientos sobre lo que sucedió y los transcribimos,
|
||
|
comenzamos a comprender nuestros propios pensamientos y podemos
|
||
|
liberarnos de otras ideas sobre cómo solucionar este y otros problemas.
|
||
|
Nos damos la pausa que necesitamos para comprender completamente lo que
|
||
|
sucedió y cuál es la mejor manera de avanzar. Nos convertimos en nuestra
|
||
|
propia caja de resonancia de ideas sobre la mejor manera de
|
||
|
proceder.</p>
|
||
|
<p>No se trata de mantener un registro para la posteridad para que
|
||
|
podamos mirar hacia atrás en una lista de fallos y castigarnos por el
|
||
|
pasado (si eres como yo, eso sucede automáticamente). Es una manera de
|
||
|
enseñarnos a nosotros mismos y maximizar el proceso de aprendizaje. Se
|
||
|
trata de darnos la libertad de ser el instructor de nuestro yo futuro
|
||
|
para que podamos ser más conscientes cuando un error está a punto de
|
||
|
ocurrir y comprender cómo corregirlo. Esto nos permite concentrarnos
|
||
|
ahora mismo el tiempo suficiente para comprender qué sucedió, qué
|
||
|
hicimos para corregirlo y cuál es la mejor manera de proceder a partir
|
||
|
de aquí. También nos ayuda a ubicar dónde están nuestras lagunas de
|
||
|
aprendizaje y las “próximas acciones” que debemos tomar para llenar esas
|
||
|
brechas.</p>
|
||
|
<p>Hablaremos más sobre el proceso de llevar un registro en capítulos
|
||
|
posteriores pero recomiendo encarecidamente el hábito de llevar un
|
||
|
diario, aunque únicamente sea por la razón que le brinda un aprendiz
|
||
|
dispuesto a enseñar, incluso si ese aprendiz eres tu mismo.</p>
|
||
|
<h1 data-number="4" id="las-posadas-en-las-que-nos-hospedamos"><span
|
||
|
class="header-section-number">4</span> Las posadas en las que nos
|
||
|
hospedamos</h1>
|
||
|
<h2 data-number="4.1" id="compañeros-de-viaje-2"><span
|
||
|
class="header-section-number">4.1</span> Compañeros de viaje</h2>
|
||
|
<p>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.</p>
|
||
|
<p>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.</p>
|
||
|
<h2 data-number="4.2" id="encontrar-una-buena-comunidad"><span
|
||
|
class="header-section-number">4.2</span> Encontrar una buena
|
||
|
comunidad</h2>
|
||
|
<p>Hay un montón de buenas comunidades ahí fuera que están dispuestas a
|
||
|
ayudarte a ser un mejor programador, pero ¿cómo encontrarlas?</p>
|
||
|
<p>Esa es una pregunta complicada.</p>
|
||
|
<p>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.</p>
|
||
|
<p>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.</p>
|
||
|
<p>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 <em>Coffee House Coders</em> 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.</p>
|
||
|
<p>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.</p>
|
||
|
<h2 data-number="4.3"
|
||
|
id="la-dificultad-de-encontrar-una-buena-comunidad"><span
|
||
|
class="header-section-number">4.3</span> La dificultad de encontrar una
|
||
|
buena comunidad</h2>
|
||
|
<p>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.</p>
|
||
|
<p>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.</p>
|
||
|
<p>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.</p>
|
||
|
<p>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?</p>
|
||
|
<p>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.</p>
|
||
|
<h2 data-number="4.4" id="cosas-que-buscar-en-una-buena-comunidad"><span
|
||
|
class="header-section-number">4.4</span> Cosas que buscar en una buena
|
||
|
comunidad</h2>
|
||
|
<p>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:</p>
|
||
|
<ul>
|
||
|
<li><strong>Código de conducta</strong>: 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.</li>
|
||
|
<li><strong>Moderadores</strong>: 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.</li>
|
||
|
<li><strong>Espacios para preguntas y pautas para realizar buenas
|
||
|
preguntas</strong>: 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á.</li>
|
||
|
<li><strong>Disfrutar</strong>: ¿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.</li>
|
||
|
<li><strong>Compasión y empatía</strong>: ¿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?</li>
|
||
|
<li><strong>Amabilidad</strong>: 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.</li>
|
||
|
</ul>
|
||
|
<p>Hablaremos más sobre la amabilidad en próximos capítulos.</p>
|
||
|
<p>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.</p>
|
||
|
<h1 data-number="5" id="un-día-de-viaje"><span
|
||
|
class="header-section-number">5</span> Un día de viaje</h1>
|
||
|
<h2 data-number="5.1" id="cabalgando-hasta-el-amanecer"><span
|
||
|
class="header-section-number">5.1</span> Cabalgando hasta el
|
||
|
amanecer</h2>
|
||
|
<p>Como programadores siempre estamos tratando de encontrar nuevas
|
||
|
formas de ser productivos. Hacemos ajustes en los editores de texto,
|
||
|
ajustes en la compilación, creamos <em>scripts</em> y automatizamos
|
||
|
tareas, la lista se extiende dependiendo de cómo los programadores
|
||
|
quieran maximizar la productividad del tiempo que emplean en crear
|
||
|
código. También pasamos tiempo haciendo ajustes al resto de nuestras
|
||
|
vidas con la creencia de que deberíamos siempre estar haciendo algo
|
||
|
relacionado con el código. Cualquier momento que no estamos creando
|
||
|
código es un momento en el que nuestros proyectos se retrasan. Y
|
||
|
retrasarse con nuestro código puede desencadenar en otros problemas:
|
||
|
plazos incumplidos, que otras empresas publiquen su programa en el
|
||
|
mercado antes que nosotros, u otros casos en los que perdemos una
|
||
|
oportunidad. Estamos constantemente preocupados por no estar haciendo lo
|
||
|
suficiente para tener éxito.</p>
|
||
|
<p>Hemos escuchado historias de desarrolladores que se han despertado
|
||
|
frente a sus equipos por un extraño pitido provocado porque se han
|
||
|
quedado dormidos encima del teclado y la repetición automática de
|
||
|
caracteres ya no podía gestionar más texto por que sus caras estaban
|
||
|
apoyadas en las teclas. ¿No es así como deberían trabajar los
|
||
|
desarrolladores?</p>
|
||
|
<p>Hay una tendencia a creer que como trabajamos con máquinas que no
|
||
|
descansan y siempre están preparadas para trabajar más, necesitamos
|
||
|
adaptarnos nosotros mismos a esas máquinas. Sentimos la necesidad de
|
||
|
estar siempre en marcha y preparados para dar a la máquina más trabajo.
|
||
|
La ociosidad se considera una pérdida de tiempo. Tratamos de llegar a
|
||
|
ser como la máquina: sin descanso y siempre preparados para más
|
||
|
trabajo.</p>
|
||
|
<p>Hay un problema con ese sentimiento de tener que estar siempre en
|
||
|
marcha. Cuando sentimos que siempre tenemos que estar en marcha, no nos
|
||
|
permitimos a nosotros mismos tener un momento de descanso. No nos
|
||
|
permitimos periodos de ocio y descanso. Esto crea un patrón donde nos
|
||
|
denegamos los momentos para sentarnos y centrarnos en lo que estamos
|
||
|
haciendo. Nos forzamos a seguir en movimiento, a seguir programando sin
|
||
|
importar el coste personal. Nuestros cerebros no tienen la habilidad de
|
||
|
descansar, relajarse y cargarse de energía. Nuestras mentes están
|
||
|
ocupadas y exhaustas para procesar lo que aprendimos y guardar ese
|
||
|
conocimiento a largo plazo. Cuando estamos exhaustos empezamos a
|
||
|
preocuparnos de que no estamos haciendo todo lo necesario. Esto no nos
|
||
|
motiva, en vez de eso crea un círculo vicioso de miedo y pánico. Pasamos
|
||
|
nuestro día preocupados porque no estamos haciendo lo necesario mientras
|
||
|
que nuestras mentes gritan un “¡suficiente!” de extenuación. Este
|
||
|
círculo vicioso de miedo y extenuación puede llevarnos a un vórtice de
|
||
|
agotamiento, depresión y el deseo de dejar la programación para
|
||
|
siempre.</p>
|
||
|
<p>Hay un delicado equilibrio que debemos lograr, entre nuestros deseos
|
||
|
de estar conectados constantemente y nuestras necesidades de relajación
|
||
|
y reflexión. Nuestro deseo de un desarrollo invencible e infatigable
|
||
|
debe atemperarse con la realidad de que nuestros cuerpos y mentes tienen
|
||
|
unos recursos finitos por día que deben asignarse adecuadamente. Piensa
|
||
|
en esto, como en el suministro de energía para una máquina compleja
|
||
|
(nuestro cuerpo y mente) en la que el fabricante (todavía) no te permite
|
||
|
cambiar la batería cuando se agota. Ser consciente de qué procesos se
|
||
|
están ejecutando, cuánta energía se está utilizando y cuánta energía
|
||
|
queda es vital para garantizar que aún pueda funcionar más, hasta el
|
||
|
final del día. Ese es el nivel de conciencia que debemos tener sobre
|
||
|
nosotros mismos.</p>
|
||
|
<p>¿Cómo equilibramos esos sentimientos de querer estar conectados todo
|
||
|
el tiempo mientras nos permitimos a nosotros mismos el relajarnos y
|
||
|
reflexionar en lo que estamos haciendo? ¿Cómo prestamos atención a las
|
||
|
necesidades de esta “máquina de programar”?</p>
|
||
|
<h2 data-number="5.2" id="luces-fuera"><span
|
||
|
class="header-section-number">5.2</span> Luces fuera</h2>
|
||
|
<p>Primero, debemos ser conscientes de que no podemos estar conectados
|
||
|
todo el tiempo. Quizá sabes esto de manera intuitiva y pensamos “claro,
|
||
|
por supuesto” pero saber esto no es lo mismo que ponerlo en práctica.
|
||
|
Necesitamos periodos donde no estemos programando ni pensando en
|
||
|
programar. Deberíamos tener momentos donde poder apagar la parte del
|
||
|
programador de nuestra personalidad. Estos periodos de no programación
|
||
|
son vitales para nuestro propio bien estar y nos ofrecen oportunidades
|
||
|
para explorar el ancho mundo y permitir a nuestras mentes descansar en
|
||
|
los tiempos entre las sesiones de programación.</p>
|
||
|
<p>Esto puede ser complicado si sentimos que nos estamos retrasando en
|
||
|
nuestro aprendizaje. ¿Cuando se supone que vamos a aprender todas esas
|
||
|
cosas nuevas que están ocurriendo cada día? ¿Cuándo se supone que nos
|
||
|
pondremos al día con toda esa deuda técnica que hemos ido acumulando a
|
||
|
lo largo de los años? ¿Cuándo tendremos tiempo de conocer los entresijos
|
||
|
de tecnologías que no forman parte de nuestro trabajo diario pero que
|
||
|
nos siguen interesando?</p>
|
||
|
<p>Estos sentimientos que tenemos (que hay que hacer más y que
|
||
|
necesitamos pasar cada momento en el que estamos despiertos haciendo
|
||
|
cosas que no hagan que nos desfasemos) no son muy útiles cuando nos
|
||
|
comparamos con otros programadores que parece que son súper productivos.
|
||
|
Estos son los programadores que tienen una idea brillante por la mañana
|
||
|
y un prototipo ya funcional por la tarde (mientras siguen gestionando
|
||
|
normalmente su rutina de trabajo). Cuando nos comparamos a nosotros
|
||
|
mismos con estos programadores nos preguntamos si se toman algún momento
|
||
|
libre lejos de sus ordenadores.</p>
|
||
|
<p>Podemos reconocer que tenemos sentimientos de querer esforzarnos para
|
||
|
seguir aprendiendo y haciendo cosas. Podemos notar nuestros sentimientos
|
||
|
cuando pensamos “solo una línea de código más antes de acostarnos” o
|
||
|
convencernos a nosotros mismos pensando: “puedo leer algunos artículos o
|
||
|
páginas más o [inserte la forma favorita de consumir más información
|
||
|
aquí]”. Podemos hacer una pausa y notar de dónde vienen estos
|
||
|
sentimientos y pensamientos y entender por qué incluso nos esforzamos
|
||
|
más allá del agotamiento.</p>
|
||
|
<p>Estos sentimientos generalmente provienen de una sensación de
|
||
|
insuficiencia. Sentimos que no estamos a la altura de los ideales que
|
||
|
tenemos, ya sea porque estos ideales son los que hemos creado o por que
|
||
|
han sido creados de manera externa. Estos ideales provienen de analizar
|
||
|
a otros programadores (colegas o personas a las que admiramos) y medir
|
||
|
nuestro progreso en comparación con su trabajo. También provienen de
|
||
|
nuestras propias ideas míticas de lo que hace a un programador
|
||
|
perfecto.</p>
|
||
|
<p>De lo que debemos darnos cuenta es que esas ideas de lo que hacen los
|
||
|
programadores buenos y perfectos son fantasías. Son una combinación de
|
||
|
lo que creemos que debería ser un programador bueno y perfecto. No
|
||
|
existen en el mundo real. Es cierto que podemos ver programadores que
|
||
|
parecen despertarse con un teclado conectado a sus manos, pasan todo el
|
||
|
día creando código y se van a dormir con sueños de formular más código
|
||
|
en sus cabezas. Pero debemos darnos cuenta de que solo estamos viendo un
|
||
|
lado de sus vidas. No estamos viendo la imagen completa de quiénes son.
|
||
|
Necesitamos enfocarnos en nuestros propios cuerpos y mentes y darnos
|
||
|
cuenta de cuándo estamos cansados y necesitamos descansar. No podemos
|
||
|
convertirnos en otras personas, tenemos que trabajar con quienes somos y
|
||
|
lo que somos.</p>
|
||
|
<p>Nuestros cuerpos necesitan tiempos de descanso para poder ser más
|
||
|
efectivos. Necesitamos momentos donde podamos apartarnos del teclado y
|
||
|
permitirnos a nosotros mismos descansar y relajarnos. Nuestras mentes no
|
||
|
están diseñadas para el trabajo constante, especialmente a los niveles
|
||
|
que se le requiere a un programador. Cuanto antes nos demos cuenta de
|
||
|
que debemos dar un paso atrás y tomar descansos a lo largo del día para
|
||
|
recargarnos, más felices (y más productivos) seremos.</p>
|
||
|
<h2 data-number="5.3" id="hacer-un-descanso"><span
|
||
|
class="header-section-number">5.3</span> Hacer un descanso</h2>
|
||
|
<p>Hacer un descanso es algo más que simplemente cambiar a otro programa
|
||
|
de tu ordenador. Mi tendencia mientras tomo un descanso es comenzar a
|
||
|
revisar mi correo electrónico o abrir alguno de mis diversos programas
|
||
|
de chat para ver qué ha pasado desde la última vez que lo abrí
|
||
|
(normalmente desde el último descanso que me tomé). Esto realmente no es
|
||
|
tomarse un descanso ya que estoy tratando de realizar múltiples tareas
|
||
|
sentado en mi mesa. Los verdaderos descansos implican levantarse de
|
||
|
delante de la pantalla del ordenador. No es necesario que sea un
|
||
|
descanso largo, tomarse un descanso puede ser simplemente salir de la
|
||
|
habitación a otra área diferente de donde estés trabajando. Necesitas
|
||
|
moverte de delante de tu equipo para obtener un “cambio de contexto”,
|
||
|
donde tu mente puede sentir que no está en el mismo lugar donde estaba
|
||
|
antes. El cambio de contexto le permite a tu mente cambiar por completo
|
||
|
y eliminar el contexto del área en la que se encuentra. Permite que tu
|
||
|
mente se concentre en un nuevo contexto y una nueva situación.</p>
|
||
|
<p>Esto puede ser complicado en una oficina donde se espera de manera
|
||
|
implícita que las personas deben permanecer en su espacio de trabajo
|
||
|
para ser productivas. Y solo existen algunos “descansos biológicos”
|
||
|
(descansos que están relacionados con la biología humana, también
|
||
|
conocidos como ir al baño) que alguien puede tomarse en tales
|
||
|
situaciones. ¿Cómo puedes darte esos cambios de contexto que tu mente
|
||
|
necesita en tales situaciones?</p>
|
||
|
<p>También podrías ser capaz de obtener esos cambios de contexto
|
||
|
apartando tu vista de la pantalla por unos momentos. Es una buena idea
|
||
|
apartar la mirada de la pantalla de vez en cuando para dar a tus ojos un
|
||
|
descanso. Dar a tu mente un descanso mientras das un descanso a tus ojos
|
||
|
puede ser el incentivo para que realices ambos.</p>
|
||
|
<p>Cambiar de posición de sentado a estar de pie, también puede ser un
|
||
|
buen cambio de contexto donde te permites un cambio en tu espacio físico
|
||
|
de trabajo. Puede ser tan simple como levantarse y estirarse de vez en
|
||
|
cuando, o tan complejo como levantarse y agacharse en tu escritorio.
|
||
|
Diciéndote a ti mismo que hay dos contextos en tu escritorio: sentado y
|
||
|
de pie, podría ser suficiente para darte un cambio de contexto y el
|
||
|
descanso que tu mente necesita.</p>
|
||
|
<p>Si tu lugar de trabajo tiene una cultura en la que se te permite
|
||
|
abandonar tu escritorio y cambiar de lugar, eso sería un gran cambio de
|
||
|
contexto. El añadir un componente físico (tanto como seas capaz) a tu
|
||
|
cambio de contexto puede ayudar a tu mente a relajarse y retomar
|
||
|
energías.</p>
|
||
|
<p>Tendrás que experimentar con algunos de estos ejemplos para
|
||
|
determinar qué te funciona a ti. Como mínimo querrás que tu mente sienta
|
||
|
que no necesita estar alerta todo el tiempo. Quieres que tu mente se
|
||
|
tome unos periodos de respiro entre sesiones de escribir código para
|
||
|
poder eliminar los restos de esa sesión de tu “caché” mental y
|
||
|
almacenarlos en la memoria a largo plazo. Así cuando regreses a tu
|
||
|
sesión de crear código, será más probable que recuerdes qué estaba
|
||
|
pasando.</p>
|
||
|
<p>También es posible que descubras cuando te alejes de tu equipo por un
|
||
|
momento, que olvidarás lo que estabas haciendo previamente. Eso está
|
||
|
bien. Lo que recomendaría es mantener un diario o registro de en qué
|
||
|
estabas pensando con tanto detalle como necesites. Ya sea escribiéndolo
|
||
|
de manera física en un papel o usando un archivo de texto para tener
|
||
|
suficientes pistas para continuar el trabajo donde lo dejaste.</p>
|
||
|
<h2 data-number="5.4" id="pensamiento-productivo"><span
|
||
|
class="header-section-number">5.4</span> Pensamiento productivo</h2>
|
||
|
<p>Lo siguiente, deberemos darnos cuenta que la productividad no es una
|
||
|
constante. Hay días en los que nos encontraremos generando niveles
|
||
|
notables de código y código de calidad y días en los que tendremos
|
||
|
suerte si podemos unir una cadena coherente de palabras para un
|
||
|
comentario en el código. En el mismo día tenemos diferentes niveles
|
||
|
disponibles de energía y enfoque mental. Depende de nosotros ser
|
||
|
conscientes de estos niveles y comprender cual podría ser nuestra
|
||
|
productividad para el día.</p>
|
||
|
<p>Entender estas variaciones de productividad puede permitirnos evaluar
|
||
|
si el día nos permitirá o no generar código que necesita ser generado,
|
||
|
pero hay un nivel inferior que creo que es importante.</p>
|
||
|
<p>Ponemos mucho énfasis diariamente en completar tareas y cumplir
|
||
|
plazos. Este énfasis puede crearnos fuertes vínculos con la terminación
|
||
|
de las tareas y los plazos. A veces esto es debido a factores externos
|
||
|
(la “ruta crítica” del proyecto requiere que lo hagamos en una fecha y
|
||
|
hora determinadas). Pero muchos de nuestros plazos son plazos internos
|
||
|
que fueron establecidos por nosotros mismos. Nos marcamos una meta, de
|
||
|
que seremos así de productivos al final del día. La condición no
|
||
|
declarada de este plazo de productividad interna es que nos sentiremos
|
||
|
culpables y avergonzados si no logramos el objetivo. Sentiremos que no
|
||
|
estamos a la altura de nuestras expectativas y nos preguntaremos si
|
||
|
somos dignos de la tarea que tenemos entre manos. Sentiremos que nuestro
|
||
|
día ha sido desperdiciado y nos preguntaremos si somos capaces de hacer
|
||
|
algo.</p>
|
||
|
<p>Es mejor para nosotros el eliminar los plazos cuando sea posible. No
|
||
|
podremos eliminar los externos en los cuales los compañeros están
|
||
|
esperando nuestras contribuciones (aunque es posible volver a negociar
|
||
|
estos plazos si no son muy importantes) pero podemos dejar de lado el
|
||
|
deseo de conseguir esos niveles arbitrarios de productividad y esos
|
||
|
plazos arbitrarios.</p>
|
||
|
<p>Las metas arbitrarias pueden funcionar para algunas tareas. Algunos
|
||
|
ejemplos de esto son los concursos de programación de juegos que solo
|
||
|
duran una semana, lo que hace que los equipos se centren en las piezas
|
||
|
críticas del diseño y la implementación de su juego para lanzarlo en el
|
||
|
tiempo asignado. Este puede ser un ejercicio divertido para centrar
|
||
|
esfuerzos, pero también conllevan mucho estrés y presión antes del fin
|
||
|
de plazo del concurso. Si continuamente te sientes culpable e indigno
|
||
|
porque parece que no puedes alcanzar las metas que te propusiste,
|
||
|
entonces deberías reconsiderar si es útil usarlas.</p>
|
||
|
<p>Un truco que me ha ayudado es crear pequeños espacios de enfoque
|
||
|
concentrado. Este truco se describe en la próxima sección.</p>
|
||
|
<h2 data-number="5.5" id="contenedores"><span
|
||
|
class="header-section-number">5.5</span> Contenedores</h2>
|
||
|
<p>Deberíamos reemplazar los plazos que no son estrictos (plazos que no
|
||
|
se nos han impuesto de manera externa) con un compromiso de trabajar en
|
||
|
un proyecto durante un periodo de tiempo. Un truco que he encontrado
|
||
|
útil, es la idea de “contenedor de enfoque cronometrado”. Cuando realizo
|
||
|
un contenedor de enfoque cronometrado empiezo escogiendo en qué me
|
||
|
centraré durante el tiempo que durará ese contenedor. Una vez que está
|
||
|
escogida la tarea a realizar, establezco un cronómetro en mi sitio de
|
||
|
trabajo y después me centro en esa tarea con toda mi atención plena
|
||
|
durante resto del tiempo que dure el cronómetro. He tenido buenos
|
||
|
resultados usando 10 minutos pero sesiones de menos tiempo con 5 minutos
|
||
|
o más largas como 30 minutos también pueden ser útiles. La tarea
|
||
|
seleccionada al comienzo del contenedor es la única cosa en la que
|
||
|
trabajo y trato de hacer lo posible para asegurarme de que no haya
|
||
|
interrupciones (ya sean internas o externas) hasta que el contenedor sea
|
||
|
completado. Cuando el trabajo se ha realizado finalizo la tarea con lo
|
||
|
que sea que haya completado, anotando cualquiera de las siguientes
|
||
|
acciones para esa tarea en mi lista de próximas acciones y después me
|
||
|
tomo un descanso rápido (unos 5 minutos) antes de comenzar con el
|
||
|
siguiente contenedor. El siguiente contenedor puede ser una continuación
|
||
|
de la misma tarea o puedo seleccionar otra tarea, pero la idea es
|
||
|
simple: solo me centro en la tarea que tengo delante de mí durante el
|
||
|
tiempo asignado. Cuando mi mente trata de divagar o tengo la tentación
|
||
|
de “únicamente comprobar una cosa”, entonces hago una pausa por un
|
||
|
momento y determino si eso es realmente importante. La mayoría de las
|
||
|
ocasiones no es tan importante y entonces hago una nota rápida para
|
||
|
comprobar lo que sea cuando termine el contenedor.</p>
|
||
|
<p>Podemos utilizar estos contenedores para vencer nuestros deseos de
|
||
|
realizar múltiples tareas al mismo tiempo. Solo nos enfocamos en una
|
||
|
cosa cada vez. También podemos utilizar contenedores para permitir que
|
||
|
la sesión fluya hacia donde quiera llevarnos. Cuando comenzamos un
|
||
|
contenedor no lo comenzamos con la idea de finalizar una tarea en
|
||
|
particular, en vez de eso vemos hacia dónde la sesión quiere llevarnos.
|
||
|
No hay que judgar la calidad del trabajo en el contenedor, solo con la
|
||
|
expectación de que trabajaremos durante la duración del contenedor. No
|
||
|
hay expectativas por el trabajo que vayamos a realizar, solo que
|
||
|
trabajaremos hasta que acabe el contenedor. Si completamos la tarea
|
||
|
antes de que acabe el contenedor ¡eso es genial! Así podremos
|
||
|
seleccionar la tarea para el siguiente contenedor. Si el contenedor
|
||
|
acaba y todavía estamos en medio de una tarea, entonces podemos anotar
|
||
|
qué nos queda y qué pasos vamos a dar para llegar allí. Entonces podemos
|
||
|
seguir trabajando un poco más o podemos tomarnos un rápido descanso y
|
||
|
después regresar al trabajo con un contenedor de enfoque nuevo.</p>
|
||
|
<p>El concepto subyacente del contenedor de enfoque cronometrado, es
|
||
|
aceptar trabajar dentro de los límites del contenedor sin juzgar el
|
||
|
trabajo realizado o el progreso realizado. Cuando realizamos el trabajo
|
||
|
cerramos el contenedor reflejando qué hicimos y dónde necesitamos ir.
|
||
|
Nos damos permiso para no preocuparnos en el momento por nuestro
|
||
|
progreso, pero nos permitimos momentos donde poder revisar nuestro
|
||
|
progreso y anotar cuánto ha progresado nuestro viaje. Nos permitimos la
|
||
|
libertad de trabajar simplemente en el momento sin temor a juicios,
|
||
|
represalias o auto recriminaciones. El contenedor es un regalo de
|
||
|
trabajo ininterrumpido (o al menos todo lo ininterrumpido que podamos
|
||
|
gestionar) que nos damos. Nos hacemos un gran favor al cerrar otros
|
||
|
programas, desactivar las notificaciones y darle a esta tarea toda la
|
||
|
atención que merece.</p>
|
||
|
<p>Te invito a incorporar esta práctica de realizar contenedores
|
||
|
focalizados cada día. Creo que son una excelente manera de darnos
|
||
|
permiso para enfocarnos en una cosa a la vez sin la necesidad de
|
||
|
preocuparnos sobre qué conseguiremos durante la duración del contenedor.
|
||
|
Nos permite enfocarnos en una cosa a la vez y hacerlo ofreciendo lo
|
||
|
mejor de nuestras habilidades. La limitación de trabajar en una cosa a
|
||
|
la vez sin pensar sobre otros aspectos del trabajo que tenemos que hacer
|
||
|
puede ser liberadora y espero que trabajar con estos contenedores te
|
||
|
pueda dar una sensación de lo que se siente al realizar un trabajo
|
||
|
completamente concentrado.</p>
|
||
|
<p>Todo este libro fue creado y editado utilizando esos contenedores de
|
||
|
enfoque. Me llevó unos 10 minutos por contenedor escribir el borrador
|
||
|
inicial y después utilicé contenedores de 10 minutos para editar el
|
||
|
libro. Algunas veces se extendían hasta contenedores de 15 o 20 minutos
|
||
|
pero fue porque estaba tan metido en la materia que no quería parar.
|
||
|
Esto está en contraste con la forma en la que antes realizaba las
|
||
|
tareas. Por lo general, necesito superar el obstáculo inicial de asignar
|
||
|
media hora o más a la tarea. Esto significa que necesito sentir que
|
||
|
tengo suficiente control sobre mi horario para reservar ese tiempo. Como
|
||
|
no tiendo a sentir que tengo ese nivel de control sobre mi horario,
|
||
|
tiendo a postergar la tarea. Con un contenedor de enfoque, pienso para
|
||
|
mí mismo: “Puedo tomarme 10 minutos para trabajar en esto”, que es el
|
||
|
tiempo suficiente para que mi mente no sienta que debería estar haciendo
|
||
|
otra cosa. Con cada contenedor vi gradualmente cómo se desarrollaba el
|
||
|
progreso de este libro. Eso luego retroalimentó mi deseo de seguir
|
||
|
trabajando en este libro, lo que ayudó a reducir la fricción mental para
|
||
|
seguir haciendo los contenedores para trabajar en el libro. Creó un
|
||
|
ciclo de retroalimentación positiva en el que esperaba con ansias la
|
||
|
próxima vez que pudiera hacer el contenedor y trabajar en el libro.</p>
|
||
|
<h2 data-number="5.6" id="distracciones"><span
|
||
|
class="header-section-number">5.6</span> Distracciones</h2>
|
||
|
<p>La vida está llena de distracciones. Muchas son las cosas que
|
||
|
requieren nuestra atención y muchas de esas distracciones están fuera de
|
||
|
nuestro control. Alguien llega a nuestro puesto de trabajo y necesita de
|
||
|
nuestra atención en ese momento. Un tema que hemos tratado por correo
|
||
|
electrónico que pensábamos que estaba resuelto se convierte en una
|
||
|
discusión acalorada y reclama nuestra atención. Algo sucede en casa y
|
||
|
ahora nuestra mente se divide entre preocuparnos por nuestras tareas
|
||
|
laborales o preocuparnos por lo que sucede en casa. Cualquiera que sea
|
||
|
la causa, hay momentos en que nuestra atención no está donde queremos y
|
||
|
nos sentimos atraídos en todas direcciones a la vez.</p>
|
||
|
<p>Es aquí cuando los contenedores son más útiles. Si algo interrumpe el
|
||
|
contenedor podemos determinar si es más importante que el trabajo que
|
||
|
estamos realizando. Si determinamos que es más importante que lo que
|
||
|
estamos haciendo en ese momento podemos detener el contenedor con la
|
||
|
idea de que regresaremos al trabajo una vez que hayamos resuelto la
|
||
|
interrupción. Si la interrupción no es más importante entonces podremos
|
||
|
llegar a un acuerdo (ya sea con quien nos haya interrumpido o con
|
||
|
nosotros mismos) en el que nuestro enfoque necesita estar aquí en el
|
||
|
trabajo hasta que finalice el contenedor. Podremos darle a esa
|
||
|
interrupción toda nuestra atención cuando el contenedor haya acabado. No
|
||
|
necesitamos dividir nuestra atención entre el trabajo y la interrupción,
|
||
|
en vez de eso le daremos a ambos toda nuestra atención a su debido
|
||
|
tiempo.</p>
|
||
|
<p>Este método crea una delimitación simple entre nuestro trabajo y el
|
||
|
resto del mundo, pero solo porque sea simple no quiere decir que sea
|
||
|
sencillo. Mantener esa delimitación entre nuestro trabajo y el mundo que
|
||
|
nos rodea puede ser un reto, especialmente si la cultura en la que te
|
||
|
mueves es la de resultados inmediatos.</p>
|
||
|
<p>No tengo buenas noticias para ti si la cultura en la que trabajas
|
||
|
demanda tu atención todo el tiempo. Lo mejor que puedo ofrecer es un
|
||
|
sucedáneo de contenedor que al menos te pueda ofrecer algunos periodos
|
||
|
de concentración sin distracciones. Si te sientes siempre en tensión
|
||
|
porque algo podría ocurrir en cualquier momento, continuarás siendo
|
||
|
menos efectivo a diferencia de si pudieras silenciar el mundo por un
|
||
|
momento. También te reto a examinar si esa sensación es realmente cierta
|
||
|
¿estás siendo constantemente siendo acechado por interrupciones? Probar
|
||
|
esa teoría puede ser una buena práctica. Mantén un registro (ya sea en
|
||
|
una hoja de papel, un archivo de texto, una hoja de cálculo o una base
|
||
|
de datos, eso depende de tus gustos) de cuando hiciste un contenedor de
|
||
|
atención y si ese contenedor fue interrumpido o no. Si al final
|
||
|
encuentras que está siendo más veces interrumpido que no, entonces
|
||
|
necesitas determinar qué es lo que está causando las interrupciones y
|
||
|
evaluar si es algo que puedes controlar. Hay muchas maneras de manejar y
|
||
|
minimizar las distracciones en el lugar de trabajo en las que no voy a
|
||
|
entrar aquí, pero ser consciente de las distracciones y determinar de
|
||
|
dónde vienen será la clave para saber cómo mitigarlas en el futuro.</p>
|
||
|
<p>Se también consciente de las distracciones auto impuestas que has
|
||
|
añadido a tu vida. ¿Necesitas la notificación inmediata de que a alguien
|
||
|
le ha gustado algo que compartiste? ¿Es la anécdota tan divertida como
|
||
|
para cambiar tu contexto actual para así poder compartirla con tus
|
||
|
amigos o colegas? ¿Realmente necesitas algo que emerja de repente en tu
|
||
|
campo visual, para saber que tu reproductor de música ha cambiado de
|
||
|
canción? ¿Estarías dispuesto a sacrificar tu atención y tu flujo de
|
||
|
trabajo en el día a día porque un programa detectó un cambio en tu
|
||
|
entorno, independientemente de la importancia de ese cambio?</p>
|
||
|
<p>Añadimos estas distracciones en nuestras vidas porque nos preocupa
|
||
|
que nos perdamos algo importante. Los programas también vienen
|
||
|
configurados con sus notificaciones activadas, así el usuario puede
|
||
|
recordar el estado del programa todo el tiempo. Quizás es útil, pero
|
||
|
para mí es muy molesto. En mi vida laboral me he sentado en escritorios
|
||
|
de otras personas y me he sorprendido por el número de notificaciones
|
||
|
que recibían en el periodo que estuve allí (en un lapso de diez minutos
|
||
|
o incluso menos). He visto a personas interrumpir su línea actual de
|
||
|
pensamiento porque una notificación de un mensaje de una cosa que nada
|
||
|
tenía que ver con la tarea actual que desarrollaban les distraía. ¿Qué
|
||
|
pasó con el pensamiento original? Tienen que regresar mentalmente a él y
|
||
|
recordar dónde lo habían dejado, normalmente eso conlleva un gran
|
||
|
esfuerzo mental.</p>
|
||
|
<p>Te reto a desactivar todas las notificaciones que puedas y disfrutar
|
||
|
de la experiencia que es estar sin ellas. Eso puede ser tan simple como
|
||
|
cerrar una aplicación cuando has acabado con ella o puede ser tan
|
||
|
complejo como cambiar la configuración de una aplicación para que no te
|
||
|
notifique cuando llegue un mensaje. Necesitarás probar este método y ver
|
||
|
qué es lo que mejor funciona con tus necesidades y concentración. Una
|
||
|
buena regla general es “¿qué es lo que comprueba esta cosa que es lo
|
||
|
suficientemente importante como para dejar mi importante trabajo y
|
||
|
concentrarme en esta cosa?”. Si puedes valorar tus notificaciones para
|
||
|
que solo las notificaciones más críticas te lleguen en el momento
|
||
|
adecuado entonces disfrutarás de un mayor relax y concentración en tu
|
||
|
trabajo. Así no tendrás que analizar la notificación para determinar si
|
||
|
lo que estás viendo es importante o no.</p>
|
||
|
<p>Una de las razones que he escuchado de compañeros para mantener
|
||
|
activas sus notificaciones es que sienten que podrían recibir algo que
|
||
|
requiriera una respuesta inmediata. Hemos creado una cultura donde
|
||
|
sentimos la necesidad de responder a los mensajes en el momento que los
|
||
|
recibimos. Me atrevería a decir que la mayoría de los mensajes que
|
||
|
recibes durante el día no requieren de la atención que les estás dando y
|
||
|
seguro que tampoco el nivel de atención que justifique la interrupción
|
||
|
que realizas para verlos y responderlos. Sería mejor programar varios
|
||
|
periodos del día en el que no hagas otra cosa que comprobar y responder
|
||
|
a los mensajes. Organiza esto con la frecuencia más baja como puedas.
|
||
|
Algunas personas recomiendan 2 o 3 veces al día, pero incluso
|
||
|
estableciendo un límite donde compruebes tus mensajes una vez a la hora,
|
||
|
puedes conseguir una gran mejora frente a la cantidad de veces que
|
||
|
actualmente compruebas tus mensajes. Necesitarás judgar por ti mismo la
|
||
|
frecuencia con la que comprobar tus mensajes basándote en tus
|
||
|
necesidades y en tu ambiente de trabajo. También considera la persona a
|
||
|
la que estás respondiendo. ¿Tiene sentido darle a esta persona una
|
||
|
respuesta rápida y semi-pensada, o este mensaje requiere más tiempo para
|
||
|
darle vueltas en tu mente antes de responder? Darte tiempo para pensar
|
||
|
en la respuesta puede brindarte información adicional sobre un problema
|
||
|
que podría no ser evidente en el momento. Esto podría significar la
|
||
|
diferencia entre una respuesta bien pensada frente a una avalancha de
|
||
|
tormenta de ideas de ida y vuelta a medio pensar utilizando tu
|
||
|
aplicación de mensajería. Responder a todo inmediatamente es muy
|
||
|
estresante y requiere una gran cantidad de atención que podría
|
||
|
utilizarse mejor en tu trabajo de programación.</p>
|
||
|
<p>Puede parecer desafiante y extraño vivir sin notificaciones y sin la
|
||
|
necesidad de responder a cada mensaje y notificación, pero nuestra
|
||
|
atención es finita y limitada. Mantener el enfoque a lo largo del día es
|
||
|
desafiante y estresante. Si podemos limitar la cantidad de distracciones
|
||
|
que recibimos a lo largo del día, nos daremos la libertad de no tener
|
||
|
que trabajar tanto para mantener nuestra atención en sintonía con
|
||
|
nuestras tareas de programación. Podemos decir “ahora no” a nuestras
|
||
|
distracciones y resolverlas en un momento más apropiado.</p>
|
||
|
<h1 data-number="6" id="el-mapa-no-es-el-territorio"><span
|
||
|
class="header-section-number">6</span> El mapa no es el territorio</h1>
|
||
|
<h2 data-number="6.1"
|
||
|
id="el-panorama-cambiante-de-la-programación"><span
|
||
|
class="header-section-number">6.1</span> El panorama cambiante de la
|
||
|
programación</h2>
|
||
|
<p>La única constante en el campo de la programación, es que siempre
|
||
|
está en constante cambio. Los lenguajes de programación llegan a tener
|
||
|
mucho renombre y después desaparecen con el paso del tiempo. Lo que una
|
||
|
vez fue tomado como un hecho ahora está considerado obsoleto (o incluso
|
||
|
“considerado dañino” como señalan algunos ensayos).</p>
|
||
|
<p>Cuando me gradué en la universidad, aprendí Pascal, Modula2 y Ada.
|
||
|
Desafortunadamente esos lenguajes empezaron a decaer en popularidad en
|
||
|
favor de C. Cuando comencé en mi primer trabajo de programación como
|
||
|
“profesional”, Perl era el lenguaje de elección (en parte porque Perl
|
||
|
podía ser transformado de manera sencilla en scripts CGI de la época y
|
||
|
era considerado superior a herramientas para realizar scripts como
|
||
|
<code>awk</code> y los tradicionales scripts para la shell). En el
|
||
|
momento de escribir esto estoy utilizando Python como mi lenguaje de
|
||
|
desarrollo principal y preveo que tendré que buscar otros lenguajes de
|
||
|
programación para expandir mi carrera como programador.</p>
|
||
|
<p>Programar requiere flexibilidad. Es difícil aprender solo una manera
|
||
|
de hacer las cosas y mantener eso de manera relevante durante 20 años.
|
||
|
Recuerda cual era la tecnología actual hace 20 años y no tendrás ninguna
|
||
|
duda en darte cuenta que las cosas eran bastante diferentes entonces. Si
|
||
|
quieres poner en práctica un ejercicio divertido, busca artículos
|
||
|
describiendo la tecnología puntera de hace 20 años y ver en ellos cuanto
|
||
|
de aquello reconoces.</p>
|
||
|
<h2 data-number="6.2" id="aprender-a-aprender"><span
|
||
|
class="header-section-number">6.2</span> Aprender a aprender</h2>
|
||
|
<p>Aprender metodologías y tecnologías específicas no es una buena
|
||
|
estrategia a largo plazo para los programadores. Es más recomendable si
|
||
|
aprendemos a aprender y, lo que es más importante, cómo aprendemos
|
||
|
nosotros mismos. Eso suena simple: una vez que hayamos descifrado cómo
|
||
|
aprender de manera efectiva, seremos programadores efectivos.
|
||
|
Desafortunadamente, no existe una manera infalible de aprender que
|
||
|
funcione para todas las personas. Personas diferentes, aprenden de
|
||
|
maneras diferentes. Todos tenemos estilos de aprendizaje que funcionan
|
||
|
mejor cuando se enfatizan ciertas cosas. Algunas personas aprenden mejor
|
||
|
en el aula de una clase, mientras que otras aprenden mejor con el
|
||
|
estudio auto dirigido (libros, grabaciones de vídeo, etc.). Algunas
|
||
|
pueden leer un libro y entender perfectamente la materia, mientras que
|
||
|
otras pueden necesitar enfoques más visuales. Si tienes el lujo de poder
|
||
|
probar varias metodologías diferentes para aprender, te animo a que uses
|
||
|
todas las que puedas para descubrir cuál funciona mejor en tu caso.
|
||
|
Comprender lo que funciona para ti, será clave para ayudarte a progresar
|
||
|
y crecer.</p>
|
||
|
<p>He encontrado que algunos principios sencillos funcionan mejor en mi
|
||
|
caso. El primero es la repetición. Aprendo mejor cuando hago algo de
|
||
|
manera diaria, una y otra vez, en pequeñas dosis. La segunda manera es
|
||
|
teniendo una pequeña meta que pueda conseguir. Así que para mí tener una
|
||
|
práctica diaria en un proyecto donde pueda trabajar y conseguir un
|
||
|
objetivo es lo que mejor me funciona. Cuando estaba aprendiendo Python
|
||
|
me uní a la PyWeek, una competición de una semana de duración de
|
||
|
programación de un juego, donde el tema a tratar se anuncia al comienzo
|
||
|
y toda la programación transcurre en una semana. Durante esa semana
|
||
|
entera encontré tiempo para completar mi juego y al final de la semana
|
||
|
había aprendido más sobre Pygame (la biblioteca que utilicé para mi
|
||
|
juego) y Python que lo que había conseguido en semanas anteriores al
|
||
|
PyWeek. Realizar una semana de duración de esta <em>game jam</em> (como
|
||
|
lo llaman) es un poco extremista, pero me dio un objetivo claro (un
|
||
|
juego funcional completo) y un tiempo dedicado para conseguirlo (una
|
||
|
semana). Con el paso del tiempo he aprendido más sobre Python con varios
|
||
|
proyectos (tanto profesionales como personales) que tenían una práctica
|
||
|
diaria y objetivos claramente definidos.</p>
|
||
|
<p>Necesitarás experimentar para ver qué es lo que mejor funciona en tu
|
||
|
caso. El principio que subyace es que el proceso de aprender debería ser
|
||
|
algo que tu puedas utilizar para cualquier lenguaje o concepto en
|
||
|
programación. También debe ofrecer la menor cantidad de resistencia a su
|
||
|
aprendizaje. Tu capacidad para aprender y adaptarte será vital para tu
|
||
|
experiencia como programador, así que entender tu propio proceso de
|
||
|
aprendizaje y qué funciona mejor en tu caso te ayudará en este
|
||
|
proceso.</p>
|
||
|
<p>Como mínimo, reserva 10 minutos al día para un contenedor (consulta
|
||
|
el capítulo anterior) para una lectura y el aprendizaje enfocados. Hay
|
||
|
mucho que aprender en programación y crear un hábito de aprendizaje te
|
||
|
ayudará a mantenerte al día. Recuerda, sin embargo, mantener tu
|
||
|
aprendizaje contenido en pequeños fragmentos. Mucha información puede
|
||
|
abrumarte y hacerte pensar que no puedes aprenderlo todo. Tienes razón,
|
||
|
no puedes aprenderlo todo de una sola vez. Si alguien te dijera que
|
||
|
bebieras uno de los Grandes Lagos de una sola vez, sería difícil
|
||
|
completar la tarea (nota: ¡no intentes esto!). Sin embargo, si llenaras
|
||
|
un vaso de agua varias veces al día de uno de los Grandes Lagos y lo
|
||
|
bebieras (10 minutos cada vez), comenzarías a hacer una mella apreciable
|
||
|
en la reducción de ese lago a lo largo de tu vida. (Claro, puede que no
|
||
|
parezca mucho desde el exterior, pero ese es el cruce donde la realidad
|
||
|
y las metáforas se rompen).</p>
|
||
|
<p>Cada día tienes una oportunidad de aprender sobre más sobre
|
||
|
ordenadores y su programación. Realizar una pequeña parte cada día para
|
||
|
aprender un poco más, te ayudará en tu viaje.</p>
|
||
|
<h2 data-number="6.3" id="cómo-escoger-qué-aprender"><span
|
||
|
class="header-section-number">6.3</span> Cómo escoger qué aprender</h2>
|
||
|
<p>Hay muchas oportunidades para aprender, ya sea mediante libros,
|
||
|
tutoriales, vídeos o cursos a distancia con tu ordenador. También hay
|
||
|
una gran variedad de temas sobre los que aprender. ¿Cómo decides qué es
|
||
|
lo más importante para aprender? ¿Cómo gestionas lo que estás
|
||
|
aprendiendo? ¿Cómo conseguir evitar sentirse abrumado con las opciones
|
||
|
disponibles?</p>
|
||
|
<p>Esto nos vuelve al tema de centrarse en una cosa cada vez y entender
|
||
|
cómo aprendes de una manera eficiente. Esta retroalimentación te ayudará
|
||
|
a decidir qué será lo próximo a aprender. Una manera puede ser pensando
|
||
|
en las cosas que más te apasionan ahora mismo, ¿qué te motiva en este
|
||
|
momento? Si hay algo por lo que estás ansioso por aprender empieza por
|
||
|
eso. Si tienes múltiples cosas que te apasionan o te interesan entonces
|
||
|
colócalos en una lista y observa si estás más interesado en unos temas
|
||
|
que en otros. Si aún tienes problemas para decidir de los temas de la
|
||
|
lista entonces escoge uno al azar (lanza un dado o crea un generador de
|
||
|
números aleatorios para seleccionar uno, eso podría ser en sí mismo un
|
||
|
proyecto).</p>
|
||
|
<p>Si tienes problemas para pensar en algo para aprender y estás
|
||
|
luchando para encontrar un elemento que te resulte interesante, entonces
|
||
|
date permiso para navegar por la red y encontrar qué hay disponible.
|
||
|
Observa las conversaciones de otros programadores y descubre de qué
|
||
|
están hablando. Acude a una reunión de programadores para seguir las
|
||
|
discusiones de lo que están hablando. O, si realmente estás atascado,
|
||
|
explora algunas listas de ofertas de trabajos para averiguar qué es lo
|
||
|
que buscan las personas que ofrecen trabajo y observa si algo de eso te
|
||
|
despierta algún interés.</p>
|
||
|
<p>Esto no trata de escoger lo más útil o la cosa más importante, aunque
|
||
|
tu situación actual puede hacer que algunos temas tengan más relevancia
|
||
|
sobre otros, se trata de averiguar qué capta tu atención y dónde
|
||
|
enfocarte. No te preocupes con realizar la elección perfecta que te
|
||
|
proporcionará tu siguiente trabajo o impulsará tu carrera. Este
|
||
|
ejercicio trata sobre hacer una elección para aprender algo interesante
|
||
|
y que te enganche el tiempo suficiente para aprender más sobre ello.</p>
|
||
|
<p>Una vez que hayas escogido qué quieres aprender es el momento de
|
||
|
centrarte en aprenderlo. Si tienes una metodología preferida (libros,
|
||
|
vídeos, tutoriales, clases, etc) entonces dedica un tiempo (no más de
|
||
|
una hora) a buscar qué recursos hay disponibles. Algunos temas tienen
|
||
|
recursos disponibles para los principiantes que enumeran las cosas que
|
||
|
la comunidad cree que son útiles para los programadores que están
|
||
|
empezando, mientras que para otros puede ser necesario preguntar a la
|
||
|
comunidad por dónde comenzar. A menudo algo tan simple como un tutorial
|
||
|
puede ser una buena manera de comenzar con este ejercicio.</p>
|
||
|
<p>¡Si puedes encontrar algunos recursos en un corto periodo de tiempo
|
||
|
será genial! Comienza tu proceso de aprendizaje con esos recursos. No te
|
||
|
preocupes si son los recursos adecuados o quizás te lleven por un camino
|
||
|
equivocado, simplemente comienza con ellos y ya los evaluarás más tarde.
|
||
|
Por ahora es más interesante simplemente comenzar.</p>
|
||
|
<p>Una de las trampas en la que soy culpable de caer, es en tratar de
|
||
|
encontrar los mejores recursos para aprender un tema. Paso horas
|
||
|
buscando el libro perfecto, los vídeos adecuados, los cursos idóneos, lo
|
||
|
que sea, trato de encontrar los mejores materiales disponibles. Quiero
|
||
|
reducir la cantidad de comienzos en falso cuando aprendo de un tema.
|
||
|
Esto que parece una una búsqueda correcta (después de todo, ¿por qué no
|
||
|
ibas a querer los mejores materiales que haya disponibles?) es una
|
||
|
trampa que puede llevarte a pasar más tiempo buscando sobre cómo estás
|
||
|
aprendiendo en vez de estar ya aprendiendo. Incluso peor, si el material
|
||
|
comienza a confundirte (lo que es altamente probable cuando estás
|
||
|
aprendiendo algo nuevo) pasarás tu tiempo de aprendizaje pensando si
|
||
|
escogiste la decisión adecuada escogiendo este material. Te preguntarás
|
||
|
si escogiste el material idóneo y continuarás buscando el mejor material
|
||
|
(quizás esas buenas y excelentes críticas realmente no sabían después de
|
||
|
todo de lo que estaban hablando). Esto disminuye tu habilidad para
|
||
|
aprende sobre el tema porque estás más enfocado en tratar de discernir
|
||
|
la calidad de lo enseñado y no en dedicar tiempo en la enseñanza
|
||
|
actual.</p>
|
||
|
<p>Después de unos días de sesiones prácticas date la oportunidad de
|
||
|
comprobar y ver cómo estás aprendiendo. ¿Te sientes atraído o no estás
|
||
|
disfrutando de esto? Si no te sientes atraído (el material no está
|
||
|
organizado, el instructor es confuso, los ejemplos no funcionan, el
|
||
|
material asume que ya estás familiarizado con otro tema, etc) entonces
|
||
|
date permiso para buscar un material mejor o un tema diferente que te
|
||
|
interese más. Incluso si la experiencia de aprendizaje no fue óptima,
|
||
|
tendrás una mejor idea de lo que buscar cuando escojas algo nuevo.
|
||
|
Tendrás un conocimiento de cuales son tus lagunas con este tema y
|
||
|
tendrás un mejor conocimiento de lo que estás buscando en los materiales
|
||
|
de aprendizaje.</p>
|
||
|
<p>Si encuentras que el tema que estás tratando de aprender ya no te
|
||
|
interesa, date un momento para reflexionar sobre el motivo de esto. ¿Es
|
||
|
un tema complicado? ¿Te sientes preparado para ese tema? ¿Estás
|
||
|
actualmente sobrecargado con otros proyectos y te sientes cansado para
|
||
|
abordar este tema? A veces creemos que estamos preparados para aprender
|
||
|
sobre un tema, solo para darnos cuenta que hay algo más que necesitamos
|
||
|
saber antes de poder entender por completo ese tema. Está bien buscar
|
||
|
recursos adicionales y enfocarte en ellos antes de abordar este tema.
|
||
|
Simplemente se consciente de tus luchas y tu diálogo interno. Se honesto
|
||
|
contigo mismo sobre el motivo por el que quieres cambiar a algo
|
||
|
diferente. Obsérvate en la dificultad y se consciente si estás queriendo
|
||
|
huir porque es difícil o si realmente no estás preparado para ello o no
|
||
|
estás interesado en este tema. Observa si puedes ahondar más con la
|
||
|
dificultad y siente cuándo comienzas a sentirte sobrepasado por ella.
|
||
|
Date permiso para apegarte a la dificultad tanto como puedas y presta
|
||
|
atención a tus sentimientos e impulsos mientras practicas con ella.</p>
|
||
|
<p>Trata tu aprendizaje como un proceso iterativo, con periodos
|
||
|
regulares en los que comprobar tu progreso. Piensa en cómo te sientes
|
||
|
cuando estás aprendiendo. ¿Te sientes emocionado y comprometido o te
|
||
|
sientes cansado y retraído? ¿Procrastinas cuando piensas en este tema?
|
||
|
¿Cuando te centras en tu aprendizaje tu mente divaga? Se consciente de
|
||
|
estos sentimientos a medida que ocurren durante la sesión centrada y
|
||
|
reflexiona sobre ellos cuando pienses en tu proceso de aprendizaje. Más
|
||
|
tarde puedes reflexionar sobre estos sentimientos y ver los patrones en
|
||
|
tu proceso de aprendizaje. Si te sientes cansado mientras estás
|
||
|
aprendiendo podrías intentar cambiar cuando realizas tus sesiones de
|
||
|
aprendizaje. Quizás necesites dormir más o necesites encontrar otros
|
||
|
materiales que sean más estimulantes. Si te sientes abrumado quizás
|
||
|
necesites empezar con algo más básico antes de afrontar este proyecto
|
||
|
más difícil. Si estás confundido quizás haya alguien a quien puedas
|
||
|
plantearle preguntas para obtener más claridad sobre el tema. Estas
|
||
|
respuestas pueden no ser evidentes mientras estás en viviendo ese
|
||
|
momento (quizás estás muy ocupado sintiéndote frustrado para entender de
|
||
|
dónde viene esa frustración), pero con la práctica tendrás más recursos
|
||
|
para observar tus sentimientos. Cuando eres consciente de estos
|
||
|
sentimientos podrás usarlos para aprender cómo funciona tu mente y
|
||
|
entender qué necesita para mantenerte comprometido con tu
|
||
|
aprendizaje.</p>
|
||
|
<h2 data-number="6.4" id="resistencia-y-el-contenedor"><span
|
||
|
class="header-section-number">6.4</span> Resistencia y el
|
||
|
contenedor</h2>
|
||
|
<p>Cada vez que aprendemos cosas nuevas nos colocamos en un lugar
|
||
|
vulnerable e incómodo. Tomamos las cosas con las que estamos
|
||
|
familiarizados y las aplicamos a medida que nos adentramos en nuevos
|
||
|
territorios. Nos volvemos inseguros con el resultado, ¿será un éxito o
|
||
|
será un fracaso? ¿Será este tema difícil de aprender? ¿Nos ayudará o nos
|
||
|
perjudicará? ¿Hemos escogido la opción equivocada para aprender y eso
|
||
|
nos costará oportunidades a largo plazo?</p>
|
||
|
<p>La incomodidad y la incertidumbre son sin duda una parte del
|
||
|
aprendizaje, pero en vez de pensar en ellas como algo a ser evitado
|
||
|
pensemos en ellas como faros. Unas balizas que nos indica el camino y
|
||
|
nos iluminan cuando estamos en territorios desconocidos. Cuando nos
|
||
|
sentimos inseguros sobre lo que estamos haciendo, ese sentimiento
|
||
|
significa que estamos entrando en un nuevo territorio. En vez de
|
||
|
evitarlo o desear comodidad, podemos disfrutar por estar en un
|
||
|
territorio desconocido y sentir esas breves punzadas de miedo y duda.
|
||
|
Podemos decir: “Voy a aprender algo nuevo. Estoy asustado y no sé dónde
|
||
|
me llevará esto, pero está bien. Estoy dispuesto a ver a dónde lleva
|
||
|
esto y disfrutar del viaje.”</p>
|
||
|
<p>Estamos condicionados a pensar en lo desconocido como algo a lo que
|
||
|
temer. Estas emociones nos han sido útiles. Nos han impedido
|
||
|
aventurarnos demasiado de nuestra zona de confort y explorar lo
|
||
|
desconocido. Cuando vives en un bosque o en cuevas, lo desconocido puede
|
||
|
albergar todo tipo de peligros. Tiene sentido no provocar esos peligros
|
||
|
apareciendo delante de sus puertas. Pero programar no es lo mismo que
|
||
|
aventurarse en un bosque oscuro o asomarse a una cueva húmeda, programar
|
||
|
apenas conlleva la cantidad de peligro que le otorgamos. En vez de eso,
|
||
|
debemos darnos cuenta que no estamos en ningún peligro mortal. Nuestros
|
||
|
miedos simplemente nos están haciendo saber que estamos aventurándonos
|
||
|
en los territorios inexplorados de la ignorancia. Depende de nosotros
|
||
|
dar a conocer a nuestros miedos que esto está bien y que al explorar
|
||
|
estos territorios solo encontraremos conocimiento.</p>
|
||
|
<p>Steven Pressfield en <em>La guerra del arte</em> denominó a estos
|
||
|
sentimientos como “Resistencia”. Considera la Resistencia como una
|
||
|
especie de ser mitológico que vive en cada uno de nosotros para frustrar
|
||
|
los actos creativos. A medida que el trabajo progresa la Resistencia
|
||
|
aumenta la presión para detenernos introduciendo los sentimientos de
|
||
|
miedo y ansiedad que he mencionado anteriormente. Pienso en la
|
||
|
Resistencia como algo que también ocurre cuando estamos aprendiendo,
|
||
|
especialmente si estamos aprendiendo sobre herramientas que nos ayudan
|
||
|
en nuestras actividades creativas. Pressfield limitó su definición a las
|
||
|
personas creativas que estaban trabajando para finalizar un trabajo
|
||
|
creativo (libros, pinturas, juegos, etc.) pero yo estoy expandiendo su
|
||
|
definición al propio proceso de aprendizaje. En nuestro caso la
|
||
|
Resistencia aparece cuando estamos aprendiendo las herramientas que nos
|
||
|
ayudarán a ser más creativos. La Resistencia es lo que nos dice que no
|
||
|
somos suficientemente buenos para aprender esas cosas, o cuando estamos
|
||
|
inseguros sobre los beneficios que nos acarreará. Trata de mantenernos
|
||
|
seguros con lo que ya conocemos.</p>
|
||
|
<p>Este es el motivo por lo que el “contenedor focalizado” es tan
|
||
|
importante: nos da pequeñas dosis de incomodidad y dificultad en
|
||
|
porciones manejables. Podemos guiarnos a través de pequeñas cantidades
|
||
|
de incomodidad diarias y seguir aprendiendo a pesar de nuestra
|
||
|
incomodidad. Nos ayuda a trabajar a pesar de nuestra tendencia a evitar
|
||
|
y ocultar situaciones difíciles. Si nos centramos en una sola cosa cada
|
||
|
vez podemos mantenernos apartados de las distracciones sobre si esta es
|
||
|
o no la cosa en la que deberíamos estar trabajando. Lo que sea en lo que
|
||
|
estemos trabajando en este momento es exactamente en lo que deberíamos
|
||
|
estar trabajando. Cualquiera que sea el material de aprendizaje que
|
||
|
tengamos delante es lo que deberíamos estar aprendiendo. Podemos estar
|
||
|
seguros de saber que todo lo que estamos haciendo durante la duración
|
||
|
del contenedor es exactamente lo que debería de ser. Cuando finalice el
|
||
|
contenedor podemos volver a evaluar cómo fue y qué retos se presentan
|
||
|
por delante.</p>
|
||
|
<h2 data-number="6.5" id="trazado-de-objetivos-a-largo-plazo"><span
|
||
|
class="header-section-number">6.5</span> Trazado de objetivos a largo
|
||
|
plazo</h2>
|
||
|
<p>A medida que progresas en tu proceso de aprendizaje empezarás a ver
|
||
|
que muchas de las cosas que llamamos programación están interconectadas.
|
||
|
Los lenguajes de programación se prestan muchas cosas unos a otros y las
|
||
|
ideas que parecían nuevas e innovadoras tienen sus raíces en conceptos
|
||
|
que se remontan a los orígenes de la computación. En vez de disuadirnos,
|
||
|
esto debería animarnos a abrir las puertas de la programación
|
||
|
aprendiendo conceptos simples y transferibles. La pregunta es ¿cuales
|
||
|
son?</p>
|
||
|
<p>La respuesta más simple es “todos ellos”, pero eso es difícil de
|
||
|
satisfacer o imposible. Una respuesta menos descarada sería “los
|
||
|
suficientes para empezar a ver cómo surgen patrones” pero eso suena más
|
||
|
a una idea de perogrullo que a algo que podamos utilizar para comenzar a
|
||
|
realizar nuestras metas a largo plazo para el aprendizaje.</p>
|
||
|
<p>En vez de darte un consejo específico sobre qué conceptos te serán
|
||
|
más útiles en tu búsqueda de llegar a ser un programador mejor, voy a
|
||
|
sugerirte una técnica que podría ayudarte a identificar lo que podría
|
||
|
ayudarte.</p>
|
||
|
<p>Los lenguajes de programación mencionarán conceptos que comparten.
|
||
|
Cada vez que estés aprendiendo y veas una mención a alguno de estos
|
||
|
conceptos, haz una nota de ello y siguen enfocado en lo que estás
|
||
|
aprendiendo ahora. Cuando hayas completado el periodo de aprendizaje
|
||
|
diario, revisa la lista de estos otros conceptos y haz una búsqueda para
|
||
|
ver qué muestran. Si hay otras cosas que aparecen entonces escríbelas en
|
||
|
tu lista. Estos conceptos podrían no tener sentido en el momento pero
|
||
|
tener una lista disponible y a los que se refieran podría ayudarte a
|
||
|
hacer conexiones sobre programación que podrías no haber notado de otra
|
||
|
manera.</p>
|
||
|
<p>Cuando aprendí JavaScript me dí cuenta que alguien mencionaba que
|
||
|
JavaScript derivaba de otros lenguajes como Scheme. Scheme es un
|
||
|
lenguaje funcional basado en Lisp y que fue creado como lenguaje de
|
||
|
enseñanza para programación funcional y recursividad. Así que tomé un
|
||
|
pequeño rodeo para aprender Scheme, personalmente porque me era más
|
||
|
interesante que JavaScript. Llámalo “procrastinación activa”, si te
|
||
|
sientes benévolo. Lo que aprendí mientras aprendí Scheme, motivó mi
|
||
|
interés en otros lenguajes funcionales y la programación funcional. Esto
|
||
|
a cambio me ayudó a entender algunos paradigmas de la programación
|
||
|
funcional que se estaban convirtiendo muy populares en Python (listas de
|
||
|
comprensiones, lambdas, etc). Al tomar un breve rodeo en mi aprendizaje
|
||
|
de JavaScript aprendí más sobre toda una familia de lenguajes y ahora
|
||
|
siento que entiendo JavaScript y Python con una mayor claridad que
|
||
|
cuando empecé.</p>
|
||
|
<p>No estoy sugiriendo que todo el mundo debería seguir los pasos de la
|
||
|
“procrastinación activa” como hice yo (mientras escribo esto, todavía
|
||
|
estoy en el proceso de aprender JavaScript), pero ayuda el realizar
|
||
|
notas de los conceptos que vas encontrando y ahondar un poco más en
|
||
|
ellos.</p>
|
||
|
<p>Esta es una manera de trazar los objetivos del aprendizaje (darse
|
||
|
cuenta de las otras conexiones que aparecen mientras estás aprendiendo y
|
||
|
ser curioso sobre cómo interactúan entre ellas), pero quizás necesitas
|
||
|
una técnica diferente. Quizás estás bajo presión para aprender algo que
|
||
|
te mantenga en el mercado laboral o necesites adquirir algún
|
||
|
conocimiento para tu trabajo que necesita ser aprendido rápidamente.
|
||
|
¿Cómo trazas esas metas?</p>
|
||
|
<p>La presión de aprender rápidamente puede hacer que cualquier tarea
|
||
|
parezca insuperable, especialmente si no sabes cuál es la mejor manera
|
||
|
de proceder. Es posible que sientas la tentación de apresurarte en este
|
||
|
proceso y confiar en retener el conocimiento que has aprendido. Este
|
||
|
enfoque no conduce a la comprensión, conduce al estrés y al agotamiento.
|
||
|
El enfoque que estoy esbozando está diseñado para ayudarte a aprender
|
||
|
cómo aprender. La mejor forma de aprender algo rápidamente es entender
|
||
|
cómo encajan otros conceptos con lo que estás aprendiendo. Esto es
|
||
|
genial cuando tienes experiencia con muchos lenguajes y conceptos
|
||
|
diferentes, pero para aquellos que aún no tienen mucha experiencia, se
|
||
|
sentirán como si estuvieran tratando de empujar un elefante a través de
|
||
|
un pequeño embudo. Aquí es donde te ayudará practicar el aprendizaje
|
||
|
todos los días. Te ayudará a dividir los objetivos de aprendizaje más
|
||
|
grandes en partes más pequeñas y te ayudará a reconocer el miedo y la
|
||
|
incomodidad por lo que realmente son: el reconocimiento de que estás
|
||
|
expandiendo tus habilidades a un nuevo territorio.</p>
|
||
|
<p>Las metas a largo plazo son simplemente metas que deben ser divididas
|
||
|
en metas a corto plazo. Enfocarse en metas a corto plazo y permitirte
|
||
|
corregir el rumbo y seguir algunas conexiones cuando sea necesario.</p>
|
||
|
<h2 data-number="6.6" id="fracaso-y-aprendizaje"><span
|
||
|
class="header-section-number">6.6</span> Fracaso y aprendizaje</h2>
|
||
|
<p>Una de las cosas a las que tememos cuando estamos aprendiendo, es al
|
||
|
fracaso. Nos preocupamos porque no aprender el tema rápidamente o al
|
||
|
completo. Escogemos material que comienza de manera simple pero luego se
|
||
|
vuelve muy complejo, y luchamos por mantener el ritmo. Intentamos
|
||
|
escribir código de ejemplo en nuestros editores y nos encontramos
|
||
|
necesitando ayuda para que funcionen. No logramos comprender el material
|
||
|
y nos preguntamos si alguna vez aprenderemos lo que estamos tratando de
|
||
|
aprender.</p>
|
||
|
<p>El fracaso es parte del aprendizaje. Si ya conocieras la materia no
|
||
|
estarías aprendiendo.</p>
|
||
|
<p>Una de las razones para aprender practicando utilizando los
|
||
|
contenedores, es porque así nos damos esos breves momentos de fracaso y
|
||
|
repetición. La repetición es como mejoramos en cualquier cosa que
|
||
|
estemos aprendiendo. El fracaso nos permite corregir el curso de nuestro
|
||
|
aprendizaje para que podamos determinar la mejor manera de abordar esto
|
||
|
la próxima vez que hagamos un intento.</p>
|
||
|
<p>A menudo sentimos que el fracaso es algo que debemos evitar, pero
|
||
|
mientras estamos aprendiendo es inevitable. Nuestro proceso de
|
||
|
aprendizaje requiere que fallemos para mejorar en lo que estamos
|
||
|
aprendiendo. Ese es el objetivo del aprendizaje: volver a moldear
|
||
|
nuestros cerebros para que finalmente puedan comprender los conceptos
|
||
|
que estamos tratando de aprender.</p>
|
||
|
<p>Parte del aprendizaje es tener la mentalidad correcta para aprender.
|
||
|
En lugar de sentir que estás constantemente fallando y luchando por
|
||
|
mantenerte al día, es posible que desees abordarlo con una perspectiva
|
||
|
diferente. En lugar de pensar “No puedo hacer esto. Es demasiado
|
||
|
difícil”, acércate a ello con una mirada más curiosa “Todo esto es nuevo
|
||
|
para mí. Es por eso que estoy practicando para aprender esto”. Darte una
|
||
|
mentalidad más positiva te ayudará a evitar que te rindas cuando tengas
|
||
|
problemas con el material.</p>
|
||
|
<h2 data-number="6.7"
|
||
|
id="callejones-sin-salida-y-topografía-cambiante"><span
|
||
|
class="header-section-number">6.7</span> Callejones sin salida y
|
||
|
topografía cambiante</h2>
|
||
|
<p>A veces nos encontraremos a nosotros mismos aprendiendo algo que es
|
||
|
un callejón sin salida. Observamos nuestro progreso y no vemos una
|
||
|
mejora real. No encontramos el tema tan atractivo o excitante como
|
||
|
habíamos imaginado. Nos damos cuenta que lo que estamos aprendiendo es
|
||
|
un callejón sin salida evolutivo en el campo de la programación. ¿Ahora
|
||
|
qué?</p>
|
||
|
<p>Parte de nuestro proceso de aprendizaje es entender que nuestras
|
||
|
expectativas sobre cómo algo evolucionará pueden ser completamente
|
||
|
diferentes a cómo las cosas evolucionan de verdad. Visionamos toda clase
|
||
|
de recompensas y clichés que nunca llegan. ¿Significa eso que estamos en
|
||
|
un callejón sin salida? Yo creo que no. Podría suceder que lo que
|
||
|
esperábamos que íbamos a hacer con nuestro recién adquirido conocimiento
|
||
|
no está funcionando. Podríamos encontrar que nuestras expectativas sobre
|
||
|
lo rápido que íbamos a aprender el tema no se están cumpliendo. También
|
||
|
incluso podríamos esperar que nuestra carrera profesional se iba a ver
|
||
|
respaldada por el tema de aprendizaje, pero el mercado de trabajo aún no
|
||
|
ha reconocido nuestras recién adquiridas habilidades con ofertas de
|
||
|
trabajo o más dinero.</p>
|
||
|
<p>Nuestro compromiso está relacionado con nuestras expectativas. La
|
||
|
programación requiere una cierta cantidad de diversión y recompensa y si
|
||
|
no encontramos la experiencia divertida y gratificante entonces es poco
|
||
|
probable que queramos continuando seguir aprendiendo sobre ese tema.
|
||
|
Nuestras mentes están esperando algo más que nos atraiga y comenzamos a
|
||
|
anhelar cualquier otra cosa en vez de continuar con el proceso de
|
||
|
aprendizaje. Después de todo ¿no deberíamos estar disfrutando de esto?
|
||
|
Si no hay compromiso y no disfrutamos, entonces el aprendizaje se
|
||
|
convierte en una losa. Nos distraemos más fácilmente mientras estamos
|
||
|
intentando aprender y nuestras mentes se dispersan en vez de enfocarse
|
||
|
en nuestra experiencia de aprendizaje.</p>
|
||
|
<p>También está el problema de aprender sobre temas que son callejones
|
||
|
sin salida evolutivos. El mundo de la informática está lleno de restos
|
||
|
de tecnologías y metodologías que ya no son relevantes o están
|
||
|
consideradas “pasadas de moda”. Lo que una vez fue algo vanguardista
|
||
|
ahora está considerado moribundo y la comunidad creada alrededor de esa
|
||
|
tecnología o metodología se pasa a nuevas tecnologías o metodologías y
|
||
|
abandona su trabajo previo como un pueblo fantasma tecnológico. Cuando
|
||
|
mencionamos que estamos aprendiendo sobre esos temas, caen sobre
|
||
|
nosotros miradas curiosas de otros desarrolladores: “¿Por qué aprender
|
||
|
sobre eso? Hemos cambiado a esta otra cosa”. Es como si hubiéramos oído
|
||
|
que hay una fiesta y cuando llegamos a la fiesta, solo vemos a las
|
||
|
personas que están recogiendo la basura y desmontando la mesa y las
|
||
|
sillas. Nos sentimos como si nos hubiéramos perdido la mejor parte y nos
|
||
|
preguntamos si tiene sentido seguir hacia adelante o encontrar otro
|
||
|
tema.</p>
|
||
|
<p>Todo esto puede plantear sus propios problemas para aprender, pero
|
||
|
depende de nosotros tener una visión más crítica de por qué empezamos
|
||
|
todo este proceso de aprendizaje. ¿Qué nos trajo hasta aquí?</p>
|
||
|
<p>En cada uno de estos casos trajimos nuestras expectativas de cómo
|
||
|
progresaría el aprendizaje. Trajimos la expectativa de que siempre sería
|
||
|
divertido, atractivo y relevante. A veces nuestras expectativas de
|
||
|
aprendizaje se cumplen, pero cuando no lo hacen nos sentimos sin ánimos
|
||
|
y decepcionados.</p>
|
||
|
<p>En vez de sentirnos incómodos sobre cómo nuestras expectativas de
|
||
|
aprendizaje con esta tecnología o metodología no se están cumpliendo,
|
||
|
podemos adoptar un enfoque más consciente. Nos podemos observar a
|
||
|
nosotros mismos en nuestros momentos de aprendizaje y notar si estamos
|
||
|
tratando de aportar más que únicamente una atención focalizada al
|
||
|
contenedor de aprendizaje. Podemos ser conscientes de que aprender está
|
||
|
relacionado con cambiarnos a nosotros mismos y el cambio no siempre es
|
||
|
divertido, atrayente o placentero. Podemos dejar a un lado nuestras
|
||
|
expectativas y concentrarnos en el propio aprendizaje.</p>
|
||
|
<p>Eso no significa que no debamos ser conscientes de nuestros
|
||
|
sentimientos. Sin duda deberíamos reconocer sentimientos como
|
||
|
aburrimiento, ansiedad, desilusión, etc. Pero también deberíamos ser
|
||
|
conscientes de dónde se originan esos sentimientos. ¿Estamos realmente
|
||
|
aburridos o es solo nuestra mente tratando de decir que debemos parar
|
||
|
para así poder hacer algo más divertido? ¿No nos apasiona este material
|
||
|
porque no lo encontramos relevante o nos estamos simplemente
|
||
|
distrayendo? ¿Es esto realmente un callejón sin salida en nuestro
|
||
|
aprendizaje o simplemente nos estamos sintiendo atascados? Identifica
|
||
|
cuándo aparece el sentimiento y se curioso sobre lo que originó el
|
||
|
sentimiento. Nota cuándo obtienes ese sentimiento y dónde lo sientes más
|
||
|
en tu cuerpo. Permanece con ese sentimiento durante unos segundos y
|
||
|
sigue sintiéndolo. Después, continua tu trabajo. Mientra estás
|
||
|
trabajando sigue notando todos esos sentimientos que estás teniendo y
|
||
|
repite el proceso de permanecer y notar tus sentimientos. Cuando acabes
|
||
|
puedes reflexionar más sobre esos sentimientos y determinar qué indican
|
||
|
esos sentimientos. A través de este proceso puedes determinar qué está
|
||
|
causando estos sentimientos y notar si son solo una resistencia a
|
||
|
aprender nuevo material o un deseo de escaparse a las distracciones o a
|
||
|
algo más familiar.</p>
|
||
|
<p>Sin embargo, si te das cuenta que realmente no estás disfrutando
|
||
|
mientras estás aprendiendo sobre ese tema, si sientes que estás
|
||
|
invirtiendo más tiempo en auto convencerte de aprender que realmente
|
||
|
aprender, entonces necesitarás tener una discusión honesta contigo mismo
|
||
|
sobre porque estás aprendiendo sobre este tema. ¿Es el tema todavía
|
||
|
relevante para ti o el tema se ha vuelto irrelevante? ¿Estás aprendiendo
|
||
|
sobre esto por una obligación auto impuesta o impuesta por otras
|
||
|
personas y esa obligación todavía está presente? ¿Estás tratando de
|
||
|
aprender lo que sea porque estás preocupado por quedarte desfasado
|
||
|
personal o profesionalmente? Reflexiona sobre lo que te indujo a
|
||
|
comenzar a aprender sobre ese tema y determina si la situación ha
|
||
|
cambiado. Si alguien se te acercara y te preguntara si te gustaría
|
||
|
aprender sobre ese tema en los próximos días ¿lo considerarías?</p>
|
||
|
<p>Necesitarás reconsiderar tus verdaderas motivaciones para aprender
|
||
|
sobre el tema y ver si todavía encajan con lo que quieres hacer con tu
|
||
|
profesión como programador. También necesitas ser honesto contigo mismo
|
||
|
sobre el motivo por el que estás aprendiendo este tema y por qué es
|
||
|
importante para ti. Hay muchas cosas para aprender que son grandes
|
||
|
salidas profesionales, pero si no tienes interés sobre el tema o solo
|
||
|
estás aprendiendo “para que te contraten”, entonces tendrás más
|
||
|
dificultades para aprender el tema que si lo hubieras escogido por un
|
||
|
interés genuino por él. También tendrás que determinar si esto es
|
||
|
simplemente una resistencia al aprendizaje. Tu reto será determinar tus
|
||
|
verdaderos sentimientos sobre el tema y descubrir si verdaderamente has
|
||
|
perdido el interés o simplemente estás luchando contra él.</p>
|
||
|
<p>Ha habido muchos temas en mi carrera profesional que he tratado de
|
||
|
aprender, pero han sido muchos más sobre los que no he aprendido. Parte
|
||
|
de los motivos por los que no los he aprendido es porque el panorama
|
||
|
informático cambió mientras los estaba aprendiendo. En la escuela
|
||
|
aprendí el lenguaje Pascal. Era razonablemente bueno en ello, pero con
|
||
|
el tiempo mis conocimientos de Pascal fueron desapareciendo. Ahora mismo
|
||
|
existe una escasa demanda de programadores competentes de Pascal, así
|
||
|
que haber continuado desarrollando mis conocimientos de Pascal hubiera
|
||
|
sido simplemente para mi propio disfrute. Encuentro que hay otros temas
|
||
|
relacionados con la informática más interesantes, así que mis
|
||
|
conocimientos sobre Pascal permanecen inactivos. Si Pascal emergiera de
|
||
|
su estado moribundo, podría volver a retomar la decisión de reforzar mis
|
||
|
conocimientos sobre Pascal, pero por ahora estoy contento por haber
|
||
|
tomado la decisión correcta. En un punto de mi carrera profesional el
|
||
|
lenguaje Java saltó a la fama. Pasé muchas sesiones aprendiendo Java
|
||
|
hasta que me dí cuenta que no me gustaba el lenguaje. Me pareció muy
|
||
|
engorroso y las direcciones que tomó no fueron las que quería seguir.
|
||
|
Así que después de algunas reflexiones abandoné el aprendizaje de Java.
|
||
|
¿Fue todo esto tiempo perdido? Durante mis sesiones aprendí más sobre la
|
||
|
Programación Orientada a Objetos y cómo los objetos encajan entre ellos.
|
||
|
Aprendí más sobre recursividad mientras estaba tratando de resolver un
|
||
|
problema para uno de mis proyectos. Estos conocimientos trascienden a
|
||
|
Java, así que cuando empecé con Python fui capaz de transferir mis
|
||
|
conocimientos sobre cómo funcionan los objetos de Java a Pytnon. Utilicé
|
||
|
ese conocimiento para entender qué estaba haciendo Python y cómo era de
|
||
|
diferente respecto a Java. Si surge la necesidad puedo repensar mi
|
||
|
decisión de dejar de aprender Java y ver si esto me interesa otra
|
||
|
vez.</p>
|
||
|
<p>Está bien renunciar a aprender algo. Depende de ti determinar qué
|
||
|
quieres aprender y durante cuanto tiempo. Somos seres complejos y
|
||
|
nuestros intereses se transforman y cambian. También estamos en una
|
||
|
industria compleja de caprichos y tecnologías cambiantes. Lo que era
|
||
|
interesante y necesario al comienzo del año, podría convertirse en algo
|
||
|
carente de interés o innecesario al final del año. No debemos sentirnos
|
||
|
presionados para aprender sobre algo solo porque otras personas lo estén
|
||
|
aprendiendo o porque el mercado de trabajo parezca que lo requiera. Date
|
||
|
permiso para escuchar tus propios deseos. Si estos coinciden con lo que
|
||
|
quiere esta industria voluble ¡entonces genial! Ve y aprende todo lo que
|
||
|
puedas. Pero si no coinciden y te encuentras a ti mismo pasando semanas
|
||
|
tratando de encontrar la motivación necesaria para aprender sobre el
|
||
|
tema, entonces estás haciendo un flaco favor tanto a ti mismo como a tu
|
||
|
oficio. Deja que el tema repose inactivo durante un tiempo y date tiempo
|
||
|
para aprender sobre otra cosa. No tiene mucho sentido el sentirte
|
||
|
miserable por complacer a otras personas.</p>
|
||
|
<p>Si sientes la necesidad de retomar el tema más adelante entonces
|
||
|
permítete el regresar de nuevo a él. También deberías permitirte
|
||
|
regresar a ese tema sin el bagaje y las expectativas de los intentos
|
||
|
anteriores. El decir “ya intenté esto antes, así que veamos si funciona
|
||
|
esta vez” pone a tu mente a la expectativa de que volver a abandonar de
|
||
|
nuevo. Date permiso para acercarte a este tema como si estuvieras
|
||
|
experimentando la experiencia por primera vez, sin expectativas sobre
|
||
|
cómo resultará. Se amable contigo mismo y experimenta el tema de nuevo
|
||
|
pero desde tu perspectiva actual.</p>
|
||
|
<h2 data-number="6.8" id="acércate-con-curiosidad"><span
|
||
|
class="header-section-number">6.8</span> Acércate con curiosidad</h2>
|
||
|
<p>Cuando eramos principiantes nos acercamos a las computadoras con
|
||
|
curiosidad y entusiasmo. No sabíamos qué esperar y no teníamos ni idea
|
||
|
del tiempo que iba a llevar. Simplemente aprendimos tanto como pudimos y
|
||
|
tomamos todo al pie de la letra. A medida que continuamos aprendiendo
|
||
|
cambiamos nuestra curiosidad por certezas y nuestro entusiasmo por
|
||
|
expectativas. La emoción que sentíamos al aprender se convirtió en un
|
||
|
sentimiento de monotonía al sentir que siempre deberíamos estar
|
||
|
aprendiendo. Podemos volver a capturar aquel espíritu del principiante
|
||
|
viendo cada oportunidad de aprender como una nueva experiencia. Podemos
|
||
|
dejar de lado nuestras expectativas sobre cómo progresará nuestro
|
||
|
aprendizaje y en vez de eso acercarnos a cada sesión de aprendizaje con
|
||
|
curiosidad por lo que aprenderemos durante la sesión. Podemos reavivar
|
||
|
la llama que teníamos cuando eramos principiantes con infinitas
|
||
|
posibilidades. Esa llama nos guiará cuando atravesemos periodos de
|
||
|
incertidumbre.</p>
|
||
|
<p>Podemos volver a sentir pasión por aprender. Con cada contenedor de
|
||
|
enfoque podemos acercarnos a nuestro aprendizaje de una manera fresca,
|
||
|
sin nociones preconcebidas de cómo y cuándo acabará, y ser curiosos por
|
||
|
aquello que encontraremos cuando ahondemos más y más en lo que estamos
|
||
|
aprendiendo. Cada sesión nos acerca un paso más en nuestro viaje por
|
||
|
cerrar las lagunas de conocimiento. Hay mucho que explorar en nuestro
|
||
|
campo. Espero que siempre encuentres algo nuevo y excitante que te ayude
|
||
|
en tu viaje.</p>
|
||
|
<h1 data-number="7" id="la-lucha-interna"><span
|
||
|
class="header-section-number">7</span> La lucha interna</h1>
|
||
|
<h2 data-number="7.1" id="las-emociones-de-la-programación"><span
|
||
|
class="header-section-number">7.1</span> Las emociones de la
|
||
|
programación</h2>
|
||
|
<p>Existe el estereotipo del programador sin emociones sentado frente a
|
||
|
su equipo. El programador estereotipo se sienta, introduce líneas de
|
||
|
código de manera silenciosa, como si las transcribiera desde su memoria.
|
||
|
Si eres programador o has tenido contacto con programadores entonces
|
||
|
deberías saber que el estereotipo debería ser el de un compositor
|
||
|
frustrado. Por supuesto, nos sentamos delante de nuestros ordenadores en
|
||
|
largos periodos en silencio y concentrados, pero estamos muy lejos de no
|
||
|
tener emociones. Disfrutamos de las glorias de un código que funciona a
|
||
|
la perfección la primera vez. Fruncimos el ceño cuando el código
|
||
|
funciona mal. Pasamos de alegrarnos por la victoria a maldecir y
|
||
|
amenazar a la máquina con los puños apretados. Apretamos nuestros
|
||
|
dientes cuando los errores del código asoman. Pasamos de una emoción a
|
||
|
otra: exuberancia, alegría, miedo, furia, resentimiento, tristeza,
|
||
|
soledad, culpa o vergüenza.</p>
|
||
|
<p>No es extraño que al final del día estemos exhaustos.</p>
|
||
|
<p>Programar es un proceso agotador. No solo necesitamos mantener un
|
||
|
modelo mental del software en el que estamos trabajando, también tenemos
|
||
|
que mantener un modelo mental de cómo se debería comportar el software.
|
||
|
Creamos una historia de cómo funcionará este software y componemos una
|
||
|
imagen mental de cómo nos sentiremos cuando todo funcione como hemos lo
|
||
|
hemos imaginado. Creamos un vínculo emocional con el software. Nuestro
|
||
|
estado emocional puede reflejar lo que sentimos cuando estamos creando:
|
||
|
excitados, aburridos o estancados. Mantener una actitud positiva
|
||
|
respecto al software que no está a la altura de nuestras expectativas es
|
||
|
agotador. Esto combinado con nuestras propias inseguridades, miedos y
|
||
|
dudas nos da indicios cuando vemos que los programadores tienden a
|
||
|
agotarse: es una combinación de estrés y nuestra reacción emocional a
|
||
|
ese estrés.</p>
|
||
|
<h2 data-number="7.2" id="desgastes-emocionales"><span
|
||
|
class="header-section-number">7.2</span> Desgastes emocionales</h2>
|
||
|
<p>Hay muchos factores que pueden causarnos altibajos emocionales
|
||
|
mientras estamos programando. Estos son algunos que he anotado, tanto en
|
||
|
mi propio proceso de programación como hablando con otras personas sobre
|
||
|
su programación.</p>
|
||
|
<h3 data-number="7.2.1" id="propósito-y-utilidad"><span
|
||
|
class="header-section-number">7.2.1</span> Propósito y utilidad</h3>
|
||
|
<p>Si vemos con claridad dónde y cómo este código será útil, podemos
|
||
|
tener una idea de la motivación y el propósito. ¡Estamos trabajando en
|
||
|
algo que beneficiará a personas! Sabemos que las personas dependen de
|
||
|
nosotros, así que hacemos todo lo que este en nuestra mano para hacer
|
||
|
que el código funcione sin importar las trampas que nos esperen.
|
||
|
Aprovechamos los picos emocionales de autoestima y determinación para
|
||
|
ayudarnos a llegar a la culminación.</p>
|
||
|
<p>Lo opuesto también es cierto, por supuesto si no vemos el propósito
|
||
|
entonces nuestro trabajo parecerá sin sentido y en vano. Nos
|
||
|
esforzaremos para cumplir los plazos y sentiremos una sensación de vacío
|
||
|
en nuestros objetivos. A veces se trata de un proyecto que no está en
|
||
|
consonancia con nuestros propios propósitos y metas. Puede tratarse de
|
||
|
un proyecto mal gestionado en el que estamos forzados a trabajar debido
|
||
|
a presiones externas. Podríamos vernos obligados a cumplir plazos
|
||
|
arbitrarios que nunca acordamos cumplir. Podemos sentirnos frustrados si
|
||
|
no entendemos el fin último de cualquier proyecto en el que estemos
|
||
|
trabajando.</p>
|
||
|
<h3 data-number="7.2.2" id="motivación-frente-a-aburrimiento"><span
|
||
|
class="header-section-number">7.2.2</span> Motivación frente a
|
||
|
aburrimiento</h3>
|
||
|
<p>Ya hemos experimentado diferentes capas de motivación con nuestra
|
||
|
programación. Esos son los proyectos en los que no sentimos que sean una
|
||
|
tarea mientras estamos trabajando en ellos. Sentimos que estamos
|
||
|
aprendiendo algo en cada paso del camino. El mundo exterior desaparece
|
||
|
mientras estamos trabajando inmersos por completo en ese enfoque.
|
||
|
Perdemos la noción del tiempo y nos sentimos tanto desorientados como
|
||
|
renovados cuando el trabajo está completo.</p>
|
||
|
<p>Desafortunadamente lo más probable es que tengamos más experiencias
|
||
|
con lo opuesto a la motivación: el aburrimiento. El código base no nos
|
||
|
motiva en absoluto. El tema que estamos aprendiendo o en el que estamos
|
||
|
trabajando es simplemente una repetición de algo que ya sabíamos. Es un
|
||
|
suplicio comenzar. Todo lo que nos rodea en el mundo parece más
|
||
|
interesante y el tiempo parece ir más despacio durante todo el
|
||
|
proceso.</p>
|
||
|
<h3 data-number="7.2.3" id="despierto-frente-a-cansado"><span
|
||
|
class="header-section-number">7.2.3</span> Despierto frente a
|
||
|
cansado</h3>
|
||
|
<p>El sueño es un factor que influye mucho en cómo percibimos el mundo.
|
||
|
Dormir lo suficiente nos permite sentirnos renovados, despiertos e
|
||
|
inspirados. Necesitamos tener reservas de energía para enfrentarnos a
|
||
|
cualquier reto que se nos presente. Cuando no tenemos una calidad óptima
|
||
|
del sueño nos volvemos irritables y menos dispuestos a la participación.
|
||
|
Conservamos nuestros recursos lo mejor que podemos para que no se gasten
|
||
|
demasiado rápido. Buscamos estimulantes (café, distracciones y
|
||
|
similares) para mantenernos ocupados a lo largo del día.</p>
|
||
|
<h3 data-number="7.2.4" id="estado-mental"><span
|
||
|
class="header-section-number">7.2.4</span> Estado mental</h3>
|
||
|
<p>Uso el término “estado mental” en un sentido amplio para cubrir
|
||
|
cualquiera de nuestros sentimientos existentes y de bienestar mental
|
||
|
actual. Estos pueden variar desde sentimientos temporales de infelicidad
|
||
|
o melancolía a sentimientos complejos y serios como la depresión clínica
|
||
|
o trastorno de estrés postraumático. Nuestras mentes son máquinas
|
||
|
complejas que hacen lo que pueden para adaptarse a las diferentes
|
||
|
situaciones y entornos que se les presentan. En ocasiones esta
|
||
|
adaptación puede chocar con nuestros deseos de ser productivos y la
|
||
|
lucha que se produce entre nuestro estado mental y nuestros deseos puede
|
||
|
causar más desgaste emocional, incomodidad o desesperación.</p>
|
||
|
<p>Hay más motivos que pueden afectar a nuestras emociones pero estos
|
||
|
son en los que me gustaría centrarme ya que cubren un amplio espectro de
|
||
|
lo que acarrea dedicarnos a las tareas de aprendizaje y
|
||
|
programación.</p>
|
||
|
<h2 data-number="7.3"
|
||
|
id="ser-conscientes-de-nuestro-estado-emocional"><span
|
||
|
class="header-section-number">7.3</span> Ser conscientes de nuestro
|
||
|
estado emocional</h2>
|
||
|
<p>Ser conscientes de nuestro estado emocional (lo que estamos sintiendo
|
||
|
ahora mismo) nos da nuestra ubicación emocional actual. Podemos
|
||
|
ubicarnos dónde estamos y entender lo que nuestra mente nos está
|
||
|
diciendo. El darnos unos instantes para sentir verdaderamente en qué
|
||
|
estado emocional se encuentra nuestra mente nos ayudará a seguir
|
||
|
adelante.</p>
|
||
|
<p>Ten en cuenta que no estamos tratando de cambiar nuestro estado
|
||
|
emocional. No nos estamos intentando forzar a ser algo que no somos. Si
|
||
|
realmente estamos insatisfechos sobre dónde estamos o lo que estamos
|
||
|
haciendo, es más útil entender qué está causando esa infelicidad en vez
|
||
|
de tratar de disimular y prevenir esas emociones. Observar nuestras
|
||
|
emociones de manera clara nos permite reconocer qué las está causando.
|
||
|
Estar presente con esas emociones nos permite entender mejor nuestro
|
||
|
estado mental y de lo que somos capaces en el momento.</p>
|
||
|
<p>Puedes realizar esto dentro de un contexto de meditación de atención
|
||
|
plena, incluso mientras estás sentado en tu escritorio pensar: “durante
|
||
|
uno o dos minutos voy a estar sentado aquí y voy a explorar mi estado
|
||
|
emocional” debería ser suficiente. Ser conscientes de nuestras
|
||
|
emociones, entender qué son y profundizar en ellas hasta encontrar qué
|
||
|
las está causando puede ayudarnos a entender qué estamos sintiendo.</p>
|
||
|
<p>Quizás ya sabes qué está causando esas emociones y ese estado mental
|
||
|
y tienes miedo de explorarlas. Algunas emociones pueden sobrepasarnos y
|
||
|
hacernos sentir de formas que no queremos sentirnos. Esto es
|
||
|
especialmente cierto con emociones relacionadas con la ansiedad y el
|
||
|
trastorno de estrés postraumático. Realiza toda la exploración e
|
||
|
introspección que seas capaz, y se amable contigo mismo. Recuerda, no
|
||
|
estás tratando de cambiar las emociones, solo estás siendo consciente de
|
||
|
ellas. Es posible que descubras que tu insistencia amable en estas
|
||
|
emociones pueda llevarte a entenderlas mejor. Se tan osado como puedas
|
||
|
con estas emociones y si empiezan a abrumarte, entonces retrocede y deja
|
||
|
que desaparezcan los residuos de esas emociones antes de continuar.</p>
|
||
|
<h2 data-number="7.4" id="nuestra-historia"><span
|
||
|
class="header-section-number">7.4</span> Nuestra historia</h2>
|
||
|
<p>Cada uno de nosotros tenemos una historia que nos contamos a nosotros
|
||
|
mismos. Estas historias conforman nuestra percepción del mundo. Nos
|
||
|
contamos historias de cómo transcurrirá el día y cómo nos enfrentaremos
|
||
|
a el. Creamos un mundo a través de nuestras historias en el que somos el
|
||
|
protagonista central de la historia. Nos contamos historias como “el
|
||
|
trabajo que voy a comenzar será increíble” o “voy a trabajar en este
|
||
|
problema y cuando termine obtendré una solución genial”. Eso ocurre si
|
||
|
estamos siendo positivos con nosotros mismos. Cuando estamos siendo
|
||
|
negativos, nuestras historias tratan sobre que no somos lo
|
||
|
suficientemente buenos en lo que estamos haciendo y que seguramente
|
||
|
fallarás en el intento. Estas historias crean una trama compleja de
|
||
|
lucha, dolor y miseria donde todo lo malo del mundo es el resultado
|
||
|
directo de nuestras acciones.</p>
|
||
|
<p>Nuestras emociones ayudan a dar forma al tipo de historia que
|
||
|
contamos. Si nos sentimos muy bien, nos diremos a nosotros mismos que lo
|
||
|
que está por venir también será genial. Si nos sentimos deprimidos y
|
||
|
derrotados, nuestras historias reflejarán ese tono derrotado.</p>
|
||
|
<p>La verdad es que nuestra historia es simplemente eso: una historia.
|
||
|
Nuestras historias no son una garantía de cómo va a transcurrir el día.
|
||
|
Podemos contarnos una historia sobre que hoy será un día increíble y ver
|
||
|
con horror que cada interacción hace que nuestro día sea de todo menos
|
||
|
increíble. Por el contrario, nuestra historia podría ser que hoy será un
|
||
|
día terrible y que no conseguiremos nada, pero en vez de eso
|
||
|
experimentamos un día muy completo y productivo. La historia solo
|
||
|
acentúa lo que estamos experimentando, pero no puede predecir lo que
|
||
|
experimentaremos.</p>
|
||
|
<p>En vez de apegarnos a estas grandes historias podemos centrarnos más
|
||
|
en las cosas que amamos del momento presente. En vez de una historia en
|
||
|
la que vas a tener un día excepcional podrías centrarte en aspectos de
|
||
|
tu proyecto que te atraigan y esperar en que puedas pronto trabajar en
|
||
|
ellos. En vez de llenar tu día con historias de terror y fatalidad te
|
||
|
puedes centrar en las pequeñas victorias que ocurren a lo largo del día.
|
||
|
Incluso algo tan simple como “mi ordenador ha arrancado sin fallar”
|
||
|
puede ser una victoria. Una de esas pequeñas victorias podría ser el
|
||
|
establecer una intención en permanecer centrados y curiosos en los
|
||
|
próximos 10 minutos (el contenedor de enfoque de los capítulos
|
||
|
anteriores) y celebrarlos cuando logres esa intención. Puedes tener más
|
||
|
pequeñas victorias si te mantienes trabajando con esa intencionalidad a
|
||
|
lo largo del día. Nuestras pequeñas victorias no serán perfectas (quizás
|
||
|
tu ordenador está hoy insoportable), pero podemos usarlas para
|
||
|
recalibrar nuestro día en los próximos 10 minutos y seguir usándolas
|
||
|
para recalibrar durante todo el día, como cada contenedor focalizado se
|
||
|
convierte en otra pequeña victoria.</p>
|
||
|
<p>Darnos a nosotros mismos la capacidad de centrarnos más en el
|
||
|
presente y los próximos pasos que estamos a punto de dar nos brinda una
|
||
|
forma consciente de comprobarnos a nosotros mismos y nuestro progreso.
|
||
|
Podemos centrarnos en los aspectos positivos de lo que estamos haciendo
|
||
|
en vez de preocuparnos sobre cómo la realidad difiere de nuestras
|
||
|
propias historias. Podemos corregir el rumbo a lo largo del día y
|
||
|
mantener la tendencia hacia un día más positivo y productivo en vez de
|
||
|
preocuparnos sobre lo distantes que nos encontramos de nuestro día
|
||
|
ideal.</p>
|
||
|
<p>Esto requerirá práctica. Estamos acostumbrados a permitir que
|
||
|
nuestras historias dirijan nuestro día, pero con el paso del tiempo
|
||
|
seremos capaces de dividir nuestro días en partes más pequeñas donde
|
||
|
podamos ser plenamente conscientes de las historias que nos contamos a
|
||
|
nosotros mismos.</p>
|
||
|
<h2 data-number="7.5" id="la-conciencia-en-acción"><span
|
||
|
class="header-section-number">7.5</span> La conciencia en acción</h2>
|
||
|
<p>Vamos a suponer por un momento que es un día normal para nosotros.
|
||
|
Hoy nos sentimos ansiosos. Hemos recibido un informe de un error que
|
||
|
está relacionado con algo en lo que hemos estado trabajando. En informe
|
||
|
de error indica que el código que enviamos al proyecto a principios de
|
||
|
año no está funcionando y quizás nunca funcionó de la manera que
|
||
|
pensamos que funcionaba. Mientras leemos el informe de error nuestros
|
||
|
niveles de ansiedad se incrementan. Nuestro monólogo interior entra en
|
||
|
acción y empezamos a decirnos a nosotros mismos que nunca hemos estado
|
||
|
cerca de ser tan buenos como creíamos. No somos perfectos. Apestamos. No
|
||
|
hemos dormido la suficiente la noche anterior así que nuestras emociones
|
||
|
están a flor de piel. Nuestra mente se acelera y proyecta imágenes
|
||
|
pasadas de otras veces donde también cometimos fallos. Mientras seguimos
|
||
|
leyendo aflora nuestra sensación de temor. Nuestro monólogo interno se
|
||
|
convierte en una charla frenética: “¿Qué van a pensar ahora de mí? ¿Qué
|
||
|
piensan de mí ahora mismo? ¿Perderé mi trabajo por esto?</p>
|
||
|
<p>Antes de que hayamos acabado de leer el informe de error ya hemos
|
||
|
creado una historia. La historia comienza con nuestra propia ansiedad
|
||
|
por lo que pasará a lo largo del día. Entonces ocurre lo peor: obtenemos
|
||
|
algo que confirma nuestros miedos. La historias después nos presenta con
|
||
|
un montaje de nuestros fallos pasados y a eso añade este último informe
|
||
|
de error como punto culminante del montaje. Nuestra historia entonces
|
||
|
aumenta la presión por el aumento de la importancia de este informe de
|
||
|
error: no solo debemos solucionar lo que sea que esté roto, ahora
|
||
|
tendremos que limpiar nuestra reputación y comenzar a buscar trabajo. A
|
||
|
medida que la historia progresa en nuestras mentes, nos preguntamos si
|
||
|
volveremos a trabajar como programador de nuevo y sentimos cómo nuestra
|
||
|
carrera profesional como programador está acabada.</p>
|
||
|
<p>La historia que hemos creado es una historia terrible, pero estoy
|
||
|
seguro que te ves identificado con los factores que genera. Es una
|
||
|
historia que se basa en lo más profundo de nuestros propios sentimientos
|
||
|
de insuficiencia e inseguridad. Está alimentado por el miedo: el miedo a
|
||
|
arruinar tu reputación, miedo a que no confíen en ti y miedo al
|
||
|
fracaso.</p>
|
||
|
<p>El miedo es una de las emociones más poderosas que tenemos, pero no
|
||
|
es la única. Leer ese informe de error también puede hacer surgir otras
|
||
|
emociones como el dolor (pensamos que el código era bueno y ahora ese
|
||
|
sentimiento se ha esfumado). Incertidumbre (¿cómo vamos a solucionar el
|
||
|
problema?) y la ira (¿cómo hemos podido habernos engañado pesando que
|
||
|
esto funcionaba?) También podemos tener otros sentimientos: tristeza,
|
||
|
soledad y abandono. Nuestra autoestima podría verse afectada y podríamos
|
||
|
sentirnos desconectados de aquellas personas para las que trabajamos y
|
||
|
las personas con las que trabajamos.</p>
|
||
|
<p>Estar al tanto de estos sentimientos puede ayudarnos a analizar la
|
||
|
historia que nos estamos contando y cómo no coincidía con la realidad.
|
||
|
Estos sentimientos y la historia que nos contamos nos dan una
|
||
|
retroalimentación de cómo percibimos el mundo y el mundo que estamos
|
||
|
construyendo. Hacer una pausa por un momento para reconocer nuestros
|
||
|
sentimientos y entender de donde proceden nos da un entendimiento de lo
|
||
|
que nuestras emociones están tratando de decirnos.</p>
|
||
|
<p>Ahora te puedes relajar. El informe de error de este libro no es
|
||
|
real, pero tómate un momento para reconocer los sentimientos que sientes
|
||
|
cuando lees la sección anterior y nota dónde ha ido tu mente. Este es el
|
||
|
tipo de conciencia que estamos buscando tener.</p>
|
||
|
<h2 data-number="7.6" id="hallar-nuestros-sentimientos"><span
|
||
|
class="header-section-number">7.6</span> Hallar nuestros
|
||
|
sentimientos</h2>
|
||
|
<p>Nuestros sentimientos se manifiestan en nuestros cuerpos de muchas
|
||
|
maneras diferentes. El miedo puede sentirse como un nudo en el estómago
|
||
|
o una tensión en nuestro pecho. La ira puede hacer que apretemos las
|
||
|
mandíbulas o sentir nuestra cabeza más caliente de lo normal. La
|
||
|
tristeza la podemos sentir como un peso sobre nuestros hombros o
|
||
|
hacernos sentir cansados. Cuando notamos estos sentimientos podemos
|
||
|
hacer una pausa por un momento y simplemente sentarnos con nuestros
|
||
|
sentimientos mientras lo seguimos sintiendo.</p>
|
||
|
<p>Piensa en este ejercicio como si estuvieras escaneando tu cuerpo en
|
||
|
busca de la fuente de los sentimientos que estás sintiendo. Fíjate hacia
|
||
|
donde es atraída tu mente: opresión en el pecho, una opresión en tu
|
||
|
estómago, las mandíbulas apretadas o cualquier otro sentimiento que
|
||
|
estés sintiendo. Nota la sensación de ese sentimiento. Puedes ahondar
|
||
|
más y tratar de encontrar la causa primigenia del sentimiento pero por
|
||
|
ahora simplemente siente que existe. Siéntate por un momento y se más
|
||
|
curioso sobre cómo te sientes. Trata de notar otros atributos de ese
|
||
|
sentimiento: color, textura, intensidad o cualquier otro atributo que
|
||
|
estés experimentando. Deja que ese sentimiento exista, se amable con el.
|
||
|
Permite que exista sin juzgarlo. Dale espacio. Sobre todo no trates de
|
||
|
luchar contra el sentimiento o desees que termine, simplemente siéntelo.
|
||
|
De manera eventual puede que el sentimiento vaya disminuyendo, pero por
|
||
|
ahora solo ten conciencia de que tienes ese sentimiento y que vas a ser
|
||
|
curioso sobre él.</p>
|
||
|
<p>Algunos sentimientos y emociones son más dolorosas o traumáticas que
|
||
|
otras. Dales espacio y permítete tener curiosidad sobre ellas mientras
|
||
|
puedas. Si notas que tu mente empieza a sentir pánico u otra sensación
|
||
|
que te desborde debido a este sentimiento, entonces deberías dejar de
|
||
|
notarlos antes de que te superen. Recuerda que esto son emociones y que
|
||
|
esas emociones son parte de ti. Tanto tu como tus emociones trabajáis
|
||
|
juntos para ayudarte. Ambos estáis en el mismo equipo.</p>
|
||
|
<p>Con este ejercicio no se trata de que te acoses o te castigues con
|
||
|
tus propios sentimientos. Es solo el acto de notar que estos
|
||
|
sentimientos te causan un dolor físico o emocional, es posible que
|
||
|
necesites ayuda profesional o un grupo de apoyo para guiarte a entender
|
||
|
estos sentimientos y descubrir de dónde vienen. La ayuda profesional o
|
||
|
el grupo de apoyo pueden ayudarte a tener estos sentimientos sin que
|
||
|
estos te sobrepasen. No debe provocarte vergüenza el buscar ayuda en
|
||
|
otras personas para que te ayuden en tu viaje.</p>
|
||
|
<h2 data-number="7.7" id="separación-y-selección-emocional"><span
|
||
|
class="header-section-number">7.7</span> Separación y selección
|
||
|
emocional</h2>
|
||
|
<p>Uno de nuestros comportamientos aprendidos respecto de nuestros
|
||
|
sentimientos es tratar de huir de ellos o de reprimirlos. Hacemos todo
|
||
|
lo posible para evitar sentimientos que nos provocan infelicidad o
|
||
|
incomodidad. También tratamos de no exagerar nuestros sentimientos
|
||
|
positivos para no mostrar demasiada exuberancia. Esto nos puede llevar a
|
||
|
sentirnos confusos o en conflicto sobre qué estamos sintiendo y por qué
|
||
|
nos sentimos de esa manera. Al sentarnos con nuestros sentimientos y
|
||
|
emociones y entendiendo de dónde proceden podemos formarnos una idea
|
||
|
clara de qué está pensando nuestra mente y la historia que nos estamos
|
||
|
contando a nosotros mismos.</p>
|
||
|
<p>Piensa en esta práctica como una separación y clasificación
|
||
|
emocional. Con suerte nunca has tenido que acudir a una sala de
|
||
|
emergencias de un hospital, pero si lo has hecho, verías a todo el
|
||
|
personal médico que están entrenados en diagnosticar a quien acaba de
|
||
|
entrar por la puerta y determinar la gravedad del problema. Cuando
|
||
|
reconocemos y reflexionamos sobre nuestras emociones también estamos
|
||
|
diagnosticando qué emociones estamos teniendo y la gravedad de esas
|
||
|
emociones. Tomamos esos momentos cuando estamos experimentando las
|
||
|
emociones para poder determinar qué emociones son y qué las ha
|
||
|
desencadenado. Mientras revisamos nuestras emociones somos cordiales con
|
||
|
ellas y las reconocemos por lo que son. Un buen profesional médico no
|
||
|
impone sus propios deseos al paciente, simplemente aceptan a los
|
||
|
pacientes por lo que son, diagnostica lo que está experimentando el
|
||
|
paciente y actúa en consecuencia. Cuando reconocemos nuestras emociones
|
||
|
por lo que son y determinamos de dónde proceden, podemos comprender
|
||
|
mejor a lo que nos estamos enfrentando.</p>
|
||
|
<p>Cuanto más hagamos esta práctica, mucho mejor seremos capaces de
|
||
|
reconocer nuestras emociones y por qué las estamos teniendo. Seremos más
|
||
|
capaces de notar qué estamos sintiendo y entender el motivo de estar
|
||
|
sintiéndonos de esa manera. Cuando sentimos ansiedad, podemos reconocer
|
||
|
que podría ser causada por explorar un área de programación que no
|
||
|
entendemos por completo. Podemos sentir esa ansiedad durante un instante
|
||
|
(no trates de ahuyentarla) y en ese momento piensa sobre lo que estás
|
||
|
trabajando y cómo poder explorar esas áreas que son nuevas. Podemos
|
||
|
tomar una nota mental o escrita (mejor si es en un diario) así cuando
|
||
|
completemos lo que estamos realizando, podremos revisar las áreas que
|
||
|
nos están causando ansiedad.</p>
|
||
|
<p>Esta práctica puede convertir nuestras emociones en algo que nos
|
||
|
dirija o guíe. Podemos utilizar nuestras emociones como herramientas
|
||
|
para calibrar mejor nuestras historias internas. Podemos recomponer esas
|
||
|
historias sobre cómo no nos merecemos que nos llamen programadores y en
|
||
|
vez de eso darnos la intención de que pasaremos los próximos 10 minutos
|
||
|
explorando este área de nuestro trabajo y encontrar dónde están las
|
||
|
lagunas de conocimiento. Podemos establecer una intención de ser
|
||
|
curiosos sobre a dónde nos llevarán los próximos 10 minutos de
|
||
|
exploración. Mientras continuamos explorando ese tema notaremos nuestras
|
||
|
emociones y usaremos esas emociones para permitirnos conocer dónde
|
||
|
necesitamos mejorar y adaptarnos. Esto nos permitirá cambiar nuestros
|
||
|
planes cuando sea necesario y abordar aquellas áreas donde creamos que
|
||
|
tenemos carencias o necesitan mejorar. Este ciclo continúa en cada
|
||
|
contenedor que practiquemos, con nuestras emociones actuando como un
|
||
|
barómetro de nuestro nivel de comodidad con el tema en cuestión y
|
||
|
ayudándonos a esbozar una hoja de ruta sobre la mejor manera de
|
||
|
proceder. Transformamos nuestra incomodidad y ansiedad de cosas que
|
||
|
obstaculizan nuestro progreso en indicadores de dónde sentimos que
|
||
|
tenemos que enfocar nuestra atención.</p>
|
||
|
<h2 data-number="7.8" id="agotamiento"><span
|
||
|
class="header-section-number">7.8</span> Agotamiento</h2>
|
||
|
<p>Una de las cosas que nuestra separación emocional puede ayudarnos a
|
||
|
diagnosticar es el sentimiento de agotamiento. El agotamiento es un
|
||
|
compendio de emociones unidas a una extenuación emocional y física. El
|
||
|
agotamiento puede ser algo simple como estar cansado o tener exceso de
|
||
|
trabajo, pero también puede ser un signo de algo más serio. Puede llevar
|
||
|
a complicaciones físicas o mentales si no tenemos cuidado. Podemos
|
||
|
trabajar con preocupantes niveles de extenuación y engañarnos a nosotros
|
||
|
mismos creyendo que esto es parte del coste por ser un buen
|
||
|
programador.</p>
|
||
|
<p>El agotamiento se manifiesta de diferentes maneras. Para algunas
|
||
|
personas puede ser un sentimiento de pavor mientras trabaja en un
|
||
|
proyecto. Se sienten como si no fueran efectivos al hacer cualquier
|
||
|
cambio. Para otras personas el agotamiento puede ser un sentimiento de
|
||
|
extenuación. Se sienten como si estuvieran en una rueda de hamster que
|
||
|
no parará nunca. Incluso puede ser mucho peor, quieren que la rueda se
|
||
|
hubiera parado hace ya mucho tiempo. El agotamiento también puede
|
||
|
manifestarse en una sequía creativa, donde imaginar un futuro diferente
|
||
|
es difícil y las cosas que una vez fueron inspiradoras o interesantes ya
|
||
|
hace tiempo que no generan esa chispa.</p>
|
||
|
<p>El agotamiento es complicado de auto diagnosticar debido a que es un
|
||
|
conjunto de emociones aparentemente no relacionadas entre sí. Nuestro
|
||
|
sentimientos de aburrimiento, miedo y ansiedad pueden tener todos una
|
||
|
causa raíz diferente, pero cuando combinamos estos sentimientos con un
|
||
|
horario de trabajo implacable y la pérdida de control, amplificamos esos
|
||
|
sentimientos. Si no los controlamos, nos pueden llevar a tratar de
|
||
|
silenciar o dormir esos sentimientos. Nos encontraremos con que no
|
||
|
queremos programar nunca más y nos enfadaremos con nosotros mismos por
|
||
|
habernos metido en la programación. Podemos causarnos más sufrimiento no
|
||
|
deseado simplemente “superándolo”, lo que puede llevarnos a agravar y
|
||
|
complicar aún más nuestro estado emocional.</p>
|
||
|
<p>Hay algunas cosas que podemos hacer para entender y ayudar a aliviar
|
||
|
ese agotamiento:</p>
|
||
|
<ul>
|
||
|
<li>Darse cuenta de cuando estamos agotados, o a punto de estarlo.
|
||
|
Reconocer que estamos a punto de sentirnos agotados es clave para no
|
||
|
llegar a experimentar el agotamiento. Esto parece bastante simple, pero
|
||
|
tendemos a ignorar los síntomas cuando nos estamos acercando al
|
||
|
agotamiento. Si podemos reconocer que estamos a punto de agotarnos
|
||
|
entonces podremos tomar medidas para evitarlo. Y si nos damos cuenta que
|
||
|
ya estamos agotados, podemos tomar medidas para ser amables con nosotros
|
||
|
mismos y ayudarnos a salir de este estado de agotamiento.</li>
|
||
|
<li>Examinar nuestras emociones. Siéntate un momento y observa qué
|
||
|
emociones aparecen delante de ti. ¿Estás sintiendo estrés, miedo,
|
||
|
ansiedad, nerviosismo o ira? Observa qué sentimientos emergen y reconoce
|
||
|
esos sentimientos. Examina de dónde provienen esos sentimientos y qué
|
||
|
podría estar provocando esas emociones.</li>
|
||
|
<li>Volver a negociar nuestros compromisos. Muchas veces el agotamiento
|
||
|
es el resultado de un compromiso excesivo, ya sea con nosotros mismos o
|
||
|
con otras personas. Siempre tenemos muchas cosas que hacer y a pesar de
|
||
|
nuestros mayores esfuerzos siempre adquirimos nuevas obligaciones.
|
||
|
Quizás los planes que hicimos fueron muy exigentes o algo ha cambiado en
|
||
|
el mundo que desbarató nuestros planes. Cualquiera que sean las razones,
|
||
|
necesitamos volver a evaluar lo que se esperaba de nosotros y lo que
|
||
|
somos capaces de hacer. Si vemos que hemos creado una situación
|
||
|
intratable para nosotros mismos, necesitamos averiguar cómo eliminar
|
||
|
parte de esas obligaciones o volver a negociarlas.</li>
|
||
|
<li>Dar un descanso a nuestro ímpetu. A diferencia de nuestros homólogos
|
||
|
mecánicos necesitamos tiempo de inactividad y descanso. No podemos
|
||
|
trabajar ocho o más horas sin al menos algunos momentos donde no estemos
|
||
|
trabajando. La programación requiere mucho ancho de banda mental y el
|
||
|
esforzarnos hasta la extenuación puede llevarnos a inestabilidad, estrés
|
||
|
y agotamiento.</li>
|
||
|
<li>Examinar si así es como realmente queremos vivir nuestras vidas.
|
||
|
Necesitamos determinar si lo que estamos haciendo es realmente lo que
|
||
|
queremos hacer. Si no somos felices con lo que estamos haciendo,
|
||
|
entonces cada momento que continuemos haciéndolo puede agravar nuestros
|
||
|
sentimientos de infelicidad. Si no sentimos más que terror por nuestra
|
||
|
situación actual entonces quizás necesitamos volver a negociar nuestros
|
||
|
compromisos. Eso puede ser algo simple como aceptar no aprender algo
|
||
|
ahora mismo, o puede ser algo complejo como cambiar de trabajo o cambiar
|
||
|
de carrera.</li>
|
||
|
</ul>
|
||
|
<p>Al entender que estamos dirigiéndonos hacia el agotamiento (o que ya
|
||
|
estamos en él) podemos tomar medidas para corregir el rumbo, para poder
|
||
|
así realizar nuestra programación disfrutando y con alegría. A veces dar
|
||
|
un paso atrás y volver a evaluar lo que estamos haciendo nos puede
|
||
|
ayudar a no instalarnos en bucles constantes de frustración, ira y
|
||
|
culpa. Cambiar nuestra historia para que se ajuste mejor a la realidad
|
||
|
puede evitar que intentemos alcanzar un sueño imposible.</p>
|
||
|
<p>Antes mencioné la posibilidad de volver a negociar los compromisos. A
|
||
|
menudo estamos involucrados en situaciones donde tenemos muchas más
|
||
|
tareas que hacer que lo que es físicamente posible, incluso bajo las
|
||
|
circunstancias más óptimas. Esto puede ser causado en parte porque hemos
|
||
|
dicho “sí” a demasiadas cosas, o porque estamos abrumados por
|
||
|
compromisos laborales, como un importante proyecto de alta prioridad o
|
||
|
varios proyectos más pequeños que necesitan atención urgente. La mejor
|
||
|
manera de volver a negociar tu carga de trabajo es revisando esa carga
|
||
|
de trabajo y anotar qué tareas son “urgentes” y qué tareas son
|
||
|
“importantes”. Las tareas “urgentes” son las que sientes que hay que
|
||
|
realizarlas de manera inmediata. Puede que no sean tareas “importantes”,
|
||
|
pero tienen un sentido de urgencia. Las tareas “importantes” son las que
|
||
|
de alguna forma te beneficiarán a ti o a otras personas. Estas tareas
|
||
|
tienen un valor significativo cuando se finalizan, ya sea monetario o
|
||
|
por lo que significa acabar dichas tareas. Toma una hoja de papel o abre
|
||
|
un documento de texto y crea dos categorías: “urgente” e “importante”.
|
||
|
Haz una lista con las tareas que debes completar y clasifícalas bajo una
|
||
|
de las dos categorías. A continuación marca la fecha de finalización (lo
|
||
|
más aproximada que puedas) de cada una de estas tareas. Si tienes más de
|
||
|
tres tareas urgentes o importantes y todas ellas finalizan en la misma
|
||
|
semana es probable que tenga exceso de trabajo y necesitarás volver a
|
||
|
negociar esos compromisos. Puede que te sientas capaz de hacer todas
|
||
|
esas cosas pero si ya te sientes estresado, cansado y agotado, al tratar
|
||
|
de cumplir esos plazos solo aumentarás esos sentimientos. Si es posible,
|
||
|
trata de mover algunos de esos plazos para la próxima semana o comprueba
|
||
|
si tus clientes creen que esas tareas son tan urgentes o importantes
|
||
|
como tu creías que eran. Si realmente son urgentes o importantes,
|
||
|
entonces trata de que tus superiores te ayuden con recursos o para ver
|
||
|
si esas personas pueden intervenir para volver a negociar los plazos y
|
||
|
las prioridades. Si estás atascado sin salida (tus responsables no va a
|
||
|
interceder y los clientes no van a volver a negociar los compromisos)
|
||
|
entonces tendrás que tomar algunas decisiones sobre cómo son de
|
||
|
importantes esas prioridades frente a tus propias prioridades (esas
|
||
|
tareas ayudan a tus ingresos, lo que contribuye a continuar con tu
|
||
|
estilo de vida), pero tu propia salud y tu propio bienestar debería
|
||
|
tener más peso en la toma de tu decisión que sus prioridades o sus
|
||
|
plazos de entrega. Quizás puedas negociar algo de tiempo libre o
|
||
|
vacaciones después de ese periodo para poder descansar, relajarte y
|
||
|
recuperar tu fortaleza y agudeza mental antes de volver a pasar por una
|
||
|
situación parecida.</p>
|
||
|
<p>Aprender a decir “no” es una capacidad muy importante como
|
||
|
programador. A menudo nos vemos a nosotros mismos como seres
|
||
|
extraordinarios que pueden hacer cualquier cosa que se propongan, en
|
||
|
parte porque los equipos informáticos con los que trabajamos parece que
|
||
|
pueden hacer cualquier cosa. Desafortunadamente, tenemos unos recursos
|
||
|
físicos y emocionales finitos, así que aprender a escoger y elegir los
|
||
|
proyectos que son más importantes para nosotros (dependiendo de nuestro
|
||
|
propio criterio) nos ayudará a mantenernos a medida que vamos avanzando
|
||
|
en nuestra carrera profesional como programadores. Si decimos que “sí” a
|
||
|
todo lo que alguien escoge por nosotros entonces tendremos menos tiempo
|
||
|
para trabajar en las cosas que realmente nos importan. Estaremos a
|
||
|
merced de personas cuyas prioridades y deseos no coinciden con los
|
||
|
nuestros. La forma más efectiva de agotarse es gastar toda tu energía
|
||
|
trabajando en proyectos que no encajan con tus prioridades y deseos.</p>
|
||
|
<p>Experimentarás periodos de agotamiento en tu carrera profesional como
|
||
|
programador. Te encontrarás con cosas que sobrepasarán tu capacidad para
|
||
|
hacerles frente. Te verás atrapado en bucles en los que te preguntarás
|
||
|
si esto es realmente lo que deberías estar haciendo. Comprender lo que
|
||
|
estás sintiendo y reconocer que esos sentimientos son válidos es el
|
||
|
primer paso para cambiar tu trayectoria del agotamiento y el estrés. La
|
||
|
programación no debería ser una tarea tediosa (ningún trabajo de valor
|
||
|
debería serlo). Debería haber algo en tu día a día como programador que
|
||
|
te mantuviera motivado y te ayudara a aumentar tus conocimientos. Añadir
|
||
|
pizcas de conocimiento, disfrute y asombro, junto con periodos de
|
||
|
inactividad, te ayudará a mantenerte a salvo en la turbulencia emocional
|
||
|
que te espera. Y reconocer cuando estás agotado y volver a negociar tus
|
||
|
compromisos contigo mismo y con otras personas puede ayudarte a
|
||
|
revitalizar tus deseos de continuar programando.</p>
|
||
|
<h2 data-number="7.9" id="buscar-ayuda"><span
|
||
|
class="header-section-number">7.9</span> Buscar ayuda</h2>
|
||
|
<p>Me gustaría enfatizar el hecho de que está bien el pedir ayuda a
|
||
|
otras personas. Personalmente me ha costado pedir ayuda. Parte de mi
|
||
|
reticencia a la hora de pedir ayuda estaba provocada por que cada vez
|
||
|
que hacía una pregunta obtenía la temida respuesta de “eso ya deberías
|
||
|
saberlo”. Otras veces creía que al pedir ayuda, eso de alguna manera
|
||
|
haría mermar mi reputación. Me considerarían un fraude o un impostor.
|
||
|
Las personas se preguntarían por qué habrían confiado en mí al
|
||
|
principio. Pero cuando finalmente pedí ayuda, las respuestas no fueron
|
||
|
“¿por qué no sabes sobre eso?” si no que fueron “¿por qué no has pedido
|
||
|
ayuda antes?” Claro que hubo ocasiones donde alguien se habría
|
||
|
sorprendido de que no supiera algo, o que recibiría críticas por mi
|
||
|
ignorancia, pero encontré que los beneficios de preguntar superan con
|
||
|
creces cualquier efecto negativo.</p>
|
||
|
<p>Pedir ayuda no está limitado únicamente a temas técnicos, hay muchas
|
||
|
otras maneras en las que podríamos necesitar ayuda. Podríamos preguntar
|
||
|
a colegas que nos ayudasen durante un periodo difícil de nuestras vidas.
|
||
|
Podríamos necesitar ayuda de nuestros superiores cuando estamos luchando
|
||
|
de alguna manera ya sea personal o profesionalmente. Podríamos incluso
|
||
|
necesitar diferentes tipos de ayuda de diferentes profesionales
|
||
|
(doctores, terapeutas, etc). Involucrar a otras personas en nuestros
|
||
|
problemas puede ser desalentador (o incluso abrumador) pero obtener
|
||
|
ayuda de manera temprana puede ayudarnos a prevenir formas más graves de
|
||
|
agotamiento o estrés.</p>
|
||
|
<p>La razón más común de nuestra reticencia a la hora de pedir ayuda es
|
||
|
nuestro deseo de confort. Pedir ayuda significa el ponernos a nosotros
|
||
|
mismos en un estado de vulnerabilidad y esperar que las personas a las
|
||
|
que pedimos ayuda nos traten con amabilidad, respeto y dignidad. Esta
|
||
|
vulnerabilidad puede verse amplificada si no conocemos a la persona a la
|
||
|
que pedimos ayuda o si esa persona es un profesional médico. Pero es
|
||
|
necesario el colocarnos en esa situación de vulnerabilidad,
|
||
|
especialmente si los problemas o situaciones a las que nos enfrentamos
|
||
|
están fuera de nuestro control o exceden nuestra experiencia. Si estamos
|
||
|
a punto de sentirnos agotados (o estamos inmersos en un proceso de
|
||
|
agotamiento) podremos necesitar la ayuda de un doctor o terapeuta para
|
||
|
tratar de la mejor manera la situación que estamos experimentando. Si
|
||
|
nuestro trabajo nos causa estrés o tensión, quizás necesitemos hablar
|
||
|
con otras personas de nuestro entorno para descubrir si también otras
|
||
|
personas están experimentando estos sentimientos. Incluso un simple acto
|
||
|
de compasión con nuestros compañeros puede ayudarnos a darnos cuenta que
|
||
|
no estamos solos enfrentándonos a estos problemas y puede ayudarnos a
|
||
|
encontrar mejores formas de gestionar nuestra carga de trabajo o estrés.
|
||
|
A veces no nos damos cuenta de cuando nuestros trabajos o relaciones han
|
||
|
pasado a ser de respetuosas y beneficiosas a ser algo que nos provoca
|
||
|
más daños que algo positivo.</p>
|
||
|
<p>“No hay que sentir vergüenza en pedir ayuda” es una frase demasiado
|
||
|
utilizada, pero pedir ayuda no es un acto vergonzoso. Necesitamos ayuda
|
||
|
de otras personas. Incluso simplemente alguien que diga “siento que
|
||
|
tengas que tratar con eso” puede ser una conexión con otra persona que
|
||
|
simpatiza con lo que estamos pasando. Encontrar a otras personas que
|
||
|
estén dispuestas a escuchar, empatizar y compadecerse puede ser la
|
||
|
diferencia entre sentirse parte de una comunidad o sentir que hemos sido
|
||
|
abandonados en nuestra profesión.</p>
|
||
|
<p>También necesitamos reconocer cuando nuestros sistemas de apoyo no
|
||
|
nos están siendo de ayuda. Si vemos que hablar con alguien más no nos
|
||
|
está ayudando a resolver los problemas, quizás necesitamos encontrar
|
||
|
otras vías de ayuda. Quizás nos demos cuenta que necesitamos ayuda
|
||
|
extra.</p>
|
||
|
<p>Darse cuenta de la necesidad de apoyo adicional puede ser difícil,
|
||
|
pero una vez que hayas llegado a la conclusión, te animo a que actúes
|
||
|
para conseguir esa ayuda extra. Esto requiere de auto conciencia y
|
||
|
honestidad con lo que estás sintiendo. Solo tu conoces tu situación y si
|
||
|
estás siendo honesto contigo mismo. Si no estás siendo honesto contigo,
|
||
|
entonces solo tu puedes darte cuenta de eso y puedes tomar la iniciativa
|
||
|
para buscar la ayuda que necesites. Nadie mejor que tu conoce tus
|
||
|
propios mecanismos internos.</p>
|
||
|
<p>Pedir y recibir ayuda es una habilidad y como cualquier otra
|
||
|
habilidad requiere práctica. Cuando éramos niños, teníamos medios muy
|
||
|
simples para pedir ayuda (llorar, señalar algo, etc). Estas habilidades
|
||
|
están grabadas en nosotros como parte de nuestros mecanismos de
|
||
|
supervivencia, pero a medida que crecemos nuestro mundo se vuelve más
|
||
|
complejo. Nuestros métodos de pedir ayuda tienen que madurar igual que
|
||
|
nosotros mismos vamos madurando. Esto no es algo que surja de manera
|
||
|
natural en ninguno de nosotros. Nos resistiremos a pedir ayuda y nos
|
||
|
resistiremos cuando estemos recibiendo ayuda de otras personas. La
|
||
|
repetición y una práctica cuidadosa nos ayudará a mejorar nuestra
|
||
|
habilidad de pedir ayuda. Mejorar esas habilidades nos ayudará a
|
||
|
sobreponernos a los obstáculos a los que nos enfrentamos en nuestro día
|
||
|
a día. Esa mejora nos ayudará a ser no solo mejores programadores si no
|
||
|
también a mejorar cómo gestionamos los retos que la vida nos ofrece.</p>
|
||
|
<h2 data-number="7.10" id="renunciar"><span
|
||
|
class="header-section-number">7.10</span> Renunciar</h2>
|
||
|
<p>A los programadores no les gusta pensar en darse por vencidos.
|
||
|
¿Cuantas veces hemos pedido a otras personas que tengan paciencia
|
||
|
mientras intentábamos solucionar algo que no estaba funcionando?
|
||
|
(“Déjame unos minutos más, por favor, ¡de verdad!”) Trabajamos con
|
||
|
máquinas que parece que no tienen límites en sus posibilidades. Como
|
||
|
programadores nos sentimos obligados a explorar esas posibilidades, pero
|
||
|
a veces no queremos hacer esa exploración. A veces echamos un vistazo a
|
||
|
la lista de cosas que deberíamos aprender y nos preguntamos si merece la
|
||
|
pena el esfuerzo. Miramos las ofertas de empleo relacionadas con
|
||
|
nuestras habilidades y no encontramos mas que trabajos sin sentido. Los
|
||
|
nuevos programadores nos preguntan qué es ser un programador y nos
|
||
|
preguntamos si deberíamos advertirles sobre los peligros de escoger una
|
||
|
profesión que nos ha llevado a ser infelices y sentirnos insatisfechos.
|
||
|
La alegría que sentíamos mientras aprendíamos el oficio va
|
||
|
desapareciendo y luchamos contra el miedo de nunca volver a sentir ese
|
||
|
sentimiento de nuevo.</p>
|
||
|
<p>La programación no es para todo el mundo. Ha habido momentos donde me
|
||
|
he preguntado si debería continuar trabajando como programador. Estoy
|
||
|
frustrado porque no puedo aprender todo lo que quiero saber. Me preocupa
|
||
|
que lo que estoy aprendiendo siga siendo relevante cuando haya acabado.
|
||
|
Siento ansiedad por no se capaz de competir en un mercado laboral donde
|
||
|
todos los demás parecen tener ventaja. Lucho por conseguir un puesto de
|
||
|
trabajo que ofrece un puesto que no creo que vaya a ser relevante dentro
|
||
|
de seis meses, y ya no digamos 10 o 100 años. Siento que el futuro de la
|
||
|
computación que me prometieron ha sido corrompido y todos nosotros
|
||
|
estamos atrapados en un mundo donde los ordenadores no son más que
|
||
|
simples palancas para que las empresas abran las carteras de sus
|
||
|
clientes.</p>
|
||
|
<p>Es fácil volverse fatalista sobre la práctica de la programación,
|
||
|
pero me he dado cuenta de que hay más en la informática y la
|
||
|
programación que lo que el mercado laboral ofrece.</p>
|
||
|
<p>Parte del placer de programar es la curiosidad. Si podemos alimentar
|
||
|
nuestra curiosidad mientras programamos, entonces tenemos muchas vías
|
||
|
por explorar. Siempre hay otras ideas y otros temas por descubrir, como
|
||
|
el desarrollo de juegos, lenguajes de programación “esotéricos” u otros
|
||
|
paradigmas de programación. El mercado laboral utiliza una fracción de
|
||
|
las ideas de programación que están esperando a ser exploradas. También
|
||
|
hay muchos emuladores y equipos antiguos disponibles con buena
|
||
|
documentación y comunidades vibrantes. Un área que me ha intrigado, es
|
||
|
aprender cómo funcionan las computadoras más antiguas. Las computadoras
|
||
|
más antiguas son simples y se pueden entender con paciencia y la
|
||
|
mentalidad adecuada. Estas máquinas son bien conocidas y la mayoría de
|
||
|
estos programas más antiguos fueron elaborados por un solo programador.
|
||
|
Constituyen excelente espacio para aprender no solo cómo funcionaban las
|
||
|
máquinas más antiguas, sino también muchos de los conceptos que aún
|
||
|
impregnan nuestras máquinas modernas.</p>
|
||
|
<p>¿Qué ocurre cuando nos damos cuenta de que no quedan en nosotros
|
||
|
ganas de disfrutar al programar? ¿Qué hacemos cuando la idea de
|
||
|
programar ya no nos emociona? ¿Cómo continuamos cuando la simple idea de
|
||
|
probar algo nuevo nos llena de terror? ¿Entonces qué?</p>
|
||
|
<p>Si no encontramos ninguna diversión en programar, entonces
|
||
|
necesitamos entender por qué nos estamos sintiendo de esta manera.
|
||
|
Quizás estamos cansados después de un proyecto muy duro que ha agotado
|
||
|
en nosotros toda la diversión y la emoción de programar. Quizás las
|
||
|
comunidades a las que nos hemos unido, ya sea en nuestra ciudad o por la
|
||
|
red son hostiles o poco acogedoras. Quizás pensemos que programar sería
|
||
|
más divertido pero cada vez que empezamos, desearíamos estar haciendo
|
||
|
<em>algo</em> / <em>cualquier cosa</em> en su lugar.</p>
|
||
|
<p>Programar es lo mejor cuando de verdad quieres hacerlo. No es para
|
||
|
cualquiera. Si estás estancado en una situación en la que no quieres
|
||
|
programar nunca más, entonces el mejor rumbo que puedes tomar es dejar
|
||
|
de ser programador. No tiene que ser vergonzoso dejar de programar,
|
||
|
muchos programadores han perdido la chispa de la ilusión y el deseo de
|
||
|
programar y se han cambiado a otros campos. Está bien dejar el campo de
|
||
|
la programación y hacer otra cosa.</p>
|
||
|
<p>La programación solo es una faceta de nuestras vidas. Cierto, puede
|
||
|
ser una faceta muy grande de nuestras vidas y puede dar miedo el
|
||
|
abandonar algo en lo que hemos trabajado tan duro para conseguir. Pero
|
||
|
si nos damos cuenta que únicamente seguimos los movimientos por inercia
|
||
|
y ya no experimentamos ningún disfrute cuando estamos programando,
|
||
|
entonces es tiempo de pensar sobre qué más podemos hacer con nuestras
|
||
|
vidas fuera de la programación. Se nos concede una cantidad limitada de
|
||
|
tiempo para vivir nuestras vidas. Hacer algo con lo que no disfrutamos
|
||
|
nos impide vivir una vida más significativa.</p>
|
||
|
<p>Renunciar no debe ser una experiencia negativa. No hay vergüenza en
|
||
|
quitarle tiempo a ser programador. Muchos programadores se han dado un
|
||
|
“año sabático” de la programación para explorar otros intereses y
|
||
|
recargarse de energía. Romper bucles de experiencias negativas en la
|
||
|
programación puede ayudarnos a identificar lo que queremos de la
|
||
|
programación y de la profesión de programador. Puede ayudarnos a
|
||
|
encontrar y confirmar nuestros sentimientos más íntimos sobre la
|
||
|
programación y ver si todavía estamos destinados a seguir por este
|
||
|
camino.</p>
|
||
|
<p>Hay varios miedos que pueden impedirnos hacer esta ruptura con la
|
||
|
programación. El primer temor se conoce con el elegante nombre de
|
||
|
“falacia de la inversión irrecuperable”. La falacia de la inversión
|
||
|
irrecuperable es la creencia de que el tiempo y el esfuerzo que
|
||
|
dedicamos a aprender y programar es una inversión, y esa inversión se
|
||
|
desperdiciará si renunciamos. Por lo tanto, para preservar nuestra
|
||
|
inversión debemos seguir programando. El problema con esta falacia es
|
||
|
que supone que aún no hemos recibido el beneficio de ese tiempo y
|
||
|
esfuerzo. Yo diría que aprender cualquier tipo de programación no es una
|
||
|
habilidad desperdiciada. La programación se puede aplicar en muchas
|
||
|
facetas de nuestras vidas, como simplificar tareas dividiéndolas en
|
||
|
porciones más manejables, aplicar el pensamiento estructurado y
|
||
|
comprender la lógica booleana básica. Muchos otros campos también han
|
||
|
adoptado las computadoras, por lo que tener habilidades informáticas
|
||
|
puede ser útil para ti o para otras personas. El conocimiento que tienes
|
||
|
no se desperdiciará.</p>
|
||
|
<p>El segundo miedo es el miedo a defraudar a nuestros compañeros
|
||
|
programadores y a otras personas de nuestra organización si abandonamos
|
||
|
la programación. Esto es complicado. Es complicado porque incluye a
|
||
|
otras personas en nuestro proceso de toma de decisiones. Es posible que
|
||
|
estemos en una organización que tiene una carga sustancial de tareas
|
||
|
para completar, y nuestra decisión de renunciar significará que estas
|
||
|
tareas no se completarán de la manera en que deseamos que se completen.
|
||
|
No es difícil imaginar que nuestra ausencia cause daño a toda la
|
||
|
organización y resulte en su eventual colapso. ¿Es cierto este
|
||
|
escenario? Depende de nosotros determinar si nuestra ausencia realmente
|
||
|
decepcionará a todos en nuestra organización. Esto nos pone en una
|
||
|
situación en la que nuestro miedo nos mantiene sintiéndonos
|
||
|
“acorralados”. Nos sentimos “acorralados” porque nuestro miedo ha creado
|
||
|
una situación en la que estamos eligiendo entre nuestro propio bienestar
|
||
|
o el bienestar de los demás. Esta es una falsa dicotomía. Nuestra
|
||
|
ausencia podría ser el catalizador para que alguien más retome nuestras
|
||
|
tareas y trabaje en ellas, y posiblemente las complete de manera más
|
||
|
efectiva que nosotros en nuestro estado actual. Necesitamos determinar
|
||
|
si somos realmente insustituibles o si alguien más podría tomar nuestro
|
||
|
lugar. La respuesta podría ser “soy insustituible, pero necesito salir
|
||
|
de esta situación o me haré daño a mí mismo y a los demás si esto
|
||
|
continúa”. Depende de nosotros revisar si nos estamos ayudando a
|
||
|
nosotros mismos y a las organizaciones a las que servimos, o si los
|
||
|
estamos perjudicando a ellos y a nosotros mismos al engañarnos pensando
|
||
|
que esto está funcionando.</p>
|
||
|
<p>El tercer miedo tiene que ver con nuestro propio concepto personal de
|
||
|
identidad y la memoria de nuestra comunidad. Si decidimos dejar de ser
|
||
|
programadores, ¿borrará eso de alguna manera una parte de nuestra
|
||
|
identidad? ¿Nuestra comunidad dejará de identificarnos como
|
||
|
programadores y perderemos contacto con personas que se han convertido
|
||
|
en amigos y colegas? Una vez más, este miedo es difícil de superar
|
||
|
porque la programación puede ser una parte importante de nuestra
|
||
|
identidad. Dejar de lado la programación nos puede llevar a sentir que
|
||
|
nos estamos desprendiendo de una parte de nosotros mismos y de nuestra
|
||
|
identidad. También existe el temor de que la gente deje de llamarnos
|
||
|
para trabajos u otros proyectos de programación si decidimos tomarnos un
|
||
|
descanso temporal. Si el descanso es temporal, ¿la gente recordará
|
||
|
nuestras habilidades en programación cuando decidamos regresar?</p>
|
||
|
<p>Cada uno de estos miedos y preocupaciones son perfectamente válidos,
|
||
|
pero pueden no ser ciertos. Podemos sentir miedo de que estamos
|
||
|
malgastando nuestro tiempo como programador, pero la verdad es que
|
||
|
cualquier proceso de aprendizaje no es en absoluto un esfuerzo
|
||
|
malgastado. Podemos preocuparnos de cómo otras personas nos perciben o
|
||
|
de cómo la empresa de la que formábamos parte continuará sin nosotros,
|
||
|
pero la verdad es que no podemos controlar sus percepciones ni sus
|
||
|
acciones. Lo que podemos controlar es nuestra participación en cada una
|
||
|
de esas comunidades y nuestra propia percepción del tiempo y esfuerzo
|
||
|
invertidos. Podemos determinar si una ruptura profunda de la
|
||
|
programación sería mejor que una salida gradual de nuestros compromisos.
|
||
|
Podemos aclarar con las demás personas cual es nuestro estado actual
|
||
|
como programador y determinar si este estado es temporal o permanente.
|
||
|
La cuestión más importante es no permitir a los demás que nos convenzan
|
||
|
de hacer algo que no queremos o que es perjudicial para nosotros. Si
|
||
|
necesitamos parar nuestra actividad en programación porque estamos
|
||
|
emocionalmente exhaustos y agotados, entonces debemos dejarlo claro a
|
||
|
los demás que les estaremos perjudicando a ellos y a nosotros mismos si
|
||
|
continuamos.</p>
|
||
|
<p>Las comunidades más maduras entenderán la necesidad de tomar un
|
||
|
descanso y dejar de programar. Entenderán que tu bienestar mental y
|
||
|
emocional es más importante que sus necesidad de que continúes y serán
|
||
|
capaces de realizar lo que se necesite hacer y subsanar tu ausencia. Es
|
||
|
normal y natural en las personas el cambiar de empresas y perseguir
|
||
|
otras prioridades.</p>
|
||
|
<p>Lo más importante para recordar, es que es correcto el apagar esa
|
||
|
parte de tu ser y dejar de ser programador. Si haces o no que un cambio
|
||
|
permanente depende de ti y de tus deseos. Sentirse emocionalmente
|
||
|
exhausto, sin inspiración y agotado es contraproducente para la práctica
|
||
|
de programación: la programación es una tarea bastante difícil. Tomarse
|
||
|
un descanso de la programación para explorar otros intereses es natural
|
||
|
y no significa que seas menos programador por querer hacer algo
|
||
|
diferente para recargarte de energía. Si descubres que eres más feliz
|
||
|
cuando no estás programando, busca cualquier otra cosa que llame tu
|
||
|
atención con todas tus ganas. Si decides volver a la programación
|
||
|
después de estar fuera durante un tiempo, puedes regresar y retomar tu
|
||
|
práctica de aprendizaje. Recuerda: nuestras vidas toman muchos giros y
|
||
|
caminos diferentes. El mejor camino para ti es el que haces tú mismo,
|
||
|
sin importar a dónde te lleve.</p>
|
||
|
<h1 data-number="8" id="epílogo"><span
|
||
|
class="header-section-number">8</span> Epílogo</h1>
|
||
|
<p>Es un estereotipo para un autor el decir que el libro que ha escrito
|
||
|
es el que le hubiera gustado leer cuando se enfrentó a los temas
|
||
|
presentados en el libro. Quizás es un estereotipo porque es cierto: este
|
||
|
libro contiene los consejos que me habrían ayudado cuando comencé este
|
||
|
viaje. Con demasiada frecuencia me he preguntado si he estado a la
|
||
|
altura de los niveles que he creado para representar al programador
|
||
|
ideal. Muchas veces he visto el éxito de mis compañeros y me pregunto si
|
||
|
yo soy un programador ineficaz o deficiente en mi aprendizaje. ¿Qué
|
||
|
estaba haciendo mal que otras personas hacen bien?</p>
|
||
|
<p>He llegado a la conclusión que el viaje de cada programador es único.
|
||
|
Tu viajes te llevará por direcciones que serán diferentes a las que me
|
||
|
llevó mi viaje. Tendrás experiencias que yo no puedo compartir y yo he
|
||
|
tenido experiencias que difícilmente tu podrás replicarlas a menos que
|
||
|
tengas una máquina del tiempo. Ninguna de nuestras experiencias es menos
|
||
|
válida que las del otro, ni son más o menos válidas que las experiencias
|
||
|
de otros programadores. Estas son nuestras experiencias. Las áreas de
|
||
|
nuestro conocimiento son solo las áreas que hemos explorado hasta ahora.
|
||
|
Siempre habrá brechas, pero podemos definir esas brechas como las áreas
|
||
|
que aún no hemos explorado. Siempre hay más para explorar, y esa
|
||
|
exploración es la parte divertida del viaje.</p>
|
||
|
<p>Ningún viajero puede estar en todos los lugares en todo momento.
|
||
|
Deben viajar a cada destino tan rápido o tan despacio como sus medios de
|
||
|
transporte les permitan y permanecer allí tanto como puedan antes de
|
||
|
viajar a su siguiente destino. Viajan con los compañeros que encuentren
|
||
|
en cada comunidad que puedan crear. Construyen relaciones y confían en
|
||
|
ellos mismos y en los demás. Utilizan sus puntos fuertes para ayudar a
|
||
|
otras personas y explorar y mejoran sus debilidades. Cada día continúan
|
||
|
adelante. Como el viajero, a menudo debemos escoger nuestros destinos y
|
||
|
compañeros. Podemos encontrar a aquellos, que como nosotros, están
|
||
|
viajando por el mismo camino y que nos pueden ayudar en nuestro viaje.
|
||
|
Podemos intercambiar historias sobre nuestros éxitos y fracasos y
|
||
|
experimentar cada día como otra etapa más en nuestro viaje.</p>
|
||
|
<p>Continuo mi viaje cada día y espero que como programador tu continúes
|
||
|
tu viaje cada día mientras seas capaz. Puede que no estemos exactamente
|
||
|
juntos en el mismo camino, pero tenemos la misma meta: hacer lo mejor
|
||
|
que sabemos hacer en cada momento.</p>
|
||
|
<p>Te deseo lo mejor en todos tus viajes y espero volver a escuchar las
|
||
|
historias de tus viajes cuando nos encontremos de nuevo.</p>
|
||
|
<h1 data-number="9" id="agradecimientos"><span
|
||
|
class="header-section-number">9</span> Agradecimientos</h1>
|
||
|
<p>Este libro no existiría sin las personas que me han acompañado en mi
|
||
|
viaje, tanto docentes como colegas. Mi agradecimiento y aprecio a todos
|
||
|
mis docentes en mis años de formación por brindarme sus mejores
|
||
|
esfuerzos para enseñarme programación en sus diversas formas. Estoy en
|
||
|
deuda con todos mis colegas y amigos programadores a lo largo de los
|
||
|
años que compartieron sus conocimientos conmigo y confiaron en mí lo
|
||
|
suficiente como para ayudarlos en el camino. También tengo la suerte de
|
||
|
tener muchas comunidades que me ayudan a mantenerme, incluidas <a
|
||
|
href="http://mug.org">Michigan!/usr/group</a>, <a
|
||
|
href="https://pyohio.org">PyOhio</a>, <a
|
||
|
href="http://coffeehousecoders.com">Coffee House Coders</a> y <a
|
||
|
href="htttp://loco.ubuntu.com/teams/ubuntu-us-mi">Ubuntu Michigan
|
||
|
Loco</a>. También a los que no encajan en estas categorías. Sepa que si
|
||
|
hemos pasado algún tiempo discutiendo la programación u otros asuntos,
|
||
|
nuestras discusiones son apreciadas profundamente.</p>
|
||
|
<p>También agradezco el trabajo de Leo Babauta de <a
|
||
|
href="http://zenhabits.net">Zen Habits</a> que me proporcionó las ideas
|
||
|
de <em>mindfulness</em> y contenedores de atención focalizada. Han sido
|
||
|
transformadoras en mi propio trabajo, como lo demuestra este libro. Me
|
||
|
comprometí a pasar al menos 10 minutos cada mañana escribiendo cada
|
||
|
sección, y los resultados son el trabajo que ves ante ti.</p>
|
||
|
<p>Gracias a los que me ayudaron directamente con este proyecto. Gracias
|
||
|
a mi madre, Sharon Maloney, por ayudarme en la edición de este libro.
|
||
|
Cualquier eerrorr que quede es responsabilidad del autor. Gracias a Beau
|
||
|
Sheldon por revisar el capítulo sobre salud mental y por ayudarme a
|
||
|
comprenderlo mejor y resaltar las áreas en las que lucha la gente.
|
||
|
Gracias a mi amigo, David Revoy, por su increíble portada y por su
|
||
|
inspiración durante todo el proyecto. Gracias a Esteban Manchado
|
||
|
Velázquez por agregar CSS y limpiar la versión HTML del texto. Gracias a
|
||
|
los lectores beta por sus valiosos comentarios y opiniones en
|
||
|
repositorio git en Framagit, incluidos (en orden alfabético por
|
||
|
identificador o nombre): Brendan Kidwell, D. Joe Anderson, David Revoy,
|
||
|
Eric Hallam, Jer Lance, Matthew Piccinato, Matthew Balch, Midgard,
|
||
|
Nicholas Guarracino, RJ Quiralta, Valvin y Wilhelm Fitzpatrick. Gracias
|
||
|
a Paco Esteban por los arreglos de edición.</p>
|
||
|
<p>Mi más profunda gratitud es para mi mujer JoDee y mis padres por su
|
||
|
apoyo y por creer en mí. Las palabras no pueden expresar el amor y el
|
||
|
agradecimiento que tengo por ellos.</p>
|
||
|
<h1 data-number="10" id="mi-viaje"><span
|
||
|
class="header-section-number">10</span> Mi viaje</h1>
|
||
|
<p>Mi viaje como programador comenzó cuando estaba en la escuela
|
||
|
primaria. Me interesé en las computadoras después de leer sobre ellas en
|
||
|
la <em>World Book Encyclopedia</em> y esperaba trabajar con ellas algún
|
||
|
día. Lo que no me di cuenta fue que esas enciclopedias estaban
|
||
|
desactualizadas y solo mostraban las computadoras centrales y las
|
||
|
minicomputadoras más grandes y costosas de la década de 1960 y no las
|
||
|
microcomputadoras más modernas que se introdujeron a fines de la década
|
||
|
de 1970. Cuando me di cuenta de que una Apple era una microcomputadora y
|
||
|
que estaba diseñada para el mercado doméstico, comencé mi búsqueda para
|
||
|
obtener una computadora propia (es decir: comencé a dar pistas no muy
|
||
|
sutiles a mis padres de que quería una computadora). Revisé revistas
|
||
|
como <em>Popular Computing</em> y <em>Byte Magazine</em> en busca de la
|
||
|
computadora adecuada, desde el Commodore VIC-20 y el Sinclair ZX-80
|
||
|
hasta el Radio Shack TRS-80 Model III (incluso el Rockwell AIM-65 o el
|
||
|
Heathkit H89 habrían servido. Por aquel entonces no era quisquilloso).
|
||
|
Mi padre me llevó a tiendas donde las vendían y me maravillé de la
|
||
|
variedad de máquinas que había allí (y probablemente puse nerviosos a
|
||
|
algunos vendedores mientras tecleaba y tocaba las máquinas nuevas y
|
||
|
bastante caras). Finalmente, mi padre compró una computadora Atari 400
|
||
|
con unidad de cinta y comencé a aprender programación BASIC en serio.
|
||
|
Casi al mismo tiempo, mi escuela abrió un “laboratorio de computación”
|
||
|
con tres máquinas Commodore PET 4032 (completas con unidades de
|
||
|
disquete), y me encontré pasando cada momento que podía con esas
|
||
|
máquinas. En la escuela secundaria tomé dos cursos de programación, uno
|
||
|
en BASIC y el otro en Pascal (que fue mi primera exposición a los
|
||
|
lenguajes de procedimiento y los conceptos básicos de la informática).
|
||
|
En la universidad me especialicé en Ciencias de la Computación con una
|
||
|
Licenciatura en Ciencias e hice todo lo posible para mantenerme al día
|
||
|
con todas las cosas que intentaron enseñarme. Desafortunadamente, no era
|
||
|
un gran estudiante (especialmente en matemáticas). Luché y luego
|
||
|
abandoné mi clase de compiladores, y sentí que me estaba quedando atrás
|
||
|
en comparación con otros estudiantes que tenían éxito. La mayoría de
|
||
|
nuestras clases usaban Pascal, con el que me estaba familiarizando, pero
|
||
|
había algunas clases que usaban COBOL, Ada, SNOBOL, C y lenguaje
|
||
|
ensamblador. Me gradué con notas modestas y regresé a casa.</p>
|
||
|
<p>A lo largo de mi carrera, he cruzado la brecha entre la
|
||
|
administración de sistemas y la programación. Linux era similar a las
|
||
|
máquinas SunOS que admiraba en la universidad, así que pasé a usar eso
|
||
|
como mi sistema operativo principal alrededor de 1995. En mis primeros
|
||
|
trabajos me encargaron el mantenimiento de varios tipos de computadoras:
|
||
|
PC de escritorio, máquinas basadas en UNIX y de manera ocasional de las
|
||
|
copias de seguridad de las máquinas VAX. No fue hasta que uno de mis
|
||
|
puestos necesitaba un sitio web que agregué más programación a mi
|
||
|
currículum. La programación de sitios web en la década de 1990 fue donde
|
||
|
realmente comencé a aprender y comprender Perl, SQL, bases de datos
|
||
|
relacionales y HTML. La web era tan nueva en la década de 1990 que todas
|
||
|
las personas en nuestros proyectos estaban aprendiendo al mismo tiempo.
|
||
|
Aproveché mi conocimiento de Perl en algunos otros trabajos y proyectos
|
||
|
haciendo programación basada en web. Perl en la década de 1990 era un
|
||
|
lenguaje donde los conceptos básicos eran simples de aprender pero el
|
||
|
lenguaje podía manejar ideas y estructuras de datos realmente complejas.
|
||
|
Perl y CGI facilitaron la incorporación en una página web de algo que
|
||
|
tuviera un poco de interactividad. Donde Perl se vuelve complejo es la
|
||
|
sintaxis de cosas como las expresiones regulares y la tendencia de los
|
||
|
programadores de Perl a valorar el código que realiza múltiples acciones
|
||
|
en la misma línea. La comunidad de Perl también valora el código
|
||
|
inteligente, lo que me llevó a preguntarme en varias ocasiones si era lo
|
||
|
suficientemente inteligente como para ser un programador de Perl.</p>
|
||
|
<p>Una de las empresas en las que trabajé decidió migrar un sistema Perl
|
||
|
a un entorno basado en Java. Analizaron las habilidades del equipo de
|
||
|
desarrollo existente y decidieron que necesitaban externalizar el
|
||
|
proyecto a otra empresa. Esta era una tendencia común a principios de la
|
||
|
década de 2000 por razones que están fuera del alcance de este libro.
|
||
|
Esto me dio un primer contacto como líder de un equipo. Sé que muchos
|
||
|
programadores migran a roles administrativos, pero en ese momento sentí
|
||
|
que no había explorado completamente mi potencial de programación. Me
|
||
|
senté en varias ocasiones e intenté aprender Java, pero nunca me llamó
|
||
|
la atención. El desarrollo web Java siempre lo sentí más engorroso que
|
||
|
los scripts CGI de Perl que creé. Tampoco ayudó que enviáramos archivos
|
||
|
<code>.war</code> a un sistema Tomcat, que parecía estar compuesto por
|
||
|
una gran cantidad de metadatos de configuración y muy poco código. Esto
|
||
|
es a lo que me refería cuando hablé de estar bien con renunciar a
|
||
|
aprender algo, a veces lo que tratamos de aprender es más una tarea
|
||
|
rutinaria. Tener algo que es una tarea rutinaria no va a proporcionar
|
||
|
una buena experiencia de aprendizaje.</p>
|
||
|
<p>Fue en ese momento cuando comencé a aprender Python por mi cuenta
|
||
|
usando Pygame. Me lancé al participar en mi primera competición <a
|
||
|
href="http://pyweek.org">Pyweek</a>. Pyweek es una competición de una
|
||
|
semana en la que la gente crea un juego completo desde cero. Fue un
|
||
|
desafío, pero también fue una de las experiencias más gratificantes que
|
||
|
he tenido en la programación. Creé un juego llamado “Busy Busy Bugs” que
|
||
|
se podía jugar en un momento en que realmente no sabía lo que estaba
|
||
|
haciendo. En muchos sentidos, estaba aprendiendo a nadar arrojándome al
|
||
|
proverbial fondo profundo. No estaba en peligro, pero el deseo de hacer
|
||
|
algo al final de la semana me guió de maneras que no creía que fueran
|
||
|
posibles.</p>
|
||
|
<p>A medida que la posición de líder técnico continuaba, me encontré con
|
||
|
ganas de hacer otra cosa. Me entrevisté en varios lugares y fui
|
||
|
contratado en Sourceforge como miembro del Grupo de Operaciones de
|
||
|
Sistemas. Sourceforge fue una experiencia increíble para mí. Soñaba con
|
||
|
trabajar para una empresa de código abierto, y pocas empresas de código
|
||
|
abierto eran tan bien consideradas como Sourceforge y Slashdot en la
|
||
|
comunidad de código abierto, pero mis inseguridades y el “síndrome del
|
||
|
impostor” entraron en acción. ¿Sería capaz de cortarlo? ¿Me contratarían
|
||
|
solo para darse cuenta de que habían cometido un error y que no era tan
|
||
|
bueno como decía ser? Yo era amigo y había ido a la escuela con varias
|
||
|
de las personas que trabajaban en Sourceforge/Slashdot, así que me
|
||
|
preguntaba cuales eran sus motivaciones para contratarme. ¿Me
|
||
|
contrataron como una broma elaborada o me contrataron porque varias
|
||
|
personas en la empresa me conocían? Todos estos pensamientos pasaron por
|
||
|
mi cabeza mientras trabajaba allí. No ayudó que mi posición fuera
|
||
|
principalmente administración de sistemas a un nivel en el que no tenía
|
||
|
experiencia. También había un componente de programación en el puesto,
|
||
|
pero constantemente sentía que estaba muy por encima de mi cabeza. Vivía
|
||
|
con el temor constante de que me descubrieran y de que el trabajo que
|
||
|
quería ya no estuviera disponible para mí. De acuerdo, aprendí mucho y
|
||
|
tuve unos jefes muy amables en Sourceforge, pero vivía con pavor cada
|
||
|
vez que mi gerente me consultaba, porque temía que la conversación solo
|
||
|
resaltara que se suponía que yo no debía estar allí.</p>
|
||
|
<p>Me encantaría decir que tuvo un final feliz y que mis temores eran
|
||
|
infundados, pero lamentablemente me despidieron de ese puesto debido a
|
||
|
restricciones presupuestarias. Estoy agradecido por las oportunidades
|
||
|
que tuve allí, los amigos que hice y las experiencias que tuve, pero
|
||
|
estaría mintiendo si no dijera que el despido vino con una mezcla de
|
||
|
tristeza y alivio. Tristeza por no poder volver a tener un trabajo
|
||
|
genial como ese y alivio por poder dejar de lado por el momento esos
|
||
|
sentimientos del síndrome del impostor. En muchos sentidos, crecí a
|
||
|
partir de la experiencia de trabajar en Sourceforge y aprendí mucho
|
||
|
sobre mí y mis capacidades mientras trabajé allí, pero también fue el
|
||
|
puesto en el que sentí mi síndrome del impostor en su máxima
|
||
|
expresión.</p>
|
||
|
<p>Más tarde me contrataron para un puesto a tiempo completo haciendo
|
||
|
programación Python. Este empleo me permitió fortalecer mi oficio como
|
||
|
desarrollador de Python. Allí creé muchos proyectos interesantes y seguí
|
||
|
aprendiendo más sobre Python. Me ayudó a recuperarme y ampliar mis
|
||
|
habilidades. La gente en este trabajo fue muy comprensiva y amable. Hubo
|
||
|
momentos en los que se volvió estresante (todos los trabajos parecen
|
||
|
tener estrés), pero en general fue una experiencia positiva.</p>
|
||
|
<p>Lamentablemente, también me despidieron de ese puesto (el dinero
|
||
|
apesta, ¿sabes?).</p>
|
||
|
<p>Empecé mi búsqueda de trabajo en serio y fui a un montón de
|
||
|
entrevistas. Si bien todas las personas en las entrevistas parecían
|
||
|
impresionadas con mis habilidades y mi carrera, caí en una de dos
|
||
|
categorías: no encajaba bien en el puesto o no tenía suficientes
|
||
|
conocimientos en las áreas que buscaban. Me encontré haciendo pruebas
|
||
|
cronometradas de escribir código que parecían estar probando si me
|
||
|
estresaba fácilmente en lugar de las habilidades de de escribir código
|
||
|
que pudiera tener. Me senté en sesiones en las que escribía código con
|
||
|
figuras sombrías que gritaban comandos y requisitos mientras hacía todo
|
||
|
lo posible por seguirlos. Hice acertijos de matemáticas y problemas de
|
||
|
lógica (lo cual es horrible si no eres bueno ni en matemáticas ni en
|
||
|
problemas de lógica). Los primeros indicios prometedores se convirtieron
|
||
|
más tarde en cartas de rechazo (suponiendo que me respondieran), y la
|
||
|
desesperación se apoderó de mí cuando me enfrenté a la perspectiva real
|
||
|
de que tendría que dejar la programación si quería ganarme la vida. Las
|
||
|
visiones de regresar a los comienzos de mi carrera me llenaron de pavor.
|
||
|
Parecía que ya nadie quería arriesgarse conmigo y no podía competir con
|
||
|
tantos programadores nuevos que no habían cometido los errores que yo
|
||
|
había cometido en mi carrera.</p>
|
||
|
<p>Durante ese periodo registré el dominio web
|
||
|
themediocreprogrammer.com. Si yo iba a ser un desastre entonces podría
|
||
|
aceptarlo.</p>
|
||
|
<p>Afortunadamente, he tenido una comunidad de amigos y compañeros
|
||
|
programadores que me han ayudado. En mi trabajo actual estoy contratado
|
||
|
por uno de estos amigos al que ayudo con las tareas de programación. Ese
|
||
|
puesto surgió al asistir a PyOhio (una conferencia de programación) que
|
||
|
se celebra todos los años. En todas mis luchas, he tenido la suerte de
|
||
|
tener allí a una comunidad que me ha ayudado. Es por eso que creo que
|
||
|
las comunidades son tan geniales: nos brindan una red de personas que de
|
||
|
otra manera no tendríamos, y nos ayudan a superar nuestros triunfos y
|
||
|
nuestras luchas.</p>
|
||
|
<p>Soy una colección de todas estas experiencias. Todas ellas me hacen
|
||
|
quien soy. A veces me pregunto si debería haber tomado un camino
|
||
|
diferente o haber hecho algo diferente, pero ese es un ejercicio inútil.
|
||
|
Lo mejor que puedo hacer con estas experiencias es aprender de ellas y
|
||
|
seguir adelante. Cada día trabajo para mejorar y superarme. Cada día
|
||
|
cometo nuevos errores, pero todo eso es parte del proceso de
|
||
|
aprendizaje.</p>
|
||
|
<p>Mi viaje continua.</p>
|
||
|
</body>
|
||
|
</html>
|