В стиле Где должен начинать программист-ветеран C, чтобы освоить Java?, я задаю вам обратный вопрос. У меня есть большой опыт работы на Java и в программировании в целом, но я бы хотел подобрать некоторые C (для некоторых проектов, которые мне интересны в хаке). Есть ли "быстрое и грязное" руководство, предназначенное для людей с предыдущей базой CS? Я бы предпочел бесплатные онлайн-ресурсы, но оценил любые предложения.
Где начать ветеран Java-программиста, чтобы овладеть C?
Ответ 1
Совсем недавно Джоэл Спольский заявил, что программирование на C имеет решающее значение для всех разработчиков программного обеспечения. В этой статье он ссылается на книгу Kernighan and Ritchie, которая является общепринятой классической книгой C. Однако, изучив программирование на С, используя эту книгу, это что-то вроде перетаскивания для случайного ученика.
Тем не менее, если вы уже знакомы с Java, это не вы.
Тем не менее, это книга, которую стоит прочитать. Если ничего другого, я бы поискал его в библиотеке.
Этот учебник немного устарел (особенно по сравнению с ANSI C), но если вы ищете самую быструю очистку синтаксис, это не страшно.
Учитывая небольшой базовый синтаксис (который вам будет очень хорошо знаком), вы должны перейти прямо к C-библиотекам. То, что большая часть фактической функциональности, которая вам понадобится, будет в любом случае. Я думаю, что вы обнаружите, что большая часть материала, требуемого для "мастеринга" C, действительно будет в тех поддерживающих библиотеках.
Для полноты, если вам нужен настоящий компилятор:
В моей дневной работе моя среда разработки разделена между Linux (Fedora 14) и Windows 7. В обоих случаях я использую gcc по случаю, когда мне нужно написать C-код. В то время как gcc является принятым стандартом для установки Fedora, на стороне Windows вы захотите либо MinGW, либо Cygwin, любой из которых может дать вам gcc.
Если бы я все еще преподавал программирование на С, я бы рекомендовал некоторую комбинацию вышеперечисленного для продвинутых самостоятельных учеников.
Ответ 2
Хотя, вероятно, немного на основной стороне для опытного разработчика, я нашел "" C Programming - современный подход" К.Н. Король будет неплохим. Это нежное, но полное введение в язык и некоторые из ключевых библиотек, которые вам понадобятся. Я прочитал первое издание книги; предоставленная ссылка предназначена для второго издания.
Ответ 3
Начните с установки Linux, GCC и после хороший учебник.
Ответ 4
Хотя сначала он будет очень вводным, прочитайте K & R и выполните пример упражнений. Через некоторое время они становятся очень сложными, и вы получите хорошее представление о указателях, структурах и других аспектах C, которые отличаются от Java. Решения для каждого упражнения можно найти в Интернете.
Также ознакомьтесь с лекциями Stanford youtube для своего класса CS107, "Парадигмы программирования". Все лекции доступны онлайн, а также задания и другие материалы курса.