Полнота знаний придет eventually с опытом. А по книге учить, будет столько воды, что человеку придется перманентно бороться с желанием тупо бросить эту тупую ботву нахер и остаться на том что ему привычно.
С опытом не будет: если ты строишь решение из говна и палок и оно работает, ты никогда не узнаешь что есть языковое более простой способ. Когда ты пишешь циклы, ты врядли задумываешься, а есть ли в языке stream-api.
А про книгу - вернемся к определению "хорошая книга"