Es normal pasar por diferentes fases cuando se está en alguna carrera, pero los profesionales TI presentan una peculiar progresión y más en específico cuando se trata de programadores.
Un interesante, y divertido, planteamiento es el que propone Mark O’Connor, programador, escritor irregular e investigador de Inteligencia Artificial, en un post algo viejo de su blog Yield Thought en el que comparte las fases por las que pasa el programador incompetente.
El entusiasta novato está lleno de pasión y emoción por su único lenguaje, que puede ser VB, PHP o actionscript. Finalmente, al comprender la sintaxis de dicho lenguaje, siente que lo domina por completo en todas sus formas. El novato escribe asombrosamente rápido, pero todo termina en un gran archivo lleno de variables globales. Esta es una etapa muy productiva, si se realizan pequeños juegos de gusanos y utilidades al azar / proyectiles de reemplazo.
Continúa el genio en ciernes, que después de haber programado durante unos años y aprendido un segundo lenguaje, está firmemente convencido de que él es el Mesías del mundo de la programación. Él refuerza esta visión del mundo con su convicción de que todo lo que no entiende (es decir, casi todo) es inútil, pasado de moda y una pérdida de tiempo.
El monstruo de la abstracción. Después de un tiempo, todos los programadores nuevos se darán cuenta de que comienzan cada nuevo juego flash copiando el 90% del anterior. De repente, se les ocurre que podrían escribir un motor de juego «súper» para escribir un nuevo juego tan simple como encontrar los sprites y escribir un archivo de configuración que contenga las reglas. Enrojecido por este éxito, el aspirante a fanático de la abstracción comienza a creer que todos los programas deberían generalizarse.
El veterano. Cualquier programador expuesto a la amarga realidad de trabajar en una compañía de software comercial desalmada, mezclando bits en un disco duro por el mismo salario cada mes, eventualmente desarrolla una cierta capa protectora. Ni la velocidad ni el genio son recompensados, por lo que a menudo un desarrollador profesional comienza a desarrollar un estilo muy cuidadoso y medido que garantiza que nunca sea atrapado ni por los errores ni por la administración, que él considera que es prácticamente lo mismo.
El ‘Guru’. Después de aproximadamente una década de saltar de un estereotipo al siguiente, el novato ya ha crecido, pero se siente como una concha hueca del entusiasta que alguna vez fue. Una mañana, se despierta y se da cuenta de que la gruesa capa de pruebas unitarias, aserciones, verificación de errores y diseño de clases que se han desarrollado en torno a su estilo de programación son solo muletas, muletas que la arrastran hacia abajo y que ya no necesita. Ella los quita y comienza a escribir el código más simple y escueto que se le ocurra para hacer lo que necesita.