Всем привет!
Если бы я был начинающим, мне бы не понравилось, если бы мне дали список из сотни книг и сказали: "Читай". Поэтому:
1) Jeff Langr - Agile Java. Crafting code with test driven development
Книга, которая подходит и полным новичкам в программировании, и программистам, которые хотят освоить джаву, и профессионалам, которые уже знают джаву, но слабо себе представляют что такое гибкая разработка. Вообще если бы меня попросили назвать три лучшие книги по программированию, которые я когда-либо читал, эта книга в тройку вошла бы однозначно.
2) Язык ruby, фреймворк ruby on rails.
Нет, это не книга. Это язык, фреймворк и сообщество языка и фреймворка. Я хочу их тут указать потому что этот язык и этот фреймворк буквально учат лучшим современным практикам программирования. На rails программировать хорошо гораздо проще, чем программировать плохо. Серьёзно - попробуйте, сами убедитесь.
Ну и чтобы было с чего начать, вот несколько книг по ruby/rails:
Dave Thomas with Chad Fowler and Andy Hunt - Programming Ruby (the progmatic programmer's guide)
Dave Thomas, David Heinemeier Hansson - Agile Web Development with Rails
Obi Fernandes - The Rails Way (книга не "с нуля" - требуется некоторое начальное знание фреймворка)
Книги по rails очень быстро устаревают в силу стремительного развития фреймворка, так что неокторые примеры из последних двух книг могут не работать. Гуглите.
И на закуску:
www.railscasts.com - скринкасты от Ryan Bates. Полезные примеры и трюки, сопровождающиеся "духом" хорошего программирования.
3) Robert C. Martin - Clean Code. Эта книга для профессионалов, которые хотят повысить уровень своего мастерства. Программистов много. Хороших программистов - единицы. Эта книга для тех, кто хочет быть хорошим программистом. Думаю, что для начинающих она не подходит, но у нас нет темы "книги для программистов для профессионалов" :-)