В 2014 году я начал свою университетскую карьеру в Туринском политехническом университете, получив степень бакалавра в области компьютерной инженерии. Первым предметом, посвященным информационным технологиям, во втором семестре была информатика, посвященная общей структуре компьютера и базовому программированию на C. Да, С.

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

Еще один конкретный курс информатики в программе был на третьем семестре: Алгоритмы и программирование. Курс, охватывающий структуры данных (списки, дерево, очередь ...) и различные алгоритмы (сортировка, кратчайший путь ...).
Действительно сложный предмет, считается самым сложным экзамен за три года. Какой язык программирования мы используем? Снова C.

В следующем семестре у нас было ООП. Какой язык? В. Конечно, шучу, мы использовали Java. 🤓

Но затем наступил еще один семестр с появлением Операционных систем, и, конечно же, мы снова использовали язык C для написания процессов, потоков и семафоров.

В конце концов, оглядываясь назад, я вижу, что в бакалавриате я в основном писал код на C. Представьте, что теперь я использую Java, Python, Go или любой другой язык. Я чувствую себя в раю и free(me);

В этом году я снова поступил в магистратуру по программной инженерии здесь, в Туринском политехническом университете.
Я хочу выделить два класса, которые я следую: Распределенное программирование I и Программирование систем и устройств. В первом рассказывается, как работать с кодом клиент-сервер, HTML, CSS, Javascript и как управлять сетевыми сокетами с помощью языка C, во втором - программирование работы с Linux и Windows. system (своего рода Операционные системы II) и, конечно же, в настоящий момент я использую pthread на языке C.

Большинство моих коллег жалуются на переполнение C:
«у нас есть много более простых и производительных языков программирования. C просто стар и слишком низок ».

C родился в 1972. Он довольно старый, и в последнем опросе Stack Overflow это только 11-й по популярности язык.

Так почему же они заставляют нас писать код на C и не переходить на что-то новее и круче? Например JS (он 1-й в предыдущем рейтинге)?

Потому что это одна из основ ИТ и информатики.

Я имею в виду, что если вы выучите C, вы овладеете «всеми» языками программирования за считанные дни. Для меня изучение Java было шуткой, а «трудной» частью был переход к объектно-ориентированной парадигме, и даже Golang оказался легким.

При использовании C вы должны заботиться об управлении памятью, чтобы вы знали, что такое куча и стек и как они распределяются.

Вы должны уметь управлять указателями, чтобы знать, что такое адрес памяти и как он может быть одновременно мощным и вредным.
С помощью C вам нужно знать, какие существуют типы языков программирования, что такое int, float, double .. Итак, вы ' у меня не возникнет проблем с переключением на Python или другие нетипизированные языки. (Думаю, обратное может быть непросто.)
Вам нужен список на C? Вы его реализуете! Вы узнаете, как комбинировать структуры с указателями, и сможете управлять компьютером и языком.

Вы контролируете язык, а не язык, который управляет вами.

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

Дело в том, что большинство языков программирования C-подобны. У них много общего синтаксиса, поэтому они будут знакомы программисту на C.

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

Легко выучить немного PHP, взять немного JS и называть себя кодером, но помните:

Лучше быть воином в саду, чем садовником на войне

До свидания!