brainick: для первой книги по C ничего лучше не придумать. Для первой книги о программировании в принципе - да, не годится, так как пропущена вводная часть о том, что собсно, такое программирование.
K&R - отличная методичка, но человеку без опыта она не подойдёт, проверено.
вот тут не обманывают: www.cyberforum.ru/c-beginners/thread527521.html
Если решение осознанное и опыта нет - советую начать с Праты, всё разжёвано вообще донельзя, в конце глав толковые задачи. У ivkol хорошие задачи, их тоже нужно порешать.
Дейтелов листал книжку по плюсам, могу сказать, что объяснять они определённо умеют.
Есть ещё Подбельский с Фоминым, читал старый(синий) учебник, новый скорее всего тоже нормальный.
Дмитрий Самый достойный язык низкого уровня. Более-того сейчас очень много языков на которых повлиял С. Не знать этот язык современному программеру как-то стремно! Это как девушка: вроде как может ходить всегда в джинсах и брюках, а вот оденет сарафан и платье, совершенно другой результат!
Дмитрий: Я изучал этот язык С в универе, в далеком 1999-м году. Препод давал стеки, очереди, графы, обходы графов и ничего! Получалось. Даже понятно было! Препод докапывался до именования переменных, когда видел мои "kolichestvo" :))) а не до алгоритмов.
Мое мнение : Язык ассемблера или Язык С. Причем с привязкой к изучению и написанию алгоритмов сортировок, обходов, структур данных и др..
Дмитрий: C - это не язык низкого уровня. C - язык высокого уровня. То, что появились языки еще более высокого уровня, чем C, не означает, что C стал языком низкого уровня.
А вот насчет того, что этот язык надо знать и с него начинать, с вами полностью согласен.
tuccar: Здрасьте. С какой такой радости он стал относиться к категории высоких? ;) Его иногда даже в шутку называют "универсальный ассемблер" по той причине, что он очень близок к железу. На худой конец "язык среднего уровня", но уж никак "высокого уровня". Он слишком близок к реальным устройством.
Дмитрий: Полностью согласен с tuccar . Это язык высокого уровня и всегда им был. Почитайте что-нибудь по архитектуре эвм и я думаю, вы согласитесь с этим.
>>Иногда Си называют «универсальным ассемблером» или «ассемблером высокого уровня», что отражает различие языков ассемблера для разных платформ и единство стандарта Си, код которого может быть скомпилирован без изменений практически на любой модели компьютера. Си часто называют языком среднего уровня или даже низкого уровня, учитывая то, как близко он работает к реальным устройствам. Однако, в строгой классификации, он является языком высокого уровня.
Дмитрий: Вас, видимо, привлекает фраза "..Си часто называют языком низкого уровня...".
Данное явление не делает из Си языка низкого уровня. Си всего лишь дает возможность писать на низком уровне, но сам является языком высокого уровня. Это называется низкоуровневое программирование на языках высокого уровня. То есть программирование низкое, а сам язык продолжает оставаться высоким.
Еще один пример - язык Лисп. Раньше были Лисп-машины. И на языке Лисп напрямую писались драйвера для Лисп-машин. Но этот факт не делает из Лисп языка низкого уровня. Язык Лисп был и продолжает оставаться языком высокого уровня.
tuccar: на мой взгляд С всё же ближе к низкоуровнему именно поэтому я не рекомендовал с него начинать т.е. начинать легче с высокоуровневых. Вопрос: сборщики мусора в каких языках в основном, низкоуровневых или высокоуровневых?