@re3r0

С чего начять новичку в СИ?

посмотрел эту статью в хабре https://m.habr.com/ru/company/yandex/blog/272759/

зацепили слова: " Теперь поговорим о том, как понять, чего вы хотите в жизни. Что бывает из прикольных вещей? Вы можете заниматься каким-нибудь системным программированием, да? У вас там классно считать эти байтики, вы хотите запускать квадрокоптеры, камеры какие-то, ещё чего-то делать. Тогда, наверное, Си — ваш выбор. "

можете подсказать вообще развитие в данной отраслй ну и подкинуть учебного материала. (заранее пасибo :D)
  • Вопрос задан
  • 201 просмотр
Решения вопроса 3
includedlibrary
@includedlibrary
Си можно начать изучать с книги "Язык программирования Си" Кернигана и Ритчи. Или с "Head First C" (я начинал с неё). Потом можно почитать про новые фичи стандарта c11.
Если вы хотите низкоуровневым программированием заниматься, то для начала нужно прочитать "Архитектура Компьютера" Таненбаума. Ещё есть очень хорошая книга "Цифровая схемотехника и архитектура компьютера" от Сары и Дэвида Харрис.
Потом читать спецификации на железки, под которые вы хотите писать код.
Ответ написан
CityCat4
@CityCat4
Если я чешу в затылке - не беда!
С русского языка :) НачЯть писЯть правилно, да?
Ответ написан
@res2001
Developer, ex-admin
1.Си достаточно не большой и простой язык программирования. Возьмите любой учебник для начинающих. Изучите язык, порешайте задачи оттуда.
Поймите все про Си строки. Все достаточно просто, но почему то у многих с этим проблемы в начале.
Поймите тонкие моменты языка (это важно для системного программиста и для "железячника", да и просто для хорошего программиста): указатели, арифметика указателей, динамическое выделение памяти.

2. Потом надо погрузиться в программирование для той ОС, которую планируете использовать. Обычно это линукс. Учитывая ваши интересы (системное программирование, железо), то тут можно порекомендовать следующие книги:
- https://www.ozon.ru/product/linux-api-ischerpyvayu... - это для user space. Эта книга больше справочник по Linux API. Если у вас хорошо с английским то эту книгу может заменить встроенная справка линукс (man).
- https://www.ozon.ru/product/yadro-linux-opisanie-p... - это kernel space (драйвера)

3. Параллельно с первыми двумя пунктами есть смысл читать что-нибудь по алгоритмам. Например Кормена: https://www.ozon.ru/product/algoritmy-postroenie-i...

4. После того как будете уверены в своих знаниях Си и Linux, можете выбирать платформу с которой вы хотите работать (железку) и начинать реализовывать свои задачи. По ходу дела возникнет куча вопросов. Большая часть из них может быть решена с помощью чтения TRM (Technical Reference Manual, предоставляется производителем железа/процессора). TRMы обычно оочень большие просто так их читать без конкретной цели смысла нет.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Griboks
@Griboks
Я советую начать со спецификации, например ANSI C.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы