Что нужно знать разработчику C++ и какие есть перспективы в карьере
C++ — это язык больших возможностей. Но бывает очень просто запутаться, что нужно учить, а что — нет. Давайте разберёмся с этим.
vlada_maestro / shutterstock
«Си» позволяет очень просто выстрелить себе в ногу. На «Си++» сделать это сложнее, но, когда вы это делаете, отрывает всю ногу.
Бьёрн Страуструп, создатель C++
Серия статей по C++ познакомила вас не только с синтаксисом языка, но и с основами программирования. Мы узнали, что такое программа и булева алгебра, как используются и хранятся данные, и многое другое.
Однако этого всё ещё мало, чтобы называться программистом на C++. Сейчас мы расскажем, куда двигаться дальше, чтобы выбрать себе сферу разработки и стать профессионалом.
Где используется C++
Для начала важно определиться, зачем вы вообще занимаетесь программированием. Если хотите улучшать операционные системы, то придётся изучить принципы их работы. Например, вы можете посмотреть, что творится в исходном коде ядра Linux, которое частично написано на C++ (почти полностью на C, который очень похож на C++).
Если хотите работать над приложениями для компьютера, то нужно разбираться в том, для чего будут использоваться эти приложения. Например, чтобы написать программу для организации бюджета, пригодятся знания бухгалтерских формул и терминов.
C++ очень часто используется для разработки высоконагруженных систем. Например, серверов для онлайн-игр. А тут никуда без отличного знания асинхронности, многопоточности, сетевого программирования и так далее.
Многие игры создаются именно на C++, потому что он отличается высокой производительностью. Для карьеры игрового разработчика вам понадобится изучить принципы работы с графикой, векторами и объектами помимо основной базы знаний.
Что нужно изучать дальше
Ссылочные типы данных
Мы рассказывали только про примитивные типы и совсем немного — про ссылочные. Переменные ссылочного типа отличаются тем, что в них хранится не какое-то значение, а ссылка. Рассмотрим это на примере массивов:
Строки тоже относятся к ссылочным типам данных, потому что на самом деле это массивы из символов.
Изучение новых типов данных поможет понять в том числе, почему в массивы нельзя добавлять элементы, а в строки — можно.
Объектно-ориентированное программирование
ООП позволяет смотреть на программный код не как на набор функций, переменных и команд, а как на классы и объекты со своими свойствами и поведением. Это ускоряет разработку и делает код более понятным.
Сейчас ООП считается самой популярной парадигмой программирования. Для ознакомления можете почитать нашу серию статей про ООП в C#. Хотя реализация в C++ может отличаться, принципы объектно-ориентированного программирования везде примерно одинаковые.
Многопоточность
Кажется, что компьютер занят множеством задач одновременно, но это не так. За раз ядро процессора выполняет только одну какую-то операцию. А видимая многозадачность достигается с помощью создания нескольких потоков для решения задач.
Подробнее об этом можете прочитать в нашей статье об асинхронном программировании (раздел про принцип работы процессора будет полезен вне зависимости от вашего языка).
Работа с файлами
Данные, которыми оперирует программа во время работы, нужно куда-то сохранять, чтобы они не исчезли без следа. Пользователю удобнее, если программа будет, например, формировать для него финансовый отчёт и сохранять его в Excel-файл. Если же приложение так не может, его возненавидят те, кому придётся копировать все данные и сохранять их вручную.
Работа с файлами важна практически во всех программах — от игр (загрузка локаций, сохранение прогресса) до медиаплееров (чтение аудио и видео).
Сетевое программирование
Сейчас сложно найти программу, которая не работает с интернетом, — она либо напрямую связана с ним (онлайн-игры, браузеры, мессенджеры), либо банально качает обновления и отправляет разработчикам статистику.
Существуют как простые функции работы с сетью, вроде отправки запросов и скачивания файлов по ссылке, так и сложные, вроде сокетов. И это тоже чрезвычайно важно знать.
Системы управления базами данных
Базы данных — один из самых удобных способов хранения информации. Они предоставляют огромные возможности по сортировке и выборке данных. Например, с помощью простого запроса можно узнать имена всех учеников, которые не сдали деньги на шторы в этом месяце.
Для работы с базами данных придётся выучить не только функции C++, но и отдельный язык запросов SQL.
Графические библиотеки
Я почти уверен, что вам не нравится создавать консольные приложения, ведь кому понравится это:
Когда даже редактор кода выглядит лучше:
В C++ есть несколько популярных библиотек, чтобы создавать графические интерфейсы (GUI). Например, Qt или GTK. В конце концов, вы можете напрямую говорить видеокарте, как она должна показывать ваше приложение.
На изучение всего этого тоже нужно время. Но чтобы понять, как работать с GUI, сначала разберитесь с предыдущими пунктами.