No soy programador en Java (aún), la verdad que lo aprendí por el hecho de aprobar una materia de la universidad. Antes de conocerlo tenía mis prejuicios sobre este lenguaje, pero poco a poco noté su potencial.
Por lo tanto no soy un programador experto en este lenguaje, sin embargo como cualquier otro lenguaje éste requiere su tiempo de aprendizaje, y suele depender de la dedicación que cada programador tenga.
La mejor bibliografía, a mi parecer, es internet. Hoy día escribiendo dos o tres palabras en un buscador, obtenemos información específica sobre cualquier cosa.
Lo que noté en Java no es complejidad de lenguaje (tiene gramática y sintaxis similares a C++), creo que la clave para ser buen programador en Java es tener buen dominio de diseños orientados a objetos. Por lo que te recomiendo aprender UML y patrones de diseño como primer paso. Una buena base de diseño de sistemas es, diria yo, imprescindible para ser un gran programador en Java.
Bienvenido a la comunidad.
Saludos.
PD: De paso te comento que acabo de publicar un
artículo introductorio sobre java en el sitio principal.