LINUX.ORG.RU
ФорумTalks

Изучить С

 , ,


5

5

Всем привет! Надоели мне эти скриптовые аркадные языки, повесточка, докеро-голанги и тп, решил заняться изучением С. Тем более что вспомнил о том, что по факту это единственный язык который доставлял удовольствие.

Посоветуйте пожалуйста книгу, которую можно почитать и порешать оттуда заодно задачи если есть.

Ответ на: комментарий от hateyoufeel

Мле, сперва показалось ссылка на https://learnxinyminutes.com/ и поставил два чая, а это не она.

Зашёл ради интереса посмотреть, а оно платное…

xDShot ★★★★★
()

напиши компилятор С на С, прям простенький, потом нарастишь по мере фантазии.
увлекательно ппц

olelookoe ★★★
()
Ответ на: комментарий от kaldeon

То что он относительно прост и, как бы сказать, ты в нём царь и бог

nikitalol ★★
()
Ответ на: комментарий от Zhbert

ну я тыкал его) просто подзабыл маленько всё уже, у меня память как у ципленка когда с нейронками столкнулся

NorthernBlow
() автор топика
Ответ на: комментарий от bdrbt

o_O Ты видимо ничего серьёзного на нём не делал. Ну или тебе нравится страдать.

мне хватило поделать серьезного на питоне. Я и до того к этому языку относился нейтрально, но пописав модули для Ansible хочется перманентно блевать

NorthernBlow
() автор топика
Ответ на: комментарий от IvanRia

еще конечно лучше писать какие-то реально нужные программы, а не искуственные задачи с codewars и leetcode, раньше можно было искать что-то на upwork, теперь к сожалению нельзя

думаю написать веб сервер from scratch для понимания.

NorthernBlow
() автор топика
Ответ на: комментарий от Zhbert

Классику читай. Прям от авторов языка. «Язык Си» называется.

я так от Страуструпа читал по плюсам. Хитрый жук уже со второгой главы пытался мне под видом простой задачи продать какой то сраный алгорим бинарного поиска. Мне не зашло. Но к твоему совету прислушаюсь, я люблю читать книги прям от авторов языка

Керниган Б. У, Ритчи Д. М. ???

купил ее.

NorthernBlow
() автор топика
Последнее исправление: NorthernBlow (всего исправлений: 1)
Ответ на: комментарий от NorthernBlow

Там сразу несколько языков программирования. В том числе и C.

vbr ★★★★★
()
Ответ на: комментарий от firkax

Речь идёт о false sharing. Только я забыл, что это проблема производительности, а не безопасного доступа.

kaldeon
()

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

seiken ★★★★★
()
Последнее исправление: seiken (всего исправлений: 1)
Ответ на: комментарий от NorthernBlow

Ну, веб сервер должен только отдавать файлы и понимать http думаю, не сложно, если без https

IvanRia
()
Ответ на: комментарий от NorthernBlow

Ещё можно почитать древнюю книгу «програмное окружение unix», Керниган и Пайк, там вторая часть кнниги про си, я там даже ошибку в коде нашёл, ну, мне так показалось

IvanRia
()
Ответ на: комментарий от NorthernBlow

Напиши вчс на основе tun стильно, можно, молодежно, прикрути какую-нибудь авторизацию и простое шифрование, чтобы гпа не понимали, что это вчс

IvanRia
()

Т.е. ты хочешь сначала изучить микроскоп, а потом судорожно искать ему применение?

Бро, ты хоть немного понимаешь, что если бы тебе нужен был С, то этого топика бы не было? ;)

windows10 ★★★★★
()
Ответ на: комментарий от windows10

Я просто хочу изучить технологию, которая бы стабильно пользовалась спросом как С

я не хочу через 10 лет переучивать абсолютно весь девопсерский стек на очередной модный

NorthernBlow
() автор топика
Ответ на: комментарий от NorthernBlow

Тогда Вам нужно изобрести машину времени и каждые 10 лет… :)

sabacs
()
Ответ на: комментарий от NorthernBlow

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

Уже и клиническим олдфагам стало понятно, что этот динозавр в современном мире безнадежно устарел, и будет заменен на что-то другое. Это не обязательно будет Rust, или Go. Возможно это даже будет не один ЯП, потому что решать все задачи одним инструментом - априори идиотизм.

Но замена будет. Через год, или через пять.

С мобилок он УЖЕ турнут, а крупные гиганты, двигающие этот рынок, MS, Apple и Google потихоньку приходят к тому что дешевле и правильнее иметь единую экосистему, т.е. чтоб писать под мобилку и под десктоп было одинаково, с минимумом изменений.

У С останется нишевый рынок драйверов, ядер, ембеддов. Будет ли на это спрос? Не думаю.

По мере уменьшения количества подобных вакансий - компании смогут повысить им оклад, взамен предъявляя очень высокие требования к навыкам. В итоге макаки никому не будут нужны, действительно крутые Сишники будут сидеть, не рыпаясь, на высокой зарплате, а вакансии на программиста будет открываться разве что после смерти предыдущего =)

windows10 ★★★★★
()
Ответ на: комментарий от yars068

// это комментарии из C++ их в чистом Си нет

Да, я знаю.

Что ты знаешь, что тебя троллят?

Вот выдержка из C23:

1 Except within a character constant, a string literal, or a comment, the characters /* introduce a
comment. The contents of such a comment are examined only to identify multibyte characters and
to find the characters */ that terminate it.80)

2 Except within a character constant, a string literal, or a comment, the characters // introduce a
comment that includes all multibyte characters up to, but not including, the next new-line character.
The contents of such a comment are examined only to identify multibyte characters and to find the
terminating new-line character.
Bfgeshka ★★★★★
()
Ответ на: комментарий от windows10

Я бы не торопился заявлять что смерть сишки близка. Конечно гуй на ней не пишут, но не гуем единым.

luke ★★★★★
()
Ответ на: комментарий от windows10

да, я понимаю.

Но есть свои приколы у сишки. Например, пописав на ней код мне внезапно куда более становится понятен питон. У меня почему-то сложности с многоуровневыми абстракциями как в питоне. А вот на С понятно

NorthernBlow
() автор топика
Ответ на: комментарий от NorthernBlow

Ну мы ж про на хлеб заработать а не про на гитхаб выложить

luke ★★★★★
()
Ответ на: комментарий от NorthernBlow

пытался мне под видом простой задачи продать какой то сраный алгорим бинарного поиска

А что такого непростого в бинарном поиске?

Nervous ★★★★★
()

Книга: «Unix программное окружение», Керниган, Пайк. Баг на 300 стр., пофиксили на 318-й стр. Баг в ф-ции execute. У кого есть книга, проверьте пож-ста.

IvanRia
()
Ответ на: комментарий от Bfgeshka

Но ведь их в ANSI C и правда не было:

6.12.15 C++ Style Comments In GNU C, you may use C++ style comments, which start with ‘//’ and continue until the end of the line. Many other C implementations allow such comments, and they are included in the 1999 C standard. However, C++ style comments are not recognized if you specify an -std option specifying a version of ISO C before C99, or -ansi (equivalent to -std=c90).

В чём троллинг?

yars068 ★★★★★
()
Ответ на: комментарий от yars068

Но ведь их в ANSI C и правда не было:

В чём троллинг?

Оригинальное утверждение:

// это комментарии из C++ их в чистом Си нет

Да, их потом добавили, в самом первом стандарте не было. Но // в чистом C есть уже ~25 лет, автор очевидно троллит.

Аналогично можно сказать, что в крестах нет constexpr, а в английском языке - букв типа J и U.

Bfgeshka ★★★★★
()
Последнее исправление: Bfgeshka (всего исправлений: 1)
Ответ на: комментарий от luke

Я бы не торопился заявлять что смерть сишки близка. Конечно гуй на ней не пишут, но не гуем единым.

Все как в жизни. Под каждую задачу - свой инструмент. Под каждый тип ПО - свой язык. Попытки использовать мультитул - как в жизни плачевны, так и в софтостроении.

Поэтому если расширить твой тезис на «не X единым», то после перечисления типов ПО и наиболее подходящих под них ЯП, для Си останется та ниша, которую я описал - низкоуровневая мастурбация на байты и такты, где это действительно важно.

windows10 ★★★★★
()
Ответ на: комментарий от NorthernBlow

Но есть свои приколы у сишки. Например, пописав на ней код мне внезапно куда более становится понятен питон. У меня почему-то сложности с многоуровневыми абстракциями как в питоне. А вот на С понятно

Это на первых порах так. Да, действительно, код на С более читаем, чем Питоскрипт (но менее, чем скажем Pascal). Но потом когда проект становится больше одной страницы - начинается головная боль.

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

Здесь многие гонят на Gnome что он течет. И это правда. Но течет не Gnome (во всяком случае, не только он), течет GTK.

Вот ты создал родительский виджет, например кнопку, навесил на нее сигнал, например нажатие - окей, работает. Прибил кнопку с сигналом, а дескриптор остался.

Пока это ГУЙ какого-нибудь фотошопа - всем плевать. Когда это ГУЙ какого-нибудь DE - у тебя с вечера занято 50Мб, с утра занято уже 70Мб, при том что ты ничего не делал.

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

Ну так, любым инструментом можно выполнить любую задачу. Вон некоторые олени целое DE на PHP пишут. Но зачем?

windows10 ★★★★★
()
Ответ на: комментарий от windows10

целое DE на PHP пишут. Но зачем?

Но почему нет? :)

yars068 ★★★★★
()
Ответ на: комментарий от windows10

У С останется нишевый рынок драйверов, ядер…

… действительно крутые Сишники будут сидеть, не рыпаясь, на высокой зарплате, а вакансии на программиста будет открываться разве что после смерти предыдущего

Я подозревал, что однажды просто кончатся правильные программисты и всё повалится в тартарары. Сколько времени осталось?

papin-aziat ★★★★★
()
Ответ на: комментарий от papin-aziat

Я подозревал, что однажды просто кончатся правильные программисты и всё повалится в тартарары. Сколько времени осталось?

Мне, как крупной, динамично развивающейся компании, не нужны правильные программисты, потому что в экономике термина «правильно» нет. Мне нужен софт, обеспечивающий мне прибыль.

Если одинаковый софт с таким функционалом, может быть написан правильным программистом с зарплатой в $2000 на С за полгода, а неправильным программистом с зарплатой в $1000 на Питоне за месяц - я не задумываясь выберу Питониста.

Потому что как я говорил выше - мне деньги зарабатывать, а не лямбдами ЯПов меряться.

Впрочем я еще могу устроить между ними соревнование, чтобы они меня убедили, что именно на их ЯП я должен писать ПО, приносящее прибыль =)

- - -

На самом деле правильные программисты - не кончатся. Как учитель\преподаватель в прошлом, я могу из своего опыта сказать, что процент умных людей в обществе плюс-минус не изменяется.

Современная молодежь умеет и паять, и программировать на С, и писать ядра операционных систем, и многое другое. Я пару месяцев назад стоял в очереди за заказом в радиомагазине, и передо мной шкет лет 15-17 доказывал продавцу, что проданные им кондеры говно, назвав состав электролита, и просил поменять на другие.

Просто на Си перестанут писать то, что на нем писать не нужно.

windows10 ★★★★★
()
Ответ на: комментарий от sabacs

Сейчас даже в школах, по крайней мере СНГ переходят с паскаля на питон. В некоторых универах заменяют матлаб питоном или Engee

snake266 ★★★
()
Ответ на: комментарий от snake266

Сейчас даже в школах, по крайней мере СНГ переходят с паскаля на питон.

Да есть такое и это колоссальная ошибка. Возможно даже диверсия.

В некоторых универах заменяют матлаб питоном или Engee.

А здесь не вижу проблем, если речь идет о прикладном применении.

sabacs
()
Ответ на: комментарий от windows10

после перечисления типов ПО и наиболее подходящих под них ЯП, для языка X останется мастурбация на Y, где это действительно важно.

luke ★★★★★
()

Классика же: Керниган, Ритчи.

anc ★★★★★
()
Ответ на: комментарий от NorthernBlow

я так от Страуструпа читал по плюсам.
Мне не зашло.

Вообще-то это автор плюсов. Он из одной песочницы с Керниган и Ритчи.

anc ★★★★★
()
Ответ на: комментарий от Xintrea

А нахрена тебе Си, если ты английский не можешь? Вся документация в любом случае на нём. Русскими книжками ты себе максимум на полгода обеспечишь занятие.

hateyoufeel ★★★★★
()

Посоветуйте пожалуйста книгу, которую можно почитать и порешать оттуда заодно задачи если есть.

вот бы ещё в этой книге вакансии по теме публиковали

madcore ★★★★★
()
Ответ на: комментарий от madcore

вот бы ещё в этой книге вакансии по теме публиковали

Когда дочитаете вакансии протухнут. Но если серьезно в былые годы в книгах такое хоть и не часто, но публиковали, бывало что со стебом «если вы дочитали до этой страницы, то возможно вы нам подходите».

anc ★★★★★
()
Ответ на: комментарий от NorthernBlow

Нужна книга в бумажном формате.

Другие книги этой серии выходили на бумаге и даже на русском. Конкретно по Си — не знаю.

question4 ★★★★★
()
Ответ на: комментарий от masa

Я споткнулся на том, что иногда одиночную кавычку используют не как именно кавычку, а как замену апострофу (‘`’). В коде программы такое использование, конечно, исключено, но внутри комментария может встречаться. Ну, и некоторые комментарии программа пропускает.

yars068 ★★★★★
()
Ответ на: комментарий от luke

Хм. Если смотреть в K&R второго издания, то там 1.23 – написать программу, удаляющую все комментарии из программы на Си, а 1.24 – написать, по сути, линтер – программу, проверяющую программу на наличие синтаксических ошибок. И да, я пока что не осилил, но на мои потуги можно посмотреть на гитхабе :)

конечно же они вводят читателя в заблуждение, если предполагается полное решение задачи

Но и книга, если верить предисловию, предназначена для уже знакомых с программированием, а не для совсем чайников.

Ну, а 1.23 обсудили уже, тут не настолько всё сложно.

yars068 ★★★★★
()

Грустно это всё наблюдать. Настоящего программирования уже не осталось. Раньше сидел за машиной, писал прямо в шестнадцатеричных кодах, проверял флаги вручную, выравнивал циклы под тактовую частоту и гордился, если уложился в 256 байт. А теперь? Молодёжь открывает текстовый редактор, пишет на этом… на этом Си, и думает, что она «низкоуровневый программист»! Да у них даже указатель разыменовать боится библиотеки всякие, хедеры, препроцессор… Это ж не программирование, это сборка LEGO по инструкции!

Раньше каждая ячейка памяти была на вес золота. Ты знал, сколько тактов займёт команда, сколько циклов задержка в памяти, и планировал всё вручную. А теперь они смеют называть C «системным языком»? Да в их C даже нельзя напрямую обратиться к порту без кучи #ifdef’ов! Всё замазано абстракциями: stdio, malloc, даже main() с аргументами — всё готовенькое! Где тут дух машины? Где понимание железа?

Ассемблер уже в музеях пылью покрылся. Молодые ребята думают, что «volatile» это про волатильность характера, а не про доступ к memory-mapped I/O. Да и зачем им это? У них компилятор «оптимизирует», линкер «связывает», отладчик «показывает» и всё это без единого переключения в монитор памяти!

И не говорите мне про «указатели» это же просто замаскированные ссылки для тех, кто боится писать в абсолютный адрес! Раньше ты знал, где твой код лежит в памяти, знал, куда стек растёт, помнил таблицу прерываний наизусть. А теперь «программа упала». Почему? «Не знаю, valgrind молчит». Ха! Valgrind! Это же симулятор для тех, кто не может прочитать дамп памяти в hex-редакторе!

А что дальше будет? Скоро начнут учить, что C это «традиционный язык для настоящих инженеров», а настоящие инженеры в это время будут с грустью вспоминать, как вручную паяли перемычки на панели и вбивали загрузчик с перфоленты. Настоящее программирование умерло ещё до того, как появился первый компилятор.

Молодежь тупеет…

LightDiver ★★★★★
()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)