HTML Diff
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 &lt;&lt; arr &lt;&lt; "\n"; //Указав перед названием переменной амперсанд, мы можем узнать адрес и этой ячейки //В данном случае - 0x7ffff7b668a4 //То есть адрес первого элемента + количество байтов, которое занимает один элемент - в данном случае 4, так как это int std::cout &lt;&lt; &amp;arr[1] &lt;&lt; "\n";<p>Строки тоже относятся к ссылочным типам данных, потому что на самом деле это массивы из символов.</p>
16 //Создаём массив int arr[] = { 0, 1, 2, 3, 4 }; //Если мы попробуем вывести значение массива, то увидим не список значений всех элементов, а ссылку на первый элемент //Например, 0x7ffff7b668a0 - так выглядят ссылки на ячейки в оперативной памяти std::cout &lt;&lt; arr &lt;&lt; "\n"; //Указав перед названием переменной амперсанд, мы можем узнать адрес и этой ячейки //В данном случае - 0x7ffff7b668a4 //То есть адрес первого элемента + количество байтов, которое занимает один элемент - в данном случае 4, так как это int std::cout &lt;&lt; &amp;arr[1] &lt;&lt; "\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>