Меня часто просят посоветовать какую-то книгу по программированию. Если спрашивают по языку, то тут отвечать еще более менее просто, ведь нужно просто назвать книгу, которую читал сам и которая понравилась. Чаще всего я просто даю ссылки на книги в разделе ИТ книга блога, потому что наиболее интересные книги (из того, что прочитал) я уже описал. При этом, я всегда советую не ограничиваться только этими книгами и читать больше и разной литературы. От этого хуже не будет.
Сложнее, когда спрашивают типа: «какую книгу стать, чтобы стать программистом». Таких книг очень мало, потому что в основном пишут книги по языку. Я тоже пишу по языку, потому что издательству легче продать эти книги. Книги именно по программированию не так востребованы, а зря. Из-за этого очень много "программистов", которые пишут ужасные вещи и проектируют линейно в объектном программированию. Их программы состоят из одного объекта, который и на дудке играет и песни поет.
Помню как один умник для показания своей крутости (видимо) создавал компоненты программно в Delphi. Он просто писал все в коде. В этом в принципе нет ничего плохого, но все это хранилось в одном модуле формы. Из-за того, что все сваливолось в один файл кода, он вырос до таких размеров, что работать с ним стало просто нереально. Ну разбей ты одну задачу на несколько объектов и у тебя код будет чище и файлы будут меньше. С ними проще работать.