Какие книги стоит прочитать начинающему программисту, чтобы понять все тонкости программирования?
Как по мне, не стоит забивать себе голову изучением алгоритмов и основ программирования. Для начинающего главное - понять что умеет выбранный им язык программирования, какие задачи поможет выполнить, какие функции в нем существуют. Главное - опыт. Ну а потом на досуге уже как-нибудь Совершенный код - Макконнелл
C#:
Г. Шилдт - Полное руководтсво C#
T-SQL:
М.Грубер - Понимание SQL