¿Soy un buen 'developer'?

Después de un par de años estudiando y programando en Perl, un día me llegó la gran interrogante: ¿soy un buen programador?

Hace como un año, en un foro alguien preguntó ¿cómo contratar un buen programador? Como era de esperar varios pusieron sus teorías y la forma en que ellos personalmente contratan a sus programadores y diseñadores. El tema me pareció muy interesante, no tanto por la pregunta sino por las respuestas que habían brindado personas de renombre. Esto me hizo pensar realmente cual podría ser la manera de saber si alguien es un buen o mal programador.

No hay un sistema 100% fiable para examinar a alguien y decidir si tiene un verdadero conocimiento de programación, pero desde mi punto de vista personal, considero que eres un buen 'developer' por una simple cosa: RESULTADOS.

Estas son las cuatro variables que juegan en mi criterio:

Creatividad

Muchas personas a las que les comento que para ser programador necesitas de mucha creatividad se quedan impactadas, porque suelen asociar a los ordenadores con la falta de creatividad. Vamos, los ordenadores son máquinas, pero nosotros los programadores NO.

Hasta ahora no conozco un lenguaje de programación que no te brinde diferentes soluciones a un mismo problema. Es lo que comúnmente se llama "There Is More Than One Way To Do It", que en español se traduce como: hay más de una manera para lograrlo. Por eso creo que lo primero que debe tener un buen programador es creatividad.

Creatividad para crear soluciones factibles, rápidas y sencillas a problemas complicados. Por mi experiencia, esto es lo más difícil, no hay un manual sobre "Creatividad Básica" que te haga instantáneamente creativo ni es algo que se pueda comprar en ninguna tienda. La creatividad se lleva dentro y hay unos que tienen poca y otros mucha más. Y por supuesto, si te lo propones, puedes aprender a ser creativo.

Pero lo que es un hecho es que sin creatividad te conviertes inmediatamente en un mal programador, porque aunque la solución sea evidente es la falta de la misma la que te imposibilita ver lo que esta enfrente de ti.

Conocimientos

El segundo punto que debe evaluarse son los conocimientos. Porque aunque tengas creatividad si no tienes conocimientos no podrás llevar a cabo lo que ideaste. Considero que un buen programador más que saber el ¿cómo? sabe el ¿por qué? de las cosas. No es lo mismo saber como solucionar un problema a saber realmente como funciona esa solución.

Un buen programador debe comprender el lenguaje, el por qué actúa de esta u otra manera, para poder usarlo al 100%.

Consulta

Como tercer punto, y el que muy pocas personas mencionaron es la capacidad de consulta. Es imposible que una sola persona sepa todas las soluciones a todos los problemas, y la verdad es que la mayoría de nosotros sabe alrededor de un 50% de las capacidades completas de un lenguaje de programación. Es aquí donde entra la importancia de este punto. Todo buen programador debe de tener la capacidad de encontrar conocimiento necesario de manera rápida, ya sea buscando en libros o en la web. Muchas veces yo me veo en la necesidad de buscar ciertas funciones que se que existen pero que no recuerdo las sintaxis, así que uso mis apuntes, los cuales están divididos en tres categorías: básico, intermedio y experto.

Eficiencia

Llegamos a nuestro cuarto punto. Un buen programador debe dar soluciones de manera rápida y eficiente. Es lógico que varias veces se necesitan hacer pruebas para saber si un código funciona. Pero creo que todo buen programador debe de tener una guía de trabajo, un plan personal con el cual lleva a cabo todos sus desarrollos.

Espero que este post haya servido para evaluarte. Como se menciona antes, solo es un criterio personal.

Fuente: Programmers Stack Exchange

Ilustración: Panop Koonwat