Siempre pensé en mí mismo como un programador bastante atractivo. Luego, un nuevo tipo, llamado Aaron, fue contratado en nuestro equipo. Aaron era obviamente mucho mejor que yo en la mayoría de las áreas. Él también era más joven que yo. Me hizo darme cuenta de que realmente no había mejorado mucho en los últimos años. Era un hacker ad-hoc, y mediocre en eso.
Esto me alertó de intentar conscientemente mejorarme a mí mismo y especialmente a la calidad del código que escribo.
Aaron me llevó a aprender muchas cosas. Me enseñó que la mayor parte del código que escribo tendrá que mantenerse y ampliarse durante al menos varios años, por lo que debería escribir el código con eso en mente. Debería escribir pruebas automáticas para mi código. Aaron siempre estaba hablando de cómo nunca debería parar en la primera versión funcional, sino refactorizar y refinar hasta que el código sea elegante. Descubrí que los idiomas y las herramientas que estaba usando tenían mucho margen de mejora.
Lo más importante que aprendí de Aaron fue que nunca dejara de aprender.
Después de un par de años, Aaron dejó la compañía. Me senti vacio. Los últimos años con él me habían llevado a niveles completamente nuevos de habilidad, y me di cuenta de que ahora era mucho mejor que el resto del equipo. Seguían escribiendo códigos incorrectos y cometían los mismos errores que antes. Traté de enseñarles, pero no tenían interés en aprender. De hecho, estaban molestos porque alguien sería tan arrogante para decirles qué errores estaban cometiendo.
Entonces, unos meses después, dejé la compañía también. Me mudé a una empresa más pequeña con un equipo muy talentoso. Todos allí querían aprender más, y me encantó.
Me alegro de haber conocido a Aaron. Sin él, probablemente todavía estaría trabajando en la vieja compañía con la vieja pandilla, yendo a ninguna parte y pensando demasiado en mí mismo.