Patrañas, disculpen los que se ofendieron, pero a mi parecer (desde mi perspectiva) ninguna de las dos tienen nada que ver con ser un buen programador o un cinco estrellas (jaja me rio por mis compañeros que tanto hablan de ello) puesto que un programador no solo es saber la sintaxis de cierto lenguaje, o saber algoritmos, o trabajar en algo referente a sistemas, un programador va mas allá de todo, claro unos pueden desarrollar habilidades mediante el esfuerzo y otros no, unos no lo necesitaran y otros mas, pero la cuestión es: ¿Nace o se hace? sencillamente nace, pues la imaginación es el principal motor de este ramo y todos nacemos con la imaginación, porque para hacer un diseño, un algoritmo o un programa (de hecho como crearon un PC o un IDE o una GIU, se la imaginaron) el punto es conservarla y alimentarla, no puedo ser un buen programador después de 10 años de trabajo si en VB si solo mando msgbox o en javascript con puros getElementsbyId o hacer una suma con var++; debo imaginar nuevas técnicas o formas de decirle al usuario que esta pen... o que falle al programar u otra cosa y esa es la diferencia, además un buen programador, creo yo, no solo se basa en lo que le dicen, se basa en lo que intuye y a veces crea un chorizo de 10,000 lineas para una pequeña consulta en ves de 100 que podría utilizar ayudándose de lo que ya esta hecho, pero por curiosidad y luego por mejorar decidió hacerlo el mismo, no tiene que basarse en lo que ya esta definido.
Agrego:
Asi como dicen Einstein, reprobo, pero se imagino a los agujeros negros asi como muchos otros inventores, descubridores, filósofos, pintores, etc..