Начинающего в java или начинающего в программировании?
Если в java — мне понравилась книга «Java: руководство для начинающих Шилдт Г.»
если только начинаете в программировании — я бы посоветовал начать с c++ или php, ибо в книжках по java любят делать упор на ООП, часто даже на Паттерны, это конечно все очень важные вещи, но новичка отпугнут.
Я сам лично начинал с книжки Шилдта «java2 в подлиннике» и в принципе доволен. Сейчас есть шилдт по 6й джаве (серо-черная обложка).
Но большинство конечно советует начинать с «Thinking in Java» («Философия Java»).
Мне кажется лучше начинать с Кормена, а не Кнута. Или еще с кого попроще, можно с какого-нибудь буржуйского учебника по дискретной математике(буржуйского, потому, что там книги в себе много объединяют и разжёваны как для младенцев)