Должен ли «настоящий» программист знать язык Си — отвечают эксперты

Kate

Administrator
Команда форума
Ходит легенда, что знание Си сильно прокачивает навыки программиста, даёт ему глубокое понимание работы компьютерных систем и густую бороду. О том, так ли это и нужно ли всем программистам в обязательном порядке учить Си, мы спросили у экспертов.

Рустам Нагаев​

технический директор по разработке в «Инновационном центре Ай-Теко»​

«Настоящему» программисту стоит понимать концепции, которые лежат в основе языка Си — как работает управление памятью, указатели, структуры. Здесь можно провести аналогию: нужно ли знать водителю устройство автомобиля? Если человек хочет просто перемещаться из точки в точку, то ему вряд ли пригодятся такие знания в полной мере. А вот если он хочет стать хорошим водителем, то с некоторыми принципами работы автомобиля всё же придётся разобраться.
Однако изучать базу можно и на примере других языков. Возможностей очень много, поэтому знать именно язык Си совсем не обязательно.
Рейтинг полезности ответа:
4,2

Алексей Анастасьев​

технический директор ГК «CиДиСи» (CDC)​

В современной индустрии преобладает разработка с использованием объектно-ориентированного программирования (ООП), язык Си — процедурный и сейчас стал «нишевым». Он используется в областях, где существуют жесткие требования к производительности, или аппаратные ресурсы платформы сильно ограничены. Примером может стать ядро Linux или программирование микроконтроллеров.
В мобильной разработке язык Си может использоваться при написании игр или для создания native методов Java классов, реализация которых использует вызовы JNI.
Язык Си считается языком низкого уровня. Начав изучение программирования с него, специалист будет лучше понимать базовые вещи в разработке. Кроме того, существует множество языков программирования, синтаксис которых берёт начало у языка Си, например C++, Java, C#. Знание «первоисточника» наверняка облегчит их изучение.
Тем не менее, базу (классические структуры данных, битовые операции) можно изучать на примерах ООП-языков, особой разницы нет. Кроме того, зачастую такой уровень погружения в детали, который даёт Си, на практике не нужен.
Программист высокого уровня должен иметь широкий кругозор и не замыкаться в рамках одной парадигмы программирования или языка. Сегодня в России не так много специалистов, хорошо владеющих «низкими» языками программирования, а знание Си может стать важным конкурентным преимуществом.


Источник статьи: https://tproger.ru/experts/is-c-a-must-learn-for-all-programmers/
 
Сверху