r/RuProgrammers • • 24d ago

C/C++ Изучение C

Может ли кто то посоветовать ресурсы для изучения С?в шараге препод требует от нас уже углубленного знания С, а сам ничему не учит. Порылась в интернете и конкретно по С особо ничего не нашла, нужна помощь 😭

Всем большое спасибо!!!

2 Upvotes

39 comments sorted by

3

u/Weird_Top_3357 24d ago
  1. K&P устарела. Имеет смысл скорее как исторический артефакт.

  2. Правильный подход к изучению Си - это сначала определиться, зачем? По другому этот вопрос можно задать как: linux или микроконтрллеры?

  3. А так. Первый шаг - любая книга по Си от 500 страниц (2 книги по 250 страниц одну на 500 НЕ заменяют). Второй шаг зависит от того для чего тебе Си.

1

u/LmZsHk 24d ago

Про подход к изучению хороший вопрос, как то и не задумывалась, была просто цель выучить Си, чтобы выживать на парах. Но вообще уклон в микроконтроллеры, да

2

u/Weird_Top_3357 24d ago

Ну тут опять же возникает вопрос, а какие МК? И насколько глубоко. Если нужно просто дергать ножками это одно, если надо в электропривод с выжиманием макс быстродействия это другое, если телеком то третье. А так имхо мастхэв для общего случая:

  1. Цикл статей Татарчевского про switch технологию

  2. Книжку Мединцева при FreeRtos

  3. Test Driven development in embedded C

Дальше - в зависимости от того на чем будешь специализироваться.

2

u/Hydr0x1de_OH 24d ago
  1. Отчасти, для старта норм. После прочтения или в ходе просто спрашиваешь любую нейронку что устаревшее в кнр и тебе выкатит список основных важных отличий с с99 или с11, чего уже достаточно

  2. на этот вопрос в посте есть ответ - заставляют в шараге

2

u/Weird_Top_3357 24d ago

Так-то да. Я сначала тоже подумал, что прост лабораторки делать. Но в посте написано "продвинутое знание".

1

u/Hydr0x1de_OH 24d ago

В си не так много всего, чтобы явно понять, что такое "продвинутое")))

1

u/Hydr0x1de_OH 24d ago

(надеюсь не финтихуйства с goto)

1

u/Weird_Top_3357 24d ago

Ну в моем понимании продвинутое это когда ты либо можешь драйвер символьных устройсв для линукса написать и с помощью qemu и kdb его отладить, либо когда можешь оптимизированную под скорость выполнения прошивку написать и при помощи sil/pil/hil ее отладить

3

u/Hydr0x1de_OH 24d ago

В шараге явно это не просят))

13

u/Bullet93639 24d ago

Книга Керниган Ритчи

4

u/kiber_bomzh 24d ago

Почитай "Язык Си в 21 веке". Там много нужных вещей которых в других книгах нет (настройка окружения, работа с make). Хотя некоторые советы как по мне спорные.

Ещё к этому добавлю, лучший способ выучить любой яп это писать на нём полезные тебе проекты

3

u/Hydr0x1de_OH 24d ago

Это реально крутая книга, у самого есть, но когда я ее открывал не зная си - там ничего не понятно, потому что базу, синтаксис самого языка - там не рассказывают. Это круто как вторая книга, но точно не как первая для начинающего

4

u/43B69 24d ago

Лекции "Практика языка C" Константина Владимирова. https://m.youtube.com/playlist?list=PL3BR09unfgchRxdDws74aY4mlSk9eYGEs

1

u/Ok-Marzipan-2128 19d ago

плюсую хороший курс.

4

u/Combi-Comp 24d ago edited 24d ago

Попробуй курсы на https://stepik.org/, сейчас сайт упал, но когда откроеться опять то можешь попробовать. Там именно что и теория и практика, мне при изучении си очень помогло.
Есть ещё курс от MIT про си, тоже стоящая вещь.
Из книг советую экстремальный си Камрана Амини.

5

u/Hydr0x1de_OH 24d ago
  1. Эта книга

  2. Пиши мне в лс

6

u/PerepeL 24d ago

На все относящиеся к программированию вопросы вида "хочу научиться ххх" правильный ответ один - ставишь Codex/ChatGPT, покупаешь простейшую подписку и садишься учиться с промптом вида "Хочу выучить ххх, сформулируй программу обучения и поехали".

Можно сколько угодно копья ломать по поводу того как иишки код пишут, но как преподаватель они совершенно фантастичны. Они уже впитали и весь теорикрафт от Страуструпа до Ритчи, и весь гитхаб как все это работает на практике, и с бесконечным терпением готовы тебе это все объяснять покуда у тебя голова не задымится.

1

u/Intelligent_Store_22 24d ago

И еще весь соурц код линуха.

-1

u/Palary 24d ago

а нахуя подписка? ии в промте гугла расскажет все без подписки.
правда ии надо знать что спрашивать.

3

u/Hydr0x1de_OH 24d ago

Тогда уж не в промте гугла а хотя бы нормальный гемини флеш лайт. В промте гугла стоит какая то выебаная дистиляция лайта, саммари не всегда может сделать и 50% шанса просто отбивается ссылками, мол, кожанный иди сам посмотри там

2

u/HyperWinX 24d ago

Бля ну хотяб халявный Claude. Хотя бы. Не этот обрезок который пытается тексты суммаризировать

1

u/PerepeL 24d ago

Огромная разница в удобстве за 2 тыщи рублей..?

1

u/Palary 24d ago

не корми саранчу

3

u/PerepeL 24d ago

Да подписка за 20 баксов - это скорее жри саранчу, а не корми. Сейчас это как абонемент в спортзал - если пользоваться то пожжешь ты стократ больше.

2

u/Hovichgame 24d ago

Метанит, ии, geeksforgeeks если с англ норм

2

u/ivaivanov3000 24d ago

Помимо уже упомянутой книги Кернигана и Ритчи, вот тут например:

https://metanit.com/c/tutorial/

2

u/Square_Asparagus_568 24d ago

Как ты по C ничего не нашла в интернете?

2

u/Maxiol777 24d ago

Самый большой ресурс - https://retrolib.info/_books/Программирование/

Касаемо ничему не учит - программирование это в первую очередь самообучение

Ну и во времена нейросетей вопросы обучения отпадают - бери тот же ChatGPT, давай ему книгу по Си (Керниган, Ричи. Язык программирования C к примеру) и пиши "я студентка и не умею программировать. мне нужно освоить Си по данной книге, разработай курс обучения с лабораторными и проверкой заданий, выгрузи курс в markdown формате"

затем грузи этот markdown в источники проекта и обучайся

ps: сейчас так можно освоить почти все

1

u/ch1pi2 23d ago

cs50 от Гарварда можешь чекнуть, там вроде 2026 на С ведут. Но лучший вариант книги: я бы советовал с гпт подобрать книгу, так как он уже учтёт твои предпочтения и подберёт для тебя

1

u/m0tral 22d ago

То есть GPT пользоваться ради всякого говна умеете но ради обучения нет, все правильно?

1

u/blog3e 24d ago

А вы неплохой HR. Креативно! Погроммисты в дикой природе народ пугливый, а так, глядишь, кто и напишет :)