HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p><strong>Вместе с ассистентом кафедры фундаментальной и прикладной математики ФКИ МГУ Софьей Сазоновой рассказываем, стоит ли учить С++, правда ли он такой сложный и сколько зарабатывают C++ разработчики.</strong></p>
1 <p><strong>Вместе с ассистентом кафедры фундаментальной и прикладной математики ФКИ МГУ Софьей Сазоновой рассказываем, стоит ли учить С++, правда ли он такой сложный и сколько зарабатывают C++ разработчики.</strong></p>
2 <h2>Содержание</h2>
2 <h2>Содержание</h2>
3 <ul><li><a>C++: что делает, как он появился и какие у него преимущества</a></li>
3 <ul><li><a>C++: что делает, как он появился и какие у него преимущества</a></li>
4 <li><a>Что пишут на С++</a></li>
4 <li><a>Что пишут на С++</a></li>
5 <li><a>Что нужно знать разработчику на C++</a></li>
5 <li><a>Что нужно знать разработчику на C++</a></li>
6 <li><a>Подходит ли C++ для начинающих</a></li>
6 <li><a>Подходит ли C++ для начинающих</a></li>
7 <li><a>Можно ли стартовать сразу с С++, не изучая С</a></li>
7 <li><a>Можно ли стартовать сразу с С++, не изучая С</a></li>
8 <li><a>Что популярнее: С или С++</a></li>
8 <li><a>Что популярнее: С или С++</a></li>
9 <li><a>Сколько зарабатывает разработчик С++</a></li>
9 <li><a>Сколько зарабатывает разработчик С++</a></li>
10 <li><a>Как и с чего стартовать в С++: книги и ресурсы</a></li>
10 <li><a>Как и с чего стартовать в С++: книги и ресурсы</a></li>
11 </ul><h2>C++: что делает, как он появился и какие у него преимущества</h2>
11 </ul><h2>C++: что делает, как он появился и какие у него преимущества</h2>
12 <p>В 1980-х годах датский программист Бьерн Страуструп моделировал распределение вызовов между телефонными станциями. Работал он на С, похожем на машинный код в виде инструкций из двоичного кода.</p>
12 <p>В 1980-х годах датский программист Бьерн Страуструп моделировал распределение вызовов между телефонными станциями. Работал он на С, похожем на машинный код в виде инструкций из двоичного кода.</p>
13 <p>Во многом С не устраивал Страуструпа: был слишком медленным и не поддерживал объектно-ориентированное программирование - то есть не мог представить программу как набор объектов, не был понятным и наглядным.</p>
13 <p>Во многом С не устраивал Страуструпа: был слишком медленным и не поддерживал объектно-ориентированное программирование - то есть не мог представить программу как набор объектов, не был понятным и наглядным.</p>
14 <p>Тогда Страуструп решил усовершенствовать С, скрестив его с другим ретро-языком Simula. В C++ появились классы, строгая проверка типов, inline-функции и другие элементы, которые упрощают и ускоряют процесс кодинга.</p>
14 <p>Тогда Страуструп решил усовершенствовать С, скрестив его с другим ретро-языком Simula. В C++ появились классы, строгая проверка типов, inline-функции и другие элементы, которые упрощают и ускоряют процесс кодинга.</p>
15 <p>Сначала усовершенствования воспринимались просто как надстройка над базовым языком. Но очень быстро "С с классами" стал надежным рабочим инструментом для миллионов разработчиков.</p>
15 <p>Сначала усовершенствования воспринимались просто как надстройка над базовым языком. Но очень быстро "С с классами" стал надежным рабочим инструментом для миллионов разработчиков.</p>
16 <blockquote><p>"С++ (C plus plus) можно назвать более высокоуровневым, чем С: в отличие от последнего, он оперирует абстракциями.</p>
16 <blockquote><p>"С++ (C plus plus) можно назвать более высокоуровневым, чем С: в отличие от последнего, он оперирует абстракциями.</p>
17 <p>У С++ есть несколько важных преимуществ:</p>
17 <p>У С++ есть несколько важных преимуществ:</p>
18 <ul><li>Скорость. С++ обрабатывает данные быстрее большинства высокоуровневых языков.</li>
18 <ul><li>Скорость. С++ обрабатывает данные быстрее большинства высокоуровневых языков.</li>
19 <li>Кроссплатформенность. В отличие от многих других, в том числе от еще более высокоуровневого С#, С++ не зависит от платформы: разработку можно легко перенести с одной операционной системы на другую.</li>
19 <li>Кроссплатформенность. В отличие от многих других, в том числе от еще более высокоуровневого С#, С++ не зависит от платформы: разработку можно легко перенести с одной операционной системы на другую.</li>
20 <li>Универсальность. С++ поддерживает множество стилей программирования, например, процедурное программирование, объектно-ориентированное программирование. Также С++ предоставляет абстракцию данных. Благодаря этому его можно использовать для решения практически любых задач".</li>
20 <li>Универсальность. С++ поддерживает множество стилей программирования, например, процедурное программирование, объектно-ориентированное программирование. Также С++ предоставляет абстракцию данных. Благодаря этому его можно использовать для решения практически любых задач".</li>
21 </ul><p>Скорость, универсальность и кроссплатформенность делают С++ чем-то вроде универсального оружия. Бьерн Страуструп называет его "незримой основой всего". Где используют С с плюсами? В тех частях системы, которые не видны пользователям, но являются основой работы всего сервиса, например, в игровых или поисковых движках и системах управления базами данных.</p>
21 </ul><p>Скорость, универсальность и кроссплатформенность делают С++ чем-то вроде универсального оружия. Бьерн Страуструп называет его "незримой основой всего". Где используют С с плюсами? В тех частях системы, которые не видны пользователям, но являются основой работы всего сервиса, например, в игровых или поисковых движках и системах управления базами данных.</p>
22 </blockquote><blockquote><h3>Читайте также:</h3>
22 </blockquote><blockquote><h3>Читайте также:</h3>
23 <p>"История IT. 1970: События, люди, технологии":<a>Павел Калашников про запуск UNIX-времени</a>, создание Pascal и патент на компьютерную мышь</p>
23 <p>"История IT. 1970: События, люди, технологии":<a>Павел Калашников про запуск UNIX-времени</a>, создание Pascal и патент на компьютерную мышь</p>
24 </blockquote><h2>Что пишут на С++</h2>
24 </blockquote><h2>Что пишут на С++</h2>
25 <p>На C++ создают высоконагруженные приложения, драйверы, графические стандарты и игры. Например, на С++ написана система управления базами данных MySQL - основа для множества высоконагруженных приложений, - главные продукты Microsoft, культовые игры Counter Strike и World of Warcraft.</p>
25 <p>На C++ создают высоконагруженные приложения, драйверы, графические стандарты и игры. Например, на С++ написана система управления базами данных MySQL - основа для множества высоконагруженных приложений, - главные продукты Microsoft, культовые игры Counter Strike и World of Warcraft.</p>
26 <p>На С++ пишут код, который должен выполняться быстро и надежно, поэтому он часто является основой для балансировщиков нагрузок на серверах и сложных графических алгоритмов. На C++ можно написать код для GPU - графического процессора. Так, например, создаются шейдеры для игр и графического ПО: они параллельно запускаются на GPU и позволяют без задержки выполнять сложные вычисления.</p>
26 <p>На С++ пишут код, который должен выполняться быстро и надежно, поэтому он часто является основой для балансировщиков нагрузок на серверах и сложных графических алгоритмов. На C++ можно написать код для GPU - графического процессора. Так, например, создаются шейдеры для игр и графического ПО: они параллельно запускаются на GPU и позволяют без задержки выполнять сложные вычисления.</p>
27 <p>На С++ можно писать сложные, нетривиальные алгоритмы - для этого у него есть огромная библиотека STL (Standard Template Library), где реализована большая часть алгоритмов и структур данных. Иногда С++ используют, чтобы оптимизировать код, добавить ему скорости и производительности или настроить приложение под конкретные платформы.</p>
27 <p>На С++ можно писать сложные, нетривиальные алгоритмы - для этого у него есть огромная библиотека STL (Standard Template Library), где реализована большая часть алгоритмов и структур данных. Иногда С++ используют, чтобы оптимизировать код, добавить ему скорости и производительности или настроить приложение под конкретные платформы.</p>
28 <blockquote><p>"Несмотря на универсальность, у языка есть и свои ограничения. Например, на С++ неудобно обрабатывать логи - файлы с информацией о действиях в программе - или собирать серверную статистику. Писать алгоритмы для машинного обучения или серверы для обработки запросов тоже будет сложно: в первом случае больше подойдет Пайтон с большим количеством фреймворков, во втором - Java или C#".</p>
28 <blockquote><p>"Несмотря на универсальность, у языка есть и свои ограничения. Например, на С++ неудобно обрабатывать логи - файлы с информацией о действиях в программе - или собирать серверную статистику. Писать алгоритмы для машинного обучения или серверы для обработки запросов тоже будет сложно: в первом случае больше подойдет Пайтон с большим количеством фреймворков, во втором - Java или C#".</p>
29 </blockquote><p>Существует миф, будто С++ подходит только для сложных приложений, потому что даже простые операции, написанные на нем, выглядят как сложные команды. Но эти проблемы легко решить благодаря огромным библиотекам с открытым исходным кодом по С++, которые содержат много вспомогательных функций и серьезно упрощают работу. Поэтому писать на С++ можно что угодно: и большой высоконагруженный сервис, и несложные программы для вычисления площади или решения систем алгебраических уравнений.</p>
29 </blockquote><p>Существует миф, будто С++ подходит только для сложных приложений, потому что даже простые операции, написанные на нем, выглядят как сложные команды. Но эти проблемы легко решить благодаря огромным библиотекам с открытым исходным кодом по С++, которые содержат много вспомогательных функций и серьезно упрощают работу. Поэтому писать на С++ можно что угодно: и большой высоконагруженный сервис, и несложные программы для вычисления площади или решения систем алгебраических уравнений.</p>
30 <h2>Что нужно знать разработчику на C++</h2>
30 <h2>Что нужно знать разработчику на C++</h2>
31 <blockquote><p>"Если вы планируете карьеру С++ разработчика - учите общие алгоритмы и структуры данных. Без них не обходится ни одно собеседование.</p>
31 <blockquote><p>"Если вы планируете карьеру С++ разработчика - учите общие алгоритмы и структуры данных. Без них не обходится ни одно собеседование.</p>
32 <p>Если захотите программировать на С++ и заниматься сложными вычислениями, придется разобраться в параллельном программировании, когда команды выполняются одновременно несколькими процессорами. Также нужно будет изучить открытый стандарт для распараллеливания OpenMP. Инженерам по разработке ПО важно знать дискретную математику, статистику, алгоритмы.</p>
32 <p>Если захотите программировать на С++ и заниматься сложными вычислениями, придется разобраться в параллельном программировании, когда команды выполняются одновременно несколькими процессорами. Также нужно будет изучить открытый стандарт для распараллеливания OpenMP. Инженерам по разработке ПО важно знать дискретную математику, статистику, алгоритмы.</p>
33 <p>Еще одно направление развития - компьютерная графика и геймдев, где нужно писать шейдеры и OpenGL. Здесь пригодится знание сопряжений с OpenCL - фреймворком для параллельных вычислений в графических процессорах - или CUDA, компилятора с расширениями, необходимыми для написания кода на GPU".</p>
33 <p>Еще одно направление развития - компьютерная графика и геймдев, где нужно писать шейдеры и OpenGL. Здесь пригодится знание сопряжений с OpenCL - фреймворком для параллельных вычислений в графических процессорах - или CUDA, компилятора с расширениями, необходимыми для написания кода на GPU".</p>
34 </blockquote><blockquote><h3>Читайте также:</h3>
34 </blockquote><blockquote><h3>Читайте также:</h3>
35 <p>Что нужно знать программисту<a>перед собеседованием</a>и как успешно его пройти</p>
35 <p>Что нужно знать программисту<a>перед собеседованием</a>и как успешно его пройти</p>
36 </blockquote><h2>Подходит ли C++ для начинающих</h2>
36 </blockquote><h2>Подходит ли C++ для начинающих</h2>
37 <p>Есть еще один не менее распространенный миф о С++. Говорят, что это сложный язык, который не подходит для старта в профессии.</p>
37 <p>Есть еще один не менее распространенный миф о С++. Говорят, что это сложный язык, который не подходит для старта в профессии.</p>
38 <p>Легко понять, почему его называют непростым. Вот пример классической программы "Hello, World!" на С++:</p>
38 <p>Легко понять, почему его называют непростым. Вот пример классической программы "Hello, World!" на С++:</p>
39 <p>А это пример на Python:</p>
39 <p>А это пример на Python:</p>
40 <p>Вот что<a>говорит</a>о сложности С++ создатель языка Страуструп:</p>
40 <p>Вот что<a>говорит</a>о сложности С++ создатель языка Страуструп:</p>
41 <p>"C++ действительно непрост, и чтобы научиться его использовать, необходимо приложить определенные усилия. Но людям вообще хочется невозможного: еще более простого языка, с еще большим количеством фич и сохранением работоспособности существующего кода".</p>
41 <p>"C++ действительно непрост, и чтобы научиться его использовать, необходимо приложить определенные усилия. Но людям вообще хочется невозможного: еще более простого языка, с еще большим количеством фич и сохранением работоспособности существующего кода".</p>
42 <p>С++ может стать отличным стартом в IT, но только если вы готовы приложить усилия. В отличие от многих высокоуровневых языков - Python, Java - он не такой "удобный". Один из минусов C в том, что он не читается интуитивно, приходится самому работать с памятью: следить, чтобы не было утечки данных и освобождать место для работы программы. Для этого сначала нужно разобраться с основами устройства компьютера и его функциями.</p>
42 <p>С++ может стать отличным стартом в IT, но только если вы готовы приложить усилия. В отличие от многих высокоуровневых языков - Python, Java - он не такой "удобный". Один из минусов C в том, что он не читается интуитивно, приходится самому работать с памятью: следить, чтобы не было утечки данных и освобождать место для работы программы. Для этого сначала нужно разобраться с основами устройства компьютера и его функциями.</p>
43 <p>Но усилия многократно окупаются ростом уровня подготовки. С С++ можно начинать, если вы настроены серьезно и готовы копать глубоко. Этот язык даст отличную базу, которая поможет уверенно двигаться вперед и решать проблемы не только на уровне кода.</p>
43 <p>Но усилия многократно окупаются ростом уровня подготовки. С С++ можно начинать, если вы настроены серьезно и готовы копать глубоко. Этот язык даст отличную базу, которая поможет уверенно двигаться вперед и решать проблемы не только на уровне кода.</p>
44 <blockquote><p>"На мой взгляд, C++ - оптимальный язык для старта, потому что он дает базу. Если человек хочет быть разработчиком и разбираться в этой теме глубоко, то не стоит начинать с языков с низким порогом вхождения, таких как Python или JavaScript.</p>
44 <blockquote><p>"На мой взгляд, C++ - оптимальный язык для старта, потому что он дает базу. Если человек хочет быть разработчиком и разбираться в этой теме глубоко, то не стоит начинать с языков с низким порогом вхождения, таких как Python или JavaScript.</p>
45 <p>Конечно, на их основе быстрее можно научиться программировать. Но из-за их простоты можно легко упустить важные вещи и не знать в итоге, как устроена память, адресация и многое другое. Это сложно, но важно. По моему опыту, людям, которые начинали, скажем, с JavaScript, потом сложнее глубоко погружаться и разбираться, почему программа так и не работает".</p>
45 <p>Конечно, на их основе быстрее можно научиться программировать. Но из-за их простоты можно легко упустить важные вещи и не знать в итоге, как устроена память, адресация и многое другое. Это сложно, но важно. По моему опыту, людям, которые начинали, скажем, с JavaScript, потом сложнее глубоко погружаться и разбираться, почему программа так и не работает".</p>
46 </blockquote><h2>Можно ли стартовать сразу с С++, не изучая С</h2>
46 </blockquote><h2>Можно ли стартовать сразу с С++, не изучая С</h2>
47 <p>Эта тема - предмет вечных дискуссий в комьюнити. Одни - и в их числе<a>сам Страуструп</a>- говорят, что С учить не обязательно. Вполне можно стартовать сразу с С++, где не нужно работать напрямую с символами и памятью и тратить время на сложности, с которыми пришлось бы возиться в С.</p>
47 <p>Эта тема - предмет вечных дискуссий в комьюнити. Одни - и в их числе<a>сам Страуструп</a>- говорят, что С учить не обязательно. Вполне можно стартовать сразу с С++, где не нужно работать напрямую с символами и памятью и тратить время на сложности, с которыми пришлось бы возиться в С.</p>
48 <p>Чтобы увидеть разницу, посмотрите, как выглядит на С создание email-адреса:</p>
48 <p>Чтобы увидеть разницу, посмотрите, как выглядит на С создание email-адреса:</p>
49 <p>А вот как это же действие выглядит на С++. Никаких сложных операций с символами и памятью:</p>
49 <p>А вот как это же действие выглядит на С++. Никаких сложных операций с символами и памятью:</p>
50 <p>Другая точка зрения: на примере С лучше разбираться в базовых теоретических вещах, поэтому для тех, кто "копает глубоко", лучше подойдет последовательное изучение обоих языков.</p>
50 <p>Другая точка зрения: на примере С лучше разбираться в базовых теоретических вещах, поэтому для тех, кто "копает глубоко", лучше подойдет последовательное изучение обоих языков.</p>
51 <p>Посмотрите, как разработчики решают задачу из олимпиадного программирования на С пятью разными способами. Судя по их решениям, кажется, что зная С, можно потом без проблем выучить многие другие языки - настолько хорошую базу знаний дает этот язык.</p>
51 <p>Посмотрите, как разработчики решают задачу из олимпиадного программирования на С пятью разными способами. Судя по их решениям, кажется, что зная С, можно потом без проблем выучить многие другие языки - настолько хорошую базу знаний дает этот язык.</p>
52 <blockquote><p>"Вопрос в том, чего вы хотите достичь. Если нужно глубоко разобраться в теме, то лучше сначала изучить что делает C. С его помощью можно разобраться с базовой архитектурой компьютеров и теоретическими основами, включая побитовые операции, обращение с динамической памятью и числами с плавающей точкой. Мы обычно преподаем именно так: даем фундамент, а на второй год изучения переводим студентов на С++ с его особенностями и фишками".</p>
52 <blockquote><p>"Вопрос в том, чего вы хотите достичь. Если нужно глубоко разобраться в теме, то лучше сначала изучить что делает C. С его помощью можно разобраться с базовой архитектурой компьютеров и теоретическими основами, включая побитовые операции, обращение с динамической памятью и числами с плавающей точкой. Мы обычно преподаем именно так: даем фундамент, а на второй год изучения переводим студентов на С++ с его особенностями и фишками".</p>
53 </blockquote><h2>Что популярнее: С или С++</h2>
53 </blockquote><h2>Что популярнее: С или С++</h2>
54 <p>Как С, так и С++ уже который год стабильно входят в топ-5 самых популярных языков. Причем одни индексы оценивают их по отдельности, другие включают в общую категорию.</p>
54 <p>Как С, так и С++ уже который год стабильно входят в топ-5 самых популярных языков. Причем одни индексы оценивают их по отдельности, другие включают в общую категорию.</p>
55 <p>Например, по<a>данным</a>индекса TIOBE в ноябре 2022 года С находится на втором месте, уступив самому популярному языку в мире Python. С++ отстал от С на два пункта и занял четвертое место.</p>
55 <p>Например, по<a>данным</a>индекса TIOBE в ноябре 2022 года С находится на втором месте, уступив самому популярному языку в мире Python. С++ отстал от С на два пункта и занял четвертое место.</p>
56 <p>В<a>исследовании</a>Stack Overflow за 2022 год, наоборот, С++ находится на шестом месте, а С - на седьмом.</p>
56 <p>В<a>исследовании</a>Stack Overflow за 2022 год, наоборот, С++ находится на шестом месте, а С - на седьмом.</p>
57 <p>А вот в<a>индексе</a>PYPL оба языка попали в одну категорию и находятся на четвертом месте, уступая другому родственному языку - C#.</p>
57 <p>А вот в<a>индексе</a>PYPL оба языка попали в одну категорию и находятся на четвертом месте, уступая другому родственному языку - C#.</p>
58 <blockquote><h3>Изучите основы языка C</h3>
58 <blockquote><h3>Изучите основы языка C</h3>
59 <p>У Хекслета есть платформа для изучения основ программирования с нуля - Code Basics. Пройдите<a>бесплатный курс по изучению языка С</a>. Обучение на Code Basics начинается с азов, информация структурирована и подается от простого к сложному.</p>
59 <p>У Хекслета есть платформа для изучения основ программирования с нуля - Code Basics. Пройдите<a>бесплатный курс по изучению языка С</a>. Обучение на Code Basics начинается с азов, информация структурирована и подается от простого к сложному.</p>
60 </blockquote><h2>Сколько зарабатывает разработчик С++</h2>
60 </blockquote><h2>Сколько зарабатывает разработчик С++</h2>
61 <p>На С++ пишут практически во всех крупных компаниях, поэтому он может стать хорошим инструментом для карьерного роста.</p>
61 <p>На С++ пишут практически во всех крупных компаниях, поэтому он может стать хорошим инструментом для карьерного роста.</p>
62 <p>Уровень зарплаты зависит не только от опыта, но и от знания фреймворков, алгоритмов, библиотек. Исходя из<a>вакансий</a>компаний, опубликованных на HeadHunter, в среднем джуниор-разработчик может претендовать на зарплату 120-150 тыс. рублей, а мидл- и сеньор-разработчик - от 200 тыс. рублей.</p>
62 <p>Уровень зарплаты зависит не только от опыта, но и от знания фреймворков, алгоритмов, библиотек. Исходя из<a>вакансий</a>компаний, опубликованных на HeadHunter, в среднем джуниор-разработчик может претендовать на зарплату 120-150 тыс. рублей, а мидл- и сеньор-разработчик - от 200 тыс. рублей.</p>
63 <h2>Как и с чего стартовать в С++: книги и ресурсы</h2>
63 <h2>Как и с чего стартовать в С++: книги и ресурсы</h2>
64 <p>Перед погружением в язык изучите базовую теорию по объектно-ориентированному программированию - это поможет быстрее погрузиться в тему.</p>
64 <p>Перед погружением в язык изучите базовую теорию по объектно-ориентированному программированию - это поможет быстрее погрузиться в тему.</p>
65 <p>Для тех, кто решит начать с изучения языка С:</p>
65 <p>Для тех, кто решит начать с изучения языка С:</p>
66 <ul><li>Герберт Шилдт "<a>Полный справочник по С</a>"</li>
66 <ul><li>Герберт Шилдт "<a>Полный справочник по С</a>"</li>
67 </ul><p>А если захотите стартовать сразу в С++, пригодятся книги:</p>
67 </ul><p>А если захотите стартовать сразу в С++, пригодятся книги:</p>
68 <ul><li>Герберт Шилдт "<a>Полный справочник по C++</a>"</li>
68 <ul><li>Герберт Шилдт "<a>Полный справочник по C++</a>"</li>
69 <li>Бьерн Страуструп "<a>Язык программирования C++</a>"</li>
69 <li>Бьерн Страуструп "<a>Язык программирования C++</a>"</li>
70 <li>Бьерн Страуструп "<a>Программирование. Принципы и практика использования C++</a>"</li>
70 <li>Бьерн Страуструп "<a>Программирование. Принципы и практика использования C++</a>"</li>
71 </ul><p>В процессе изучения языка не забудьте про STL и BOOST:</p>
71 </ul><p>В процессе изучения языка не забудьте про STL и BOOST:</p>
72 <ul><li>Питер Нортон Скотт Мейерс "Эффективное использование STL"</li>
72 <ul><li>Питер Нортон Скотт Мейерс "Эффективное использование STL"</li>
73 <li>Николай Джосьютис "C++ Стандартная библиотека. Для профессионалов"</li>
73 <li>Николай Джосьютис "C++ Стандартная библиотека. Для профессионалов"</li>
74 <li>П. Плаугер, А. Степанов "STL. Стандартная библиотека шаблонов C++"</li>
74 <li>П. Плаугер, А. Степанов "STL. Стандартная библиотека шаблонов C++"</li>
75 </ul><p>А еще здорово помогут:</p>
75 </ul><p>А еще здорово помогут:</p>
76 <ul><li><a>Сайт стандартизации С++</a></li>
76 <ul><li><a>Сайт стандартизации С++</a></li>
77 <li><a>YouTube-канал о С и С++</a></li>
77 <li><a>YouTube-канал о С и С++</a></li>
78 <li><a>Русскоязычное сообщество разработчиков</a></li>
78 <li><a>Русскоязычное сообщество разработчиков</a></li>
79 </ul>
79 </ul>