имхо, лучше смотреть исходники в процессе использование, когда уже понятно зачем этот класс/метод нужен. Например, понадобилась вам с Guava ImmutableMap, в IDE по Ctrl+клик перешли в исходник, посмотрели реализацию, и вот вам уже ImmutableMap не кажется каким-то черным ящиком, подсмотрели какие-то интересные решения. Или в spring-jdbc, JdbcTemplate, для упрощенного взаимодействия с БД, и вот вы уже знаете как оно реализовано и не какой там нет "магии", узнали нюансы работы с jdbc api и т.д. Тоже касается и стандартной библиотеки java.util.*, java.lang.* ...