Voy a dar yo mi opinión.
Soy programador autodidacta desde primeros del 2004, casi 6 añitos ya.
La dificultad de ser autodidacta está relacionada con la personalidad de la persona.
Me explico, para ser autodidacta, se es necesario tener unos cuantos requsitos entre los que destaca la constancia.
Si una persona no es muy constante, es demasiado perfeccionista y desea siempre los mejores materiales y tal, las pasará putas siendo autodidacta. Vamos, lo sé pues yo en el pasado he pecado de ser poco constante y bueno, perfeccionista sigo siendolo.
Si una persona le dedica un tiempo a la programación de forma diaria (bueno, los findes se podria descansar), esa persona podrá llegar donde quiera.
Si eres capaz de todo esto, las ventajas son grandes.
Si vas a clase con profesor, si bien es cierto que tendrás la obligación de ir, aprenderás lo que el te enseñe y con el material que el te pida, estas son cosas facilmente solucionables por tu cuenta.
Lo feo de profesor es que si te pone a programar en un lenguaje que no te guste, no te sentirás motivado y eso es lo más principal para avanzar.
Si te pones tu solo, pues dices, uhm, me gustaría no sé, hacer webs. Entonces te planteas cosas como... ¿Con qué misión? Quiero hacer webs cómodo en Linux con tecnologias libres? Pues aprendo PHP, que quiero algo que posiblemente se aprenda más en empresas? Pues Java o .NET. Es el placer de poder elegir lo que más te convenga y más te llame. Quizás Java para web te parezca cojonudisimo y php no te guste nada, y ahora el profesor te haga usar PHP, aprenderás? Si, pero te costará.
Mi gran consejo, el cual me llevó años aprenderlo (aunque parezca mentira), esque la mejor forma de avanzar y a veces la única forma de hacerlo, es usando lo que a ti más te guste, e ignorando lo que los demás te digan de tu elección.
Yo por ejemplo he sido siempre linuxero y ahora uso windows porque para programar me encantan las tecnologias que Microsoft (que podria ser cualquier otra) me ofrece. En 1 año que llevo en Windows con .NET he aprendido más que en mis 4 años de Linux. La gente me critica, mis amigos me dicen cosas, pero no soy fanboy de nadie, si da la casualidad que .NET me parece fabuloso, pues usaré .NET y no otra cosa.
Sobre el material, es probablemente la peor parte de ser autodidacta sin duda. Los libros en castellano son excasos, a veces muy básicos y los que son traducciones, aparte de que muchas apestan (pues lo traducen normalmente personas que no saben de jerga informática) y cuando no, valen de 70 pavos parriba.
Realmente la mejor opción siendo autodidacta es saber inglés, en amazon.co.uk están los libros a un precio bastante bueno y hay sobre todo lo que quieras y a cantidades industriales. Duqe en tu caso no habrá mucho problema digo yo si estás leyendo el libro de Java que te recomendé.
El tema de qué leer o dudas no es taaan problematico. Sobre qué leer, pues no te quejarás, en tu hilo sobre Java te respondimos varios, y en internet hay muchas reviews de libros y siempre quedará el foro para preguntar a los más experimentados sobre qué leer sobre algún tema especifico.
Para las preguntas más de lo mismo, el foro siempre es buena opción, y si sabes inglés está stackoverflow.com que es probablemente uno de los mejores sitios de programación que se haya inventado.
O en tu caso de Javero, está el javaranch que es otra web bastante bastante buena.
Y nada, si no encuentras un profesor, ponte de autodidacta con 2 cojones (como se suele decir). Que mira que yo casi termino ahora el ciclo superior de programación, y para ser sinceros, he aprendido mucho más de autodidacta que con el ciclo, y para colmo lo que ahi se aprendia no era de mi agrado y en vez de disfrutar, pues te amargas un poco.
Un saludo.