Yo considero que un buen programador tiene un "don" (muchas veces innato), por llamarlo así. Ese algo que hace que se de cuenta de cual es el problema y como solucionarlo, ese bichito que no lo deja tanquilo hasta que resuelve el problema.
Ahora en cuanto a tu pregunta si es mejor un auto didacta o una persona con titulos, pues te diré que lo mejor es la combinación de "Ambos" el estudiar formalmente una carrera te dá una seríe de herramientas que no necesariamente tienen que ver con temas de programación y/o similares sino que estimulan el "ingenio" (de ahí vienen la palabara ingeniero), claro que mucho dependerá de lo que aproveches esto, algunos simplementa pasan aprobando, pero aprendiendo muy poco o nada, triste realidad pero es muy cierta. Hay mucha gente que quiere aprender lo mínimo necesario para aprobar la asignatura y nada más, hacer el menor esfuerzo posible y listo.
Ahora tambien es cierto que lo que te enseñan en una universidad o instituo depende mucho de las capacidades del docente y de lo que le puedas sacar tu como estudiante, tambien estos conocimientos son "temporales" con esto me refiero a que es aplicable o valido en un determinada realidad espacio/temporal, la cual obviamente va cambiando constantemente alguien que estudio hace unos 10 años probablemente haya aprendido un determinado lenguaje de programacion y un tipo especifico de programación (por ejemplo VisualBasic y programación estructurada) si te das cuenta, si sólo se queda con eso y no investiga por su cuenta, no se actualiza y no esta pendiente de las nuevas alternativas y necesidades que surgen pues simplemente por más titulos que tenga sus conocimientos no sirven de mucho.
Sin duda siempre es necesaria la formación académica unida a estas ganas de mantenerse actualizado y aprender nuevas cosas. Según mi parecer las empresas prefieren personas que tenga formación académica y títulos por que simplemente les da un respaldo de cierta formación académica quizas no tan ligada a los conocimientos propios de la programación sino más bien a la formación integral que se debería de dar en los centros superiores de estudio, la cual dá varias herramientas a los profesionales que les permitirá llevar a cabo un proyecto.