Почему-то у меня диаметрально противоположное представление (могу ошибаться, конечно)
Чтобы эффективно применять Java-фреймворки, необходимо на должном уровне владеть языком Java. Чтобы на должном уровне владеть языком Java, необходимо иметь представление о базовых алгоритмах и структурах данных. Цепочку можно продолжить, разумеется, двигаясь к более базовым вещам (к математике, например). Делать упор на фреймворках, забивая на основополагающие аспекты - все равно что строить дом на слабом или отсутствующем вовсе фундаменте.