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
706
realeugene в сообщении #1507203 писал(а):
Я использовал.

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

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


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

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


27/08/16
11088
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
11088
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
418
Беларусь
Viete в сообщении #1507059 писал(а):
Как изучили язык программирования С Вы?
Как посоветуете изучать С?


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

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


02/08/11
7059
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
1446
Питер
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
1446
Питер

(Оффтоп)

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

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

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



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

Сейчас этот форум просматривают: Dmitriy40


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

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