Если вы вообще занимаетесь программированием, вы слышали о C.

Созданный Деннисом Ритчи в Bell Labs в период с 1969 по 1973 год, C был известен во всем мире. Это был первый язык программирования общего назначения с обширной пользовательской базой и библиотеками.

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

Даже если вы специализируетесь на другом языке программирования, вы, скорее всего, много знаете о C. Его называют «лингва-франка» языков программирования.

Lingua franca: язык, принятый в качестве общего языка между носителями, чьи родные языки различаются.

Python (полностью объектно-ориентированный язык программирования высокого уровня) основан на C. Почти все абстрактные языки по-прежнему являются C, глубоко внутри. Есть причина, по которой C часто является первым языком, который вы изучаете, когда получаете степень в области компьютерных наук.

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

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

С — это прошлое, настоящее и будущее.

Посмотрите на ближайший к вам гаджет прямо сейчас. Скорее всего, он работает на C. Ваша операционная система наверняка написана — по крайней мере, частично — на C. Драйверы тоже.

Поскольку «Интернет вещей» (IoT) продолжает набирать популярность в мире, многие из них основаны на языке C. В настоящее время микропрограммы используются во всем. Портативность C означает, что для большинства аппаратных средств, которые вы можете найти, доступны компиляторы C.

Это не только оборудование. Все, что обрабатывает огромные объемы данных или требует оптимальной производительности, обычно пишется на C из-за его удивительно малого времени выполнения. Самые популярные в мире базы данных, такие как Oracle, MySQL, MS SQL Server и PostgreSQL, написаны на C. Ditto для серверов Apache и nginx.

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

Согласно индексу TIOBE, популярность C в течение многих лет неуклонно снижалась. В 2017 году он поднялся на 2-е место сразу после Java и с тех пор остается там.

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

Поскольку в мире так много C, у большинства новых языков есть какой-то способ взаимодействия с C. Его ABI — один из самых простых для взаимодействия. Одно только огромное количество кода, написанного на C, доказывает, что спрос на программистов на C будет еще долгие годы.

Замена системы на C на альтернативную была бы слишком дорогостоящей даже для самых дальновидных организаций. Теоретически вы могли бы заменить C на C++, или Go, или Rust, но просто нет достаточного стимула для перехода.

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

Даже если вы являетесь фронтенд-разработчиком или лучше разбираетесь в объектно-ориентированных языках программирования, таких как Java/Python, все равно полезно получить немного C за поясом. Некоторые причины:

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

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

Вы хотите больше возможностей для трудоустройства в развивающейся области. IoT — это будущее. Вы по-прежнему будете наблюдать растущий спрос на программистов на C, которые могут работать со встроенными технологиями. В то же время сейчас не хватает программистов на C. Вы не видите много буткемпов или онлайн-курсов по C, как и по Java, Python и им подобным. Итак, идите туда, на первый этаж.

Итак, приступим.

Теперь вам, вероятно, не терпится освежить в памяти C и вы готовы заняться программированием встроенных устройств завтрашнего дня. Итак, на этой неделе мы делимся актуальным курсом по этой актуальной теме.

Программирование на C: программируйте свой путь к C — это всеобъемлющее, но простое руководство по всему, что связано с C.

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

В конце каждого урока вас будут опрашивать о вашем прогрессе.

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

"Давайте начнем"!

Что вы думаете? C готов насладиться вторым дыханием? Или вы думаете иначе? Комментарий ниже с любыми вопросами, комментариями, предложениями и т.д.

Первоначально опубликовано на сайте blog.educative.io 9 ноября 2018 г.