Если говорить о книгах, где больше внимания уделяется концепциям программирования, чем тонкостям языка, то могу посоветовать "Совершенный код" Стива Макконелла и "Паттерны проектирования" Эриха Гаммы (Банды четырех).
Первая - про проектирование программного обеспечения в целом, про этапы, про именование классов и переменных и насколько вообще наименование важно при работе в команде, про то как строить классы и вообще про то, почему важно писать код правильно и как это делать.
Вторая - перечень паттернов, применимых в проектировании ПО (программного обеспечения), своеобразных концепций построения структуры классов, которые призваны решить ту или иную проблему.
Но я соглашусь с предыдущим отвечающим, - смысл от их прочтения, без понимания и опыта в программировании очень скуден. Они позволяют начать думать более концептуально, немного отойдя от конкретики одного используемого языка, но не позволят начать программировать без знания как писать код.
"Язык программирования C" Брайан Керниган, Деннис Ритчи. Лучше ничего не придумано.
не по языкам, а терминологии, сути программирования
А вот так не бывает. Чтобы научиться программировать - нужно писать программы. Это то же самое, что и плавание - никто пока не стал хорошим пловцом прочитав кучу книг по техникам плавания. Только практика.