Después de un par de años estudiando y programando perl un día me llegó la gran interrogante: ¿soy un buen programador?
Hace como un año en un foro una persona preguntó ¿cómo contratar un buen programador?. Como era de esperarse varias personas pusieron sus teorías y la manera en que ellos personalmente contratan a sus programadores y diseñadores.
Se me hizo muy interesante este tema y no tanto por la pregunta sino por las respuestas que habían brindado varias personas de re-nombre en el mundo de la programación.
Esto me hizo meditar y pensar realmente cual podría ser la manera de saber si alguien es un buen o mal programador.
Para hacer esto caes en varios problemas y grandes interrogantes, pues yo creo que no hay un sistema 100% fiable para examinar a alguien y decidir si tiene un verdadero conocimiento de programación, a lo que voy, es que en mi muy personal opinión sabes si alguien es un buen programador por una simple cosa: RESULTADOS.
Creatividad
Muchas personas a las que les cuento que para ser programador necesitas de mucha creatividad se quedan impactadas, esto porque siempre se asocia a las computadoras con la falta de creatividad, vamos, las computadoras son máquinas, pero nosotros los programadores NO.
Hasta ahora no conozco un lenguaje de programación el cual 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 el primer punto que un buen programador debe de tener es creatividad. Creatividad para crear soluciones factibles, rápidas y sencillas a problemas complicados.
Por mi experiencia, esto es lo más difícil, pues la creatividad no la aprendes, no hay un libro acerca de "Creatividad Básica", no existen cursos que te puedan dar creatividad y la creatividad no la compras en la tienda. Creo que la creatividad la llevas dentro y unos tenemos poca y otros mucho más.
Pero lo que es un hecho es que sin creatividad inmediatamente te vuelves un mal programador, porque aunque la solución sea evidente es la falta de esta misma creatividad que te imposibilita ver lo que esta enfrente de ti.
Conocimientos
El segundo punto, por supuesto que son los conocimientos. Pues aunque tengas creatividad si no tienes conocimientos no puedes llevar a cabo lo que ideaste.
Yo creo 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.
Por ejemplo, en el artículo que hice anterior a este acerca de la memoria en perl, les dije que para poder usar la memoria de manera eficiente era importante comprender como es que funcionaba la liberación de la misma por perl para poder usarlo a nuestro favor. En ese artículo más que el ¿cómo? vimos el ¿por qué?.
Entonces como segundo punto un buen programador debe de comprender porque un lenguaje actúa de esta u otra manera, para poder usarlo al 100%.
Consulta
Como tercer punto, y el que a muy pocas personas he visto mencionar es la capacidad de consulta.
Es imposible que una sola persona sepa las soluciones a completamente todos los problemas, y la verdad es que la mayoría de nosotros ha de saber como 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 sintáxis completamente, para lo que uso mi LIBRO DE CONSULTA, el cual dividí en 3 categorías: Básico, Intermedio y Experto para una mejor consulta.
Eficiencia
Llegamos a nuestro cuarto punto: la eficiencia.
Un buen programador debe de llegar a 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.
Este plan debe de tener pasos muy claros, para evitar otro tipo de confusiones. Este tema lo trate en: Guía para iniciar un proyecto.
Creo que estos cuatro puntos son suficiente para saber si un programador es bueno o malo. Pero recuerden que esta es mi opinión personal, de seguro deben de haber maneras mejores de evaluar, pero yo siempre lo hago por estos 4 puntos.
Y tú ¿qué tan bueno eres?