2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему На страницу Пред.  1, 2
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 19:47 
Заслуженный участник


27/04/09
28128
realeugene в сообщении #1507149 писал(а):
Море. Весь интернет перед вами.
Ну это плохой совет, найти стоящую книгу нетривиально.

Вот при мне такую советовали:
Jens Gustedt. Modern C.

Viete
Учтите, однако, что современный C (тот, который стоит изучать в общем случае) и C, на котором написано ядро линуксов (или вам не нужно менять именно само ядро? Присоединюсь к тем, кто советует не трогать его без крайней нужды) — это два несколько разных языка. Подробностей я не знаю, но книга — хорошее начало, и может быть там даже эта тема затрагивается.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 19:52 


10/04/12
704
realeugene в сообщении #1507203 писал(а):
Я использовал.

И какой прирост производительности?

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 20:25 


24/10/14
46
Друзья! Мне кажется автор темы либо шутит, либо троллит :).
Ну посудите сами - Человек так хорошо знаком с Linux , что вознамерился модифицировать ядро .
Я вот несколько серверов поднимал на этой оси и десктопные были по работе. И я не готов предъявлять претензии к ядру :) . Хотя я, конечно, не обладаю способностями выше среднего.
Автор , говорит, что пол года писал на одном языке - да это только верхушек нахвататься !
Точно тут что-то не чисто .

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 20:33 


27/08/16
9426
mustitz в сообщении #1507205 писал(а):
И какой прирост производительности?
Я рестрикт применял в ходе оптимизации внутреннего цикла с его ручным разворачиванием и другими ручными микрооптимизациями с анализом генерируемого ассемблерного кода в попытке выжать максимум. Отдельно вклад рестрикта не профилировал, но суммарно ускорение было в разы, если мне память уже не изменяет.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 20:59 
Заслуженный участник


09/05/12
25179
destructor в сообщении #1507208 писал(а):
Друзья! Мне кажется автор темы либо шутит, либо троллит :).
Да нет, обычный юношеский максимализм. Это нормально, потом с возрастом (и опытом) пройдет.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 21:16 
Заслуженный участник


27/04/09
28128
destructor в сообщении #1507208 писал(а):
Точно тут что-то не чисто .
Это не важно, ссылка на хорошую книгу например не пропадёт и кому-то явно с большей вероятностью попадётся на глаза, чем без такой темы.

destructor в сообщении #1507208 писал(а):
Человек так хорошо знаком с Linux , что вознамерился модифицировать ядро
Или наоборот так плохо знаком, что решил, что ему надо модифицировать ядро. Тогда это будет типичнейший инстанс проблемы XY — просто и никаких лишних волнений.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 21:17 


27/08/16
9426
arseniiv в сообщении #1507204 писал(а):
Вот при мне такую советовали:
Jens Gustedt. Modern C.
Это основы языка, которые, безусловно, знать нужно, но из которых сложно понять, зачем и почему это всё именно так сделано? А без такого понимания, как следствие, человек не будет знать, как писать на сях не нужно.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение01.03.2021, 21:24 
Заслуженный участник


27/04/09
28128
Ну, большую кучу информации в голову за малое время так и так не затолкаешь. Я чуть ли не десятилетие приходил ко всё большему пониманию, как надо заниматься программированием и что надо уметь, и сменил несколько языков за это время. Не уверен, что хоть где-нибудь есть crash course, сужающий достаточно полное вхождение во всё, о чём полезно иметь представление для сбалансированного кругозора и умения достаточно разнообразное что-то на чём-то сделать приличным образом. Даже если ограничиваться одним языком, задача не сильно упрощается.

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

(Аналогичным образом я бы например советовал изучать Python изначально с оглядкой на статическую типизацию и используя плохо стыкующиеся с ней вещи минимально. Вот будет опыт и вкус — пожалуйста что угодно. Аналогичным же образом я бы советовал изучать классический бейсик вообще не. C++ тоже очень важно изучать начиная с современного состояния. И т. п..)

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение21.03.2021, 01:25 


27/06/20
337
Viete
По синтаксису и стандарной библиотеке (особенно по Unix/Linux/macOS-среде) мне очень нравится (не самый новый стандарт, но для начала отлично) классика K&R второе издание
Но если работать с таким старым кодом, как ядро Linux, наверное, можно потом и первое издание почитать, чтобы понять, как синтаксис C эволюционировал на протяжении 80-х годов от изначального более фортрано-подобного.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение21.03.2021, 07:58 
Аватара пользователя


23/05/20
336
Беларусь
Viete в сообщении #1507059 писал(а):
Как изучили язык программирования С Вы?
Как посоветуете изучать С?


Мне при переходе с фортрана на С очень помогла работа с примерами в отладчике, иначе возникают проблемы концептуального непонимания. Эффективно и быстро можно изучить С только при условии, что вы будете пользоваться отладчиком для рассмотрения примеров. Переходить на С с языков высокого уровня это в каком-то смысле изменение стереотипов программного мышления.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение21.03.2021, 11:43 
Заслуженный участник


02/08/11
6892
Viete в сообщении #1507059 писал(а):
Как изучили язык программирования С Вы?
Брал книжки с задачами по Бейсику и решал их на C. Переписывал свои старые программы с ТурбоПаскаля на C. Переписывал чужие программы на Бейсике на C (кстати, не так давно я минимум одну из них переписывал на Haskell, а потом и на Rust). Изучал программирование UNIX. Изучал WinAPI. Придумал язык Cyrill с кириллическими ключевыми словами и си-подобным синтаксисом и писал для него компилятор на C (основываясь на серии статей, рассказывающей как писать компиляторы на Паскале). Читал всякие забавные статьи "как писать на Си в объектно-ориентированном стиле", изучал ООП-техники, применяемые в ядрах Linux и FreeBSD (там два разных подхода), а также в GTK+ (ещё один подход). Писал велосипеды: библиотеку контейнеров на макросах, библиотеку для юнит-тестирования. Писал игры с мордой на C# WinForms и движком на C. К ним же делал альтернативную морду на NCurses для linux и для DOS, не помню уже с помощью чего. Переписывал программы с C на Objective-C, потом на C++ и потом обратно на C. Читал Крупника и Павловскую.

-- 21.03.2021, 12:45 --

Viete в сообщении #1507059 писал(а):
Как посоветуете изучать С?
Почитать самый самый минимум — и программировать, программировать, программировать. И в какой-то момент обязательно прочитать "Верёка достаточной длины, чтобы выстрелить себе в ногу" Голуба.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение05.04.2021, 03:37 
Аватара пользователя


07/02/12
1403
Питер
warlock66613 в сообщении #1510301 писал(а):
Читал Крупника и Павловскую
А что-то у последней интересного за последние 15 лет появилось?

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение05.04.2021, 13:02 
Аватара пользователя


11/06/12
10390
стихия.вздох.мюсли
bondkim137 в сообщении #1512871 писал(а):
А что-то у последней интересного за последние 15 лет появилось?
Татьяна Александровна Павловская покинула нас в 2014.

 Профиль  
                  
 
 Re: Как выучить язык С?
Сообщение06.04.2021, 00:27 
Аватара пользователя


07/02/12
1403
Питер

(Оффтоп)

Aritaborian в сообщении #1512929 писал(а):
Татьяна Александровна Павловская покинула нас в 2014
Печально. Не знал. Молодая была. Соболезнования родным.
Была моим преподавателем по C, около 20 лет назад.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 29 ]  На страницу Пред.  1, 2

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group