реклама на сайте
подробности

 
 
7 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Вопросы по изучению Си
Владимир_2010
сообщение Mar 8 2009, 07:13
Сообщение #1


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Здравствуйте.
Месяца два назад сел за изучение микроконтроллеров AVR. Почитал книгу «Белов А. В. Создаём устройства на микроконтроллерах. 2007», проделал примерчики в CodeVisionAVR, пощупал аврстудию, погонял схемки в протеусе, попрошивал мегу8 на stk500, на макетке собрал. Чувствую что знаний по языку Си не хватает. Имеет ли смысл на некоторое время забыть про микроконтроллеры, установить что-нибудь вроде Microsoft Visual Studio и начать изучать язык Си по книге про чистый Си без привязки к микроконтроллерам, например, по книге 1) Керниган&Ритчи в списке?! Но не знаю, хватит ли на чистый Си сил и энтузиазма, без привязки к микроконтроллерам читать тяжело, да и времени на чтение мало – микроконтроллеры это пока хобби. Или может быть продолжать читать книги по микроконтроллерам?! Но там язык Си рассмотрен поверхностно – пролетарская суть не ясна.
Поискал в сети книги по чистому Си (без плюсов), литературы на русском – мало. Вот что удалось найти:
1) Керниган, Ритчи. Язык Си
2) Керниган, Ритчи. Язык программирования Си
3) Керниган, Пайк. Практика программирования
4) Шилдт. Полный справочник по C
Остальная доступная в сети литература по Си с первого взгляда менее привлекательна:
5) Афанасьев. Программирование на языке Си
6) Богатырев. Руководство полного идиота по программированию на C
7) Болский. Язык программирования Си
8) Бочков. Язык программирования Cи для ПК
9) Голицина. Основы алгоритмизации и программирования
10) Крупник. Изучаем Си
11) Подбельский. Программирование на языке Си
12) Фьюэр. Задачи по языку С
14) Хэзфилд. Искусство программирования на C
13) Шилтд. С для профессиональных программистов
Отдельный вопрос по классической книге:
15) «Роберт Седжвик. Фундаментальные алгоритмы на C. Части 1 - 5. Анализ. Структуры данных. Сортировка. Поиск. Алгоритмы на графах» Книга того же автора с тем же названием встречались мне для С++ - изучать ли ее или попытаться найти эту книгу для чистого Си в бумажном виде?! Верно ли утверждение: «Седжвика можно брать и с "C++" в названии. На самом деле там все равно чистый C». Что еще из книг маскирующихся в названии под «С++» пригодно для изучения про чистый Си?!
Если что-то из доступных в сети электронных книг по чистому Си пропустил, пожалуйста, дополните.
Может быть есть что то из достойных «бумажных» книг по Си, что не выложено в сеть и стоит найти?! Наверное, нужны книги не просто справочник и не с примитивом, а книга учебная, что бы много различных примеров разобрано, приложений, от простого к сложному и через них вся суть и обобщения. Вот например книги с громкими и многообещающими аннотациями:
16) Прата. Язык программирования C (Си). Лекции и упражнения
h**p://www.livelib.ru/book/1000163060
17) Кочан. Программирование на языке C (Си)
h**p://www.williamspublishing.com/Books/5-8459-1088-9.html
Но за громкими и красивыми обложками, аннотациями, часто бывают пустышки которые лучше даже не читать.
Вечные вопросы: что делать и стоит ли вообще читать или может так и ходить неграмотным и программировать методом тыка?! Как развиваться дальше, что читать, в каком порядке читать и что в первую очередь читать?!
Спасибо за внимание и советы.

Сообщение отредактировал Владимир_2010 - Mar 8 2009, 07:15
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Mar 8 2009, 07:22
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Не начинайте с Codevision. Он портит мозг. smile.gif

Лучше сразу IAR либо WinAVR
И еще - ищите в инете и читайте живые примеры, разбирайтесь что и как написано. Даже при условии изначально плохого знания английского, будет двойная польза: анализ текстов программ можно пытаться делать и без комментариев, а параллельно и аглицкий заливается smile.gif Ищите ресурсы на русском, отмечайте ссылки на англоязычные и копайте. Постепенно у Вас сформируется лексикон, достаточный для того, чтобы эффективно гуглить интересующие Вас вопросы
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2009, 07:36
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Достаточно одной - K&R второе издание. Контроллерная специфика для языка это обычно несколько страниц в документации на конкретный компилятор. "Книги по микроконтролерам" это или откровенное дерьмо, или это действительно книги по Микроконтроллерам а не по изучению языков и раcсматривать "примеры" из таких книг следует так-же, как и пример из букваря "Мама мыла раму" - не более. Для расширения кругозра - книга п.3 тоже обязателена к прочтению, но догматично ее принимать к исполнению, тем не менее, не стоит. По тонкостям языка - стандарт C99. Возможно, следует проработать чего-либо с "упражнениями" из западных авторов.
Цитата(_Pasha @ Mar 8 2009, 10:22) *
И еще - ищите в инете и читайте живые примеры, разбирайтесь что и как написано.

Только имейте ввиду, что не менее, чем в 95 случаев из 100 это будет исходник уровня "моя первая программа на C" sad.gif и скорее "это" может служить учебным пособием как НЕ надо писать. Посему относиться к найденному в интернете надо более, чем критически.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Владимир_2010
сообщение Mar 8 2009, 08:42
Сообщение #4


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Цитата(_Pasha @ Mar 8 2009, 12:22) *
Не начинайте с Codevision. Он портит мозг. smile.gif

Насчет рака мозга, который вызывает CodevisionAVR мне уже говорил один радиолюбитель. Потихоньку думаю перейти или на Winavr или на IAR.
Начал с CodevisionAVR потому что книги по нему есть, тот же Белов для новичка как первый старт. ДА еще в какой-то из книг прочитал мнение что дескать с Winavr новичку разбираться тяжело – лучше начать с CodevisionAVR.
Вот что по микроконтроллерам AVR на Си удалось найти:
1) Белов. Создаём устройства на микроконтроллерах
2) Голубцов. Микроконтроллеры AVR от простого к сложному
3) Лебедев. Code Vision AVR
4) Хартов. Микроконтроллеры AVR. Практикум для начинающих
5) Шпак. Программирование на языке C для AVR и PIC микроконтроллеров
6) Joe Pardue. C Programming for microcontrollers, 2005
7) Steven F. Barrett and Daniel J. Pack. Atmel AVR Microcontroller Primer - Programming and Interfacing, 2008
Если что-то пропустил для AVR на Cи – дополните пожалуйста.
Хоть и не с примерами на Си, но думаю без книги
8) Евстифеев. Микроконтроллеры AVR семейства Mega
не обойтись любому начинающему осваивать семейство Mega
В рунете много радолюбителей выкладывают проектов на Winavr или на Codevision, с описаниями – это несомненно плюс для новичка. А IAR у меня тока дока на английском. Да и мудреный IAR какой-то, модный весь, с наворотами. Ни одной книги по IAR даже на английском я не встречал. Хотя пока мозг пустой наверное лучше его приучать к тому что перспективно, т.е. к IAR.
Глупый вопрос но все же: код написанный в IAR я смогу загнать в AVRStudio 4.16, прошить микроконтрллер в stk500 и использовать новую связку AVRStudio 4.16 с Proteus v7.4 SP3 (Proteus VSM Viewer)?! И использовать имитацию в AVRStudio аналоговых сигналов для АЦП в связке с Proteus?!
С другой стороны: хоть Winavr, хоть IAR, хоть Codevision – проблема незнания языка Си и фундаментальных алгоритмов все равно остается.

Сообщение отредактировал Владимир_2010 - Mar 8 2009, 08:46
Go to the top of the page
 
+Quote Post
ARV
сообщение Mar 8 2009, 08:57
Сообщение #5


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 30-09-08
Из: Новочеркасск
Пользователь №: 40 581



Лично мое мнение такое: программирование - это не знание языка, это способ или стиль мышления. Научиться программировать можно вообще не зная ни одного языка программирования - с моей точки зрения это означает научиться раскладывать решение задачи на необходимые этапы, т.е. алгоритмизация. Вот умению выделять из поставленной задачи отдельные элементы, которые можно (или нужно) выполнять в определенной последовательности (или наоборот, параллельно) для того, чтобы добиться требуемого результата, мало какие книги учат... Язык Си (или другой какой) - это всего лишь набор красок и кистей, которыми мы рисуем картины... Но результат зависит от того, как именно мы воспринимаем мир и как умеем отразить его на холсте.
К сожалению, мне неизвестны книги, которые могли бы научить алгоритмике и логическому мышлению, поэтому посоветовать ничего не могу... Но уверен, что начинать нужно именно с этого.


--------------------
Я бы взял частями... но мне надо сразу.
Go to the top of the page
 
+Quote Post
Владимир_2010
сообщение Mar 8 2009, 09:10
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Цитата(zltigo @ Mar 8 2009, 12:36) *
Достаточно одной - K&R второе издание.

Что неужели по Си ничего кроме Керниган&Ритчи и Керниган&Пайк читать не надо?! Что с книгой Седжвик и трюком в названии «С++»?!
По поводу трудов Керниган и Ритчи. У меня две книги. Первая в pdf называется на русском «Керниган, Ритчи. Язык программирования Си/Пер. с англ. 3е издание. 2001 – 352 с», однако двумя страницами ранее на картинке написано по английскому «The C programming Language. Second Edition». Вторая книга тоже в pdf но не понятно что за издание и что за год. На первой странице написано просто «Б.В. Керниган, Д.М. Ричи. Язык С». в книге 229 страниц.
Как учить Си по этим книгам?! Какую программулю на компьютер ставить и на чем примеры прогонять?!
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2009, 09:24
Сообщение #7


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Владимир_2010 @ Mar 8 2009, 12:10) *
Что неужели по Си ничего кроме Керниган&Ритчи

Раньше, чем K&R понимать начнете - не надо.
Цитата
По поводу трудов Керниган и Ритчи. У меня две...

Я же даже жирным шрифтом выделил второе издание. Если с английским так плохо, что надпись «The C programming Language. Second Edition» воспринимается, как картинка, то надо начинать с английского языка.



Цитата(Владимир_2010 @ Mar 8 2009, 12:10) *
Что с книгой Седжвик и трюком в названии «С++»?!

Думаю, что совсем "ничего". Алгоритмы это Кнут, а не седжвики и иже с с ним рождающие "для С", "для С++", "для Java", "для VBA smile.gif"....


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Владимир_2010
сообщение Mar 8 2009, 09:24
Сообщение #8


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Цитата(zltigo @ Mar 8 2009, 14:17) *
Я же даже жирным шрифтом выделил второе издание. Если с английским так плохо, что надпись «The C programming Language. Second Edition» воспринимается, как картинка, то надо начинать с английского языка.

Спасибо.
Second Edition - это всем понятно что второе издание. Только смущает что в книге при переводе на русский издатели написали «Язык программирования Си/Пер. с англ. 3е издание» (на 4ой странице), а двумя страницами ранее "The C programming Language. Second Edition". Вот и уточнил – та ли эта книга.
Цитата(zltigo @ Mar 8 2009, 14:17) *
Думаю, что совсем "ничего". Алгоритмы это Кнут, а не седжвики и иже с с ним рождающие "для С", "для С++", "для Java", "для VBA

Седжвик привлекает тем что на первый взгляд книга достойная и на Си, а Си нужен для освоения микроконтроллеров.
До детального изучения «Кнут. Искусство программирования» руки все не доходят. Хотя понимаю что надо. Из классики по алгоритмам что еще обязательно к прочтению?! «Томас Кормен и др. Алгоритмы: построение и анализ»?!

Сообщение отредактировал Владимир_2010 - Mar 8 2009, 09:41
Go to the top of the page
 
+Quote Post
vshemm
сообщение Mar 8 2009, 09:41
Сообщение #9


Частый гость
**

Группа: Участник
Сообщений: 167
Регистрация: 15-08-07
Пользователь №: 29 803



Цитата(ARV @ Mar 8 2009, 11:57) *
К сожалению, мне неизвестны книги, которые могли бы научить алгоритмике и логическому мышлению, поэтому посоветовать ничего не могу... Но уверен, что начинать нужно именно с этого.

http://mitpress.mit.edu/sicp/
Есть в русском переводе: http://newstar.rinet.ru/~goga/sicp/sicp.pdf.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2009, 09:54
Сообщение #10


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Владимир_2010 @ Mar 8 2009, 12:24) *
Седжвик привлекает тем что на первый взгляд книга достойная и на Си, а Си нужен для освоения микроконтроллеров.

Вы английский, как, по учебникам изучать предпочитаете, или по анголоязычным комментариям шекспироведов к Королю Лиру?
Если первое, то причем тут наличие примеров на С или любом другом языке в учебнике по алгоритмам?


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Владимир_2010
сообщение Mar 8 2009, 10:07
Сообщение #11


Частый гость
**

Группа: Участник
Сообщений: 120
Регистрация: 16-02-08
Пользователь №: 35 087



Вначале любой язык предпочитаю изучать через примеры. От простого к сложному.
И любую новую дисциплину только через примеры и опять же от простого к сложному. Спасибо за ссылку на K@R.
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2009, 10:21
Сообщение #12


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Владимир_2010 @ Mar 8 2009, 13:07) *
Вначале любой язык предпочитаю изучать через примеры.

Совершенно не эффективный путь для ВЗРОСЛЫХ людей имеющих за спиной опыт получения хотя-бы приличного школьного образования sad.gif. Что-то вроде попыток приготовления блюд по рецептам из отрывного календаря с последующей заливкой получившегося "майонезом" из ближайшего гастронома.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
Herz
сообщение Mar 8 2009, 11:48
Сообщение #13


Гуру
******

Группа: Модераторы
Сообщений: 10 983
Регистрация: 23-11-05
Пользователь №: 11 287



Вот, пользуюсь, как справочником. О "художественной" ценности судить не стану - не имею права... Как и о том, с каких книг правильно начинать обучение программированию. Но именно в практике работы с МК мне помогает больше, чем "библия" Кернигана и Ритчи. Может, исключительно из удобного HTML-представления. rolleyes.gif
Go to the top of the page
 
+Quote Post
zltigo
сообщение Mar 8 2009, 12:27
Сообщение #14


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



Цитата(Herz @ Mar 8 2009, 14:48) *

Типа "методичка" для студентов всяких разных специальностей - прочитать, сдать зачет и забыть sad.gif. Такого типа методичек в интернете довольно много. Из "справочников" в свое время активно пользовал СЭВ-овский стандарт языка - очень неплохо был написан и строго, и нюансировка компиляторов присутствовала, да и те-же примеры для неочевидных вещей были со вкусом подобраны и растолкованы.


--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post
sergeeff
сообщение Mar 8 2009, 12:39
Сообщение #15


Профессионал
*****

Группа: Свой
Сообщений: 1 481
Регистрация: 10-04-05
Пользователь №: 4 007



Цитата(Herz @ Mar 8 2009, 14:48) *
Вот, пользуюсь, как справочником. О "художественной" ценности судить не стану - не имею права... Как и о том, с каких книг правильно начинать обучение программированию. Но именно в практике работы с МК мне помогает больше, чем "библия" Кернигана и Ритчи. Может, исключительно из удобного HTML-представления. rolleyes.gif


Что-то меня сильно настораживают книги, в которых используются термины типа "инициатор", или несколькими строками ниже объявленная переменная:
const long megabute = (1024 * 1024);

Наверное в Тамбове народ что-то считает в мегабутах?
Go to the top of the page
 
+Quote Post

7 страниц V   1 2 3 > » 
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:55
Рейтинг@Mail.ru


Страница сгенерированна за 0.01967 секунд с 7
ELECTRONIX ©2004-2016