0 added
0 removed
Original
2026-01-01
Modified
2026-02-21
1
<p><a>#статьи</a></p>
1
<p><a>#статьи</a></p>
2
<ul><li>15 июн 2020</li>
2
<ul><li>15 июн 2020</li>
3
<li>0</li>
3
<li>0</li>
4
</ul><p>C++ - это язык больших возможностей. Но бывает очень просто запутаться, что нужно учить, а что - нет. Давайте разберёмся с этим.</p>
4
</ul><p>C++ - это язык больших возможностей. Но бывает очень просто запутаться, что нужно учить, а что - нет. Давайте разберёмся с этим.</p>
5
<p> vlada_maestro / shutterstock</p>
5
<p> vlada_maestro / shutterstock</p>
6
<p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
6
<p>Пишет о программировании, в свободное время создаёт игры. Мечтает открыть свою студию и выпускать ламповые RPG.</p>
7
<p><em>"Си" позволяет очень просто выстрелить себе в ногу. На "Си++" сделать это сложнее, но, когда вы это делаете, отрывает всю ногу.</em></p>
7
<p><em>"Си" позволяет очень просто выстрелить себе в ногу. На "Си++" сделать это сложнее, но, когда вы это делаете, отрывает всю ногу.</em></p>
8
<p><strong>Бьёрн Страуструп</strong><em>, создатель C++</em></p>
8
<p><strong>Бьёрн Страуструп</strong><em>, создатель C++</em></p>
9
<p><a>Серия статей по C++</a>познакомила вас не только с синтаксисом языка, но и с основами программирования. Мы узнали, что такое программа и булева алгебра, как используются и хранятся данные, и многое другое.</p>
9
<p><a>Серия статей по C++</a>познакомила вас не только с синтаксисом языка, но и с основами программирования. Мы узнали, что такое программа и булева алгебра, как используются и хранятся данные, и многое другое.</p>
10
<p>Однако этого всё ещё мало, чтобы называться программистом на C++. Сейчас мы расскажем, куда двигаться дальше, чтобы выбрать себе сферу разработки и стать профессионалом.</p>
10
<p>Однако этого всё ещё мало, чтобы называться программистом на C++. Сейчас мы расскажем, куда двигаться дальше, чтобы выбрать себе сферу разработки и стать профессионалом.</p>
11
<p>Для начала важно определиться, зачем вы вообще занимаетесь программированием. Если хотите<strong>улучшать операционные системы,</strong>то придётся изучить принципы их работы. Например, вы можете посмотреть, что творится в <a>исходном коде ядра Linux</a>, которое частично написано на C++<em>(почти полностью на C, который очень похож на C++).</em></p>
11
<p>Для начала важно определиться, зачем вы вообще занимаетесь программированием. Если хотите<strong>улучшать операционные системы,</strong>то придётся изучить принципы их работы. Например, вы можете посмотреть, что творится в <a>исходном коде ядра Linux</a>, которое частично написано на C++<em>(почти полностью на C, который очень похож на C++).</em></p>
12
<p>Если хотите<strong>работать над приложениями для компьютера,</strong>то нужно разбираться в том, для чего будут использоваться эти приложения. Например, чтобы написать программу для организации бюджета, пригодятся знания бухгалтерских формул и терминов.</p>
12
<p>Если хотите<strong>работать над приложениями для компьютера,</strong>то нужно разбираться в том, для чего будут использоваться эти приложения. Например, чтобы написать программу для организации бюджета, пригодятся знания бухгалтерских формул и терминов.</p>
13
<p>C++ очень часто используется для<strong>разработки высоконагруженных систем.</strong>Например, серверов для онлайн-игр. А тут никуда без отличного знания асинхронности, многопоточности, сетевого программирования и так далее.</p>
13
<p>C++ очень часто используется для<strong>разработки высоконагруженных систем.</strong>Например, серверов для онлайн-игр. А тут никуда без отличного знания асинхронности, многопоточности, сетевого программирования и так далее.</p>
14
<p><strong>Многие игры создаются</strong>именно на C++, потому что он отличается высокой производительностью. Для карьеры игрового разработчика вам понадобится изучить принципы работы с графикой, векторами и объектами помимо основной базы знаний.</p>
14
<p><strong>Многие игры создаются</strong>именно на C++, потому что он отличается высокой производительностью. Для карьеры игрового разработчика вам понадобится изучить принципы работы с графикой, векторами и объектами помимо основной базы знаний.</p>
15
<p>Мы рассказывали только про примитивные типы и совсем немного - про ссылочные. Переменные ссылочного типа отличаются тем, что в них хранится не какое-то значение, а ссылка. Рассмотрим это на примере массивов:</p>
15
<p>Мы рассказывали только про примитивные типы и совсем немного - про ссылочные. Переменные ссылочного типа отличаются тем, что в них хранится не какое-то значение, а ссылка. Рассмотрим это на примере массивов:</p>
16
//Создаём массив int arr[] = { 0, 1, 2, 3, 4 }; //Если мы попробуем вывести значение массива, то увидим не список значений всех элементов, а ссылку на первый элемент //Например, 0x7ffff7b668a0 - так выглядят ссылки на ячейки в оперативной памяти std::cout << arr << "\n"; //Указав перед названием переменной амперсанд, мы можем узнать адрес и этой ячейки //В данном случае - 0x7ffff7b668a4 //То есть адрес первого элемента + количество байтов, которое занимает один элемент - в данном случае 4, так как это int std::cout << &arr[1] << "\n";<p>Строки тоже относятся к ссылочным типам данных, потому что на самом деле это массивы из символов.</p>
16
//Создаём массив int arr[] = { 0, 1, 2, 3, 4 }; //Если мы попробуем вывести значение массива, то увидим не список значений всех элементов, а ссылку на первый элемент //Например, 0x7ffff7b668a0 - так выглядят ссылки на ячейки в оперативной памяти std::cout << arr << "\n"; //Указав перед названием переменной амперсанд, мы можем узнать адрес и этой ячейки //В данном случае - 0x7ffff7b668a4 //То есть адрес первого элемента + количество байтов, которое занимает один элемент - в данном случае 4, так как это int std::cout << &arr[1] << "\n";<p>Строки тоже относятся к ссылочным типам данных, потому что на самом деле это массивы из символов.</p>
17
<p>Изучение новых типов данных поможет понять в том числе, почему в массивы нельзя добавлять элементы, а в строки - можно.</p>
17
<p>Изучение новых типов данных поможет понять в том числе, почему в массивы нельзя добавлять элементы, а в строки - можно.</p>
18
<p>ООП позволяет смотреть на программный код не как на набор функций, переменных и команд, а как на классы и объекты со своими свойствами и поведением. Это ускоряет разработку и делает код более понятным.</p>
18
<p>ООП позволяет смотреть на программный код не как на набор функций, переменных и команд, а как на классы и объекты со своими свойствами и поведением. Это ускоряет разработку и делает код более понятным.</p>
19
<p>Сейчас ООП считается самой популярной<a>парадигмой программирования</a>. Для ознакомления можете почитать нашу<a>серию статей про ООП в C#</a>. Хотя реализация в C++ может отличаться, принципы объектно-ориентированного программирования везде примерно одинаковые.</p>
19
<p>Сейчас ООП считается самой популярной<a>парадигмой программирования</a>. Для ознакомления можете почитать нашу<a>серию статей про ООП в C#</a>. Хотя реализация в C++ может отличаться, принципы объектно-ориентированного программирования везде примерно одинаковые.</p>
20
<p>Кажется, что компьютер занят множеством задач одновременно, но это не так. За раз ядро процессора выполняет только одну какую-то операцию. А видимая многозадачность достигается с помощью создания нескольких потоков для решения задач.</p>
20
<p>Кажется, что компьютер занят множеством задач одновременно, но это не так. За раз ядро процессора выполняет только одну какую-то операцию. А видимая многозадачность достигается с помощью создания нескольких потоков для решения задач.</p>
21
<p>Подробнее об этом можете прочитать в нашей<a>статье об асинхронном программировании</a><em>(раздел про принцип работы процессора будет полезен вне зависимости от вашего языка)</em>.</p>
21
<p>Подробнее об этом можете прочитать в нашей<a>статье об асинхронном программировании</a><em>(раздел про принцип работы процессора будет полезен вне зависимости от вашего языка)</em>.</p>
22
<p>Данные, которыми оперирует программа во время работы, нужно куда-то сохранять, чтобы они не исчезли без следа. Пользователю удобнее, если программа будет, например, формировать для него финансовый отчёт и сохранять его в Excel-файл. Если же приложение так не может, его возненавидят те, кому придётся копировать все данные и сохранять их вручную.</p>
22
<p>Данные, которыми оперирует программа во время работы, нужно куда-то сохранять, чтобы они не исчезли без следа. Пользователю удобнее, если программа будет, например, формировать для него финансовый отчёт и сохранять его в Excel-файл. Если же приложение так не может, его возненавидят те, кому придётся копировать все данные и сохранять их вручную.</p>
23
<p>Работа с файлами важна практически во всех программах - от игр<em>(загрузка локаций, сохранение прогресса)</em>до медиаплееров<em>(чтение аудио и видео)</em>.</p>
23
<p>Работа с файлами важна практически во всех программах - от игр<em>(загрузка локаций, сохранение прогресса)</em>до медиаплееров<em>(чтение аудио и видео)</em>.</p>
24
<p>Сейчас сложно найти программу, которая не работает с интернетом, - она либо напрямую связана с ним<em>(онлайн-игры, браузеры, мессенджеры)</em>, либо банально качает обновления и отправляет разработчикам статистику.</p>
24
<p>Сейчас сложно найти программу, которая не работает с интернетом, - она либо напрямую связана с ним<em>(онлайн-игры, браузеры, мессенджеры)</em>, либо банально качает обновления и отправляет разработчикам статистику.</p>
25
<p>Существуют как простые функции работы с сетью, вроде отправки запросов и скачивания файлов по ссылке, так и сложные, вроде сокетов. И это тоже чрезвычайно важно знать.</p>
25
<p>Существуют как простые функции работы с сетью, вроде отправки запросов и скачивания файлов по ссылке, так и сложные, вроде сокетов. И это тоже чрезвычайно важно знать.</p>
26
<p>Базы данных - один из самых удобных способов хранения информации. Они предоставляют огромные возможности по сортировке и выборке данных. Например, с помощью простого запроса можно узнать имена всех учеников, которые не сдали деньги на шторы в этом месяце.</p>
26
<p>Базы данных - один из самых удобных способов хранения информации. Они предоставляют огромные возможности по сортировке и выборке данных. Например, с помощью простого запроса можно узнать имена всех учеников, которые не сдали деньги на шторы в этом месяце.</p>
27
<p>Для работы с базами данных придётся выучить не только функции C++, но и отдельный язык запросов SQL.</p>
27
<p>Для работы с базами данных придётся выучить не только функции C++, но и отдельный язык запросов SQL.</p>
28
<p>Я почти уверен, что вам не нравится создавать консольные приложения, ведь кому понравится это:</p>
28
<p>Я почти уверен, что вам не нравится создавать консольные приложения, ведь кому понравится это:</p>
29
<p>Когда даже редактор кода выглядит лучше:</p>
29
<p>Когда даже редактор кода выглядит лучше:</p>
30
<p>В C++ есть несколько популярных библиотек, чтобы создавать графические интерфейсы<em>(GUI)</em>. Например, Qt или GTK. В конце концов, вы можете напрямую говорить видеокарте, как она должна показывать ваше приложение.</p>
30
<p>В C++ есть несколько популярных библиотек, чтобы создавать графические интерфейсы<em>(GUI)</em>. Например, Qt или GTK. В конце концов, вы можете напрямую говорить видеокарте, как она должна показывать ваше приложение.</p>
31
<p>На изучение всего этого тоже нужно время. Но чтобы понять, как работать с GUI, сначала разберитесь с предыдущими пунктами.</p>
31
<p>На изучение всего этого тоже нужно время. Но чтобы понять, как работать с GUI, сначала разберитесь с предыдущими пунктами.</p>
32
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
32
<a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>