Начнем с самого сложного. C++ → cИ плЮс плЮс, С# → сИ шАрп. Многие «горят» на неправильном произношении языков. ))
Если у опытного разработчика, скажем, с 20-летним стажем спросят, какой язык программирования нужно учить первым, что он ответит? Почти 100%, что он посоветует освоить один из языков семейства Си.
Эти языки занимают первые строчки в любых рейтингах популярности. А какие именно языки входят в это семейство, какие библиотеки и фреймворки используют, какие продукты на них написаны и что еще нужно знать рекрутеру — в нашей статье.

Языки семейства Си
Не вдаваясь в тонкости и не ища проколов в классификации, назовем языками семейства Си все языки, которые используют фигурные скобки {} для выделения функциональных блоков (функции, классы, циклы и др.). Это языки С, С++, C#, Objective-C. Эти языки используются в основном для бекенда, но есть отдельные фреймворки, позволяющие делать фронтендную часть.
Вот пример кода Си.
Hello World — в Windows:
#include <stdio.h>
#include <conio.h>
int main () {
printf («Hello World\n«);
getch();
}
Плюсы этих языков
Хороши для изучения тем, кто любит и знает математику и готов погружаться в бекенд-разработку. Мы с этого начали. В языках семейства Си дается фундамент программирования, введены основные понятия, из которых состоит код: переменные, классы, функции, типы, потоки команд и т.д.
- Универсальность — создание продуктов для разных платформ и систем (от приложений для Android до декстопов на Microsoft). Все примеры будут ниже.
- Скорость работы приложения. На пальцах это сложно показать, но буквально во всех профильных статьях упоминается это преимущество.
- Много библиотек и шаблонов, чтобы не решать решенные задачи. Многие из библиотек бесплатные.
- Помогают трудоустроиться. Совсем необязательно программировать только на языках семейства Си, но знание одного из них свидетельствует о том, что в голове программиста все правильно разложено по полочкам. Это своеобразный маркер для работодателя.
- Комьюнити и доступность справочной информации. Ответы на вопросы можно искать тут.
Что может быть написано на языках семейства Си
Да практически все. Если конкретизировать, то…
- С. Чего только не написано на Си: операционные системы (Windows, macOS, Linux, iOS, Android), базы данных (Oracle Database, MySQL, SQLite, MS SQL Server и PostgreSQL), Open Source-проекты, драйверы для внешних девайсов (принтеры, МФУ, клавиатуры, мыши и т.д.), другие языки программирования (C++, C#, Objective-C, Swift, Perl, Python, Ruby, PHP), графические библиотеки (Cairo, OpenGL, SDL) и много чего еще, например, софт для космических разработок.
Библиотеки: assert.h, complex.h (C99), ctype.h, errno.h. - С++ используется для оптимизации кода (переписывают код с более высокоуровневого языка на С++, чтобы работал быстрее), игры AAA-класса (сложные, красивые, высокобюджетные игры), GPU-вычисления (сотни мелких ядр выполняют простые вычисления, да-да — именно так майнят биткоины).
Фреймворки для начинающих: SFML, Poco, GTK+, Cocos2D-X, SDL. - C# используется для разработки сайтов (ASP.NET — фреймворк для веба на C#), клиентских и web-приложений, машинного обучения кроссплатформенных мобильных приложений и игр в Unity 3D, CryEngine и DirectX. Хорошо сочетается со средой Microsoft, потому что изначально был создан для внутренних нужд компании.
Фреймворки: ASP.NET MVC, ASP.NET Web Api, .NET, Automapper. - Objective-C используется для написания всего софта для macOS и iOS — от приложений (Moves, Duoling) до игр (Device 6, Badland, Impossible Road).
Фреймворки: Cocao Touch, Media Layer, Core Services, Core OS.
Что должен знать IT-рекрутер при поиске программиста на языках из семейства С:
- какой все-таки язык нужен для проекта;
- какие есть версии нужного языка;
- какие библиотеки и фреймворки используются;
- какие компиляторы и отладчики актуальны для выбранного языка;
- что используется для тестирования на данном языке;
- понимание бизнес-домена.
Как найти ответы на эти вопросы: погуглить, изучить опыт компании по поиску похожих кандидатов, если возможно, либо спросить у тимлида, проджект-менеджера или у специалиста, ответственного за проект.
Давайте рассмотрим, какие требования предъявляют к кандидатам. Варианты вакансий — в карусели.
Кроме конкретных технических знаний и опыта работы с определенными языками и фейверками, требуются аналитический склад ума, знание алгоритмов и математики, английский язык хотя бы на уровне А2, для руководящий позиций — знание современных методологий ведения проектов, лидерства и мотивации команды.
Заработные платы в 2021 году в Беларуси, медианное значение:
С / С++ — $2540, C# — $1600, Objective-C — $2300. Вилки огромные: от $350 до $10 000.
На занятиях в школе HRPR вы пройдете технический ликбез
Чтобы знать, какие особенности учитывать при поиске самых разных IT-специалистов.