Буду оригинален: если сложности возникают из-за того, что раньше вообще ни на чём не программировал, то начни с SICP. Да, это Scheme, но вкус к хорошему программированию привьёт. Потом C за пару недель изучишь.
"Алгоритмы+структуры данных=программы" Вирта (и не надо воротит снобисткий нос от паскаля, для обучения весьма неплох), а потом уже и Кернигана, ради С-специфики.
Ну, если не считать трёх разных диалектов синтаксиса, отсутствие каких бы то ни было намёков на системность в именовании функций стандартной библиотеки и посикс, постоянные скачки между семантикой объекта и указателя - практически никаких. Без двух бит бейсик.
Фигня. Синтаксис вообще дело десятое, если не способен писать на впервые увиденном языке, но с использованием знакомой либы, через полчаса, нечего делать в программировании вообще.
>отсутствие каких бы то ни было намёков на системность в именовании функций стандартной библиотеки и посикс
Главное, не WinAPI :) А вообще, это для многих старых языков характерно - слишком многое менялось, как результат, стандартные библиотеки суть полны костылей и подпорок. Но к _изучению_ программирования и сложности языка это ортогонально, все равно использоваться будет 1% из них.
>постоянные скачки между семантикой объекта и указателя
А вот это да, забыл про это, тут на самом деле хрень та еще. Ну дык, посоветовал то я для изучения Вирта, а там таких проблем нету, а потом, уже с кой какими знаниями, это не так критично станет.
Ну так всё фигня, кроме пчёл, которые, как известно, тоже... А на счет Вирта я с тобой согласен. Только я бы еще посоветовал "Введение в структурное ...", но там надо будет нос от упоминания перфолент воротить. )))
http://konishchevdmitry.blogspot.com/2009/03/unix-cc.html
+ Громов курс лекций "Информатика"
+ вышеперечисленные Дейтлы
+ Вирта не читал, но судя по отзывам он очень хорош
+ Шилдт "Полный справочник по С" понравился тоже, много примеров, все объяснено доступным языком и описаны некоторые полезные алгоритмы.
Стартовал с Кернигана с Ричи. Поскольку это был первый мой язык программирования, было трудновато по началу. С главой про указатели, помню, долго мучился:) Но после того, как освоил книжку, все встало на свои места. На мой взгляд, вряд ли может существовать книга, по которой можно научиться программировать. Научиться можно только на практике. Хотя для того, чтобы приступить к практике, безусловно надо прочитать немного теории