Программы для изучения c на компьютере
Люди, у которых появилось желание начать изучать программирование на C++, часто задают такие вопросы в сети:
- Что нужно для программирования на C++
- Какие программы нужны для программирования на C++
- Как начать программировать на C++
Однако ответ на один из вопросов порождает еще вопросы. На этой странице я постараюсь ответить на них и рассказать подробнее.
Язык программирования C++ очень популярный и используемый. Приложения, написанные на этом языке, используют системные вызовы операционной системы напрямую без прослоек. Это, в свою очередь, экономит ресурсы вычислительной машины и влияет на быстродействие. Программы, написанные на языке C++, славятся своим быстродействием.
Что нужно для программирования на C++
Самое нужное — это желание. Не имея желания программировать, Вам придется очень сложно себя пересиливать и вскоре это надоест. Программирование — это умственный процесс, оно может утомлять, даже если у вас сильно очень «загорелось». Кстати, у многих желание пропадает после прочтения половины учебной книги по языку программирования, т.к. появляются какие-то сложные конструкции или неинтересные для вас вещи. Например, Вы хотели сразу начать писать игры и изучать для этого нужные команды(классы и функции), а вам рассказывают об умных указателях, перегрузке функций или лямбда-выражениях. Если Вас не пугает то, что Вам придется изучить множество всего, что может показаться не нужным на первый взгляд, то милости просим в ряды начинающих программистов.
Для самого процесса программирования нужен сам программист и его рабочее место(компьютер с нужным софтом). Если вы читаете это, то наверняка с компьютера, поэтому всё необходимое вы уже имеете, за исключением IDE.
- Желание
- Компьютер
- Установленная IDE
IDE — интегрированная среда разработки, а если проще, то это программа в которой имеется целый набор полезных вещей: текстовый редактор для кода с подсветкой синтаксиса, компилятор (он переводит код вашей программы в машинный код, который понятен компьютеру), дебаггер и еще куча различных полезных приблуд.
Существует множество различных IDE для различных операционных систем.
IDE для Windows
Visual Studio. Самым популярным для Windows является Visual Studio (На официальном сайте Microsoft можно скачать бесплатно Visual Studio Express). В ней есть всё что нужно и даже больше, весит этот монстр несколько гигабайт, при этом тормозит на слабых компьютерах.
IDE для Linux
Geany. Самый оптимальный вариант — Geany. Легковесно, просто, быстро и удобно.
QtCreator. Лучшая, на мой взгляд, IDE для Linux (И не только, она кроссплатформенная). Есть всё что нужно + Qt Framework из коробки.
Как начать программировать на C++
Запастись чашкой вкусного кофе, сесть перед компьютером и запустить IDE. Однако, если Вы впервые начали, то Вам необходимо почитать как пользоваться вашей IDE, в сети множество информации на эту тему. Для начала достаточно узнать: как создать файл программы, как скомпилировать написанную программу и как запустить. Это дело 10-15 минут.
Ну и традиционно код первой программы, которую вы можете вставить в редактор, скомпилировать и запустить:
Далее Вам необходима учебная литература по языку C++. Кстати, во многих учебниках объясняется как пользоваться IDE, компилировать и запускать программы.
Учебной литературы в сети много, имеются сайты с уроками, видео-уроки и прочее.
Я бы начал с книг, в них всё более подробно описано.
Я могу порекомендовать пару книг:
- Программирование: принципы и практика в С++ (Бьёрн Страуструп) — книга для тех, у кого совсем нет опыта программирования.
- Учебник для начинающих: С++ (Стэнли Липман, Джосе Ладжойе, Барбара Му) — для тех, кто уже имеет небольшой опыт. В ней тысяча страниц подробнейшего описания.
Ну а лучшее, что можно сделать для изучения программирования — это практика. Программируйте чаще, придумывайте себе интересные задачи и реализуйте их решение в виде программы. Если что-то не получается — спрашивайте у других людей на программистских форумах или stackoverflow.
Думаю, что на все 3 популярных вопроса я ответил. Желаю удачи в начинаниях.
Опытные программисты на C и C++ не испытывают проблем с поиском работы, но для изучения этих непростых языков вам понадобится огромное желание, терпение, усидчивость и подборка ресурсов от «Библиотеки программиста».
C и С++ практичные и надежные языки программирования, активно использующиеся для разработки системного ПО и игровых решений. На них пишут в Microsoft, Apple, Intel, Google и в других ведущих ИТ-компаниях.
Курсы:
-
на Coursera. В эту специализацию входит пять курсов на русском языке от Московского физико-технического института, Яндекса и E-Learning Development Fund. Стоимость по запросу. на Coursera. Специализация состоит из четырех курсов на английском языке от Калифорнийского университета. Стоимость по запросу.
на Udemy. Подробный курс по С на английском языке для новичков. Стоимость – $11.69.
. Курс Оксаны Еськовой посвящён основам программирования C/C++ и задачам. Стоимость – $10.
Официальная документация:
-
. Набор учебных материалов Microsoft, от введения в программирование до создания первых программ. . Знакомство с переменными, функциями, массивами, циклами и другими базовыми элементами программирования в C++.
. Руководства и описание языка C++ от его создателя – Бьярна Страуструпа.
Другие мануалы и учебные пособия:
Обучающие видеоролики на Youtube:
-
от SimpleCode – 143 ролика, описывающих основные аспекты работы с этим языком программирования. – в идеоуроки на английском языке от GeeksforGeeks . – н есколько уроков по основам C на канале Гоши Дударя. – 26 видеороликов по C++ на канале Гоши Дударя.
- C++ for Beginners (SavvyNik) – 34 урока на английском языке.
Статьи, подкасты, телеграм-каналы, комьюнити:
Полезные ссылки на Github:
-
– хороший набор руководств на GitHub. – список проектов для начинающих. – список ресурсов и проектов, позволяющих расширенно освоить язык. – примеры проектов на C++.
- 83 topics projects – ссылки на репозитории.
Настольные книги по C/C++:
Литературы для изучения C/C++ предостаточно, но качественных и практических изданий не так уж и много – иногда они доступны только на английском языке. В нашей подборке такие тоже встречаются.
1. Программирование на C++ в примерах и задачах (2017)
Автор: Алексей Васильев.
Книга содержит полный набор сведений о языке С++, необходимых для успешного написания кода. Материал излагается последовательно и дополняется большим количеством примеров, практических задач и детальным разбором их решений. К каждому разделу прилагается обширный список задач для самостоятельного решения.
Язык: русский.
2. Язык программирования C++. Специальное издание (2017)
Автор: Бьерн Страуструп.
Книга написана создателем C++ и является каноническим изложением возможностей языка. Помимо подробного описания синтаксиса, на страницах издания вы найдете доказавшие эффективность подходы к решению разнообразных задач проектирования и программирования.
Язык: русский.
3. Объектно-ориентированное программирование в С++ (2004)
Автор: Роберт Лафоре.
Книга грамотно и полно излагает принципы объектно-ориентированного программирования в C++. Кроме теории она предлагает читателю сделать около 100 различных упражнений, которые позволят отточить навыки владения языком. Отлично подходит для начинающих программистов.
Язык: русский.
4. Язык программирования C++. Базовый курс (2018)
Авторы: Липпман Стенли Б., Лажойе Жози, Му Барбара Э.
Подробное введение в C++, которое детально покрывает буквально все аспекты языка в доступном формате. С самого начала книги читателя знакомят со стандартной библиотекой C++, её популярными функциями и средствами, что позволяет в скором времени приступить к написанию программ, даже если не были изучены некоторые нюансы языка. В книге используется стандарт С++11.
Язык: русский
5. C++ Pocket Reference 1st Edition (2003)
Автор: Kyle Loudon .
В книге описаны реальные проблемы и решения, а не только особенности языка. Издание охватывает язык и стандартную библиотеку.
Язык: английский.
6. C++: A Detailed Approach to Practical Coding (2017)
Автор: Nathan Clark.
Эта книга охватывает базовые разделы C++: типы данных, область действия переменных, константы и литералы, операторы типов модификаторов, числа, строки, классы и объекты, указатели на массивы, структура данных, дата и время и т. д.
Язык: английский.
Изучая C/C++, можно стать востребованным программистом и всегда держать курс на совершенствование своих компетенций.
Если вы знаете не вошедшие в статью интересные ресурсы, порекомендуйте их в комментариях. Надеюсь, наша статья показалась вам полезной. Успехов в обучении!
С и С++ требуют немало времени и упорства для достижения профессионального уровня, но это окупается. Если вы только начинаете путь в профессии, самостоятельное обучение по книгам и сайтам будет сложно совместить с основной работой. «Факультет разработки на C++» образовательной платформы GeekBrains предлагает рассчитанный на 18 месяцев обучения курс. Под руководством экспертов-практиков вы освоите с нуля один из самых сложных (и востребованных) языков программирования, а также добавите в портфолио 9 реализованных самостоятельно проектов. Успешно завершившим курс студентам GeekBrains помогает составить резюме, пройти собеседование и получить оффер.
Многие выбирают C++ в силу его возможностей (технических и карьерных), наличия большого количества учебного материала, востребованности. Чтобы как можно раньше выбраться из категории новичков в C++, нужно наработать базу знаний и опыта, а поможет в этом наш материал.
Умение профессионально пользоваться операционной системой − важнейший навык. Как минимум, нужно уметь пользоваться командной строкой. Ещё лучше, если вы освоите Linux, потому что его проще настроить под свои задачи.
Немаловажна и работа с системами контроля версий. Большая часть программистов предпочитает использовать git, но есть и неплохие альтернативы. При трудоустройстве работодатели часто просят соискателей проинспектировать код. Это базовое задание, поэтому, если с ним возникнут затруднения, ваши шансы получить место серьёзно снизятся.
Нельзя сказать, что "обуздать" C++ программисту легче, чем прочие ЯП. В процессе освоения языка вы изучите основы объектно-ориентированного программирования, узнаете больше о структурах данных и работе алгоритмов изнутри и снаружи.
Освоили эти темы? Двигайтесь дальше:
- Разберитесь с тем, что такое стековые переменные, и как объекты могут быть размещены в куче. Выясните, что происходит при вызове функции new, и в каких случаях переменные исчезают из области видимости.
- Узнайте, как на самом деле отличается обращение по ссылке от использования указателей. Поймите, как переменные проходят через функции, и чем отличается передача всей структуры от передачи указателя на структуру через функцию.
- Узнайте, как массивы аллоцируются с помощью new и delete, и как создать массив, который можно безопасно возвращать из функции
Если с этим покончено, то вот ещё несколько полезных разделов:
- Виртуальные методы
- Виртуальные деструкторы
- Перегрузка оператора
- Как работают шаблоны (функции, классы и создание экземпляров)
- Правильный синтаксис
- Стандартная библиотека и Boost (попрактикуйтесь в обеих)
Ещё будет неплохо, если вы уделите время изучению исходного кода крупных профессиональных проектов. Это в некоторой степени бесплатное обучение у мастеров.
Отличия C и C++
C предназначен для системного программирования, а язык C++ более универсален: он задумывался как улучшенная версия языка C. К самым базовым отличиям C++ относятся:
- Наличие классов и объектов в C++
- Наследование классов
- В C++ появились операции new и delete, inline-функции
Рассказываем о том, какими средами разработки стоит пользоваться C++ программисту, а также чем они отличаются.
Visual Studio
По сути, это просто редактор кода без графического интерфейса, и многие программисты считают его отсталым. Другие же, наоборот, говорят, что он не содержит ничего лишнего. Но начать пользоваться им сразу всё равно не получится, функций слишком много, поэтому сначала советуем разобраться с ними.
К плюсам относят поддержку макросов, автодополнение, режим сравнения файлов.
Qt Creator
Ещё одна кросс-платформенная IDE. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса с QtWidgets QML. Среди преимуществ: наличие интеллектуальной системы подсказок, возможность компиляции и кросс-компиляции проекта для различных систем, встроенный ассистент и специальный дизайнер.
Visual Studio Code
Ещё один редактор кода с поддержкой большинства популярных языков. Базируется на проектах с открытым исходным кодом, поддерживает интеграцию с системами контроля версий, имеет встроенный отладчик и возможность подключения сторонних дополнений. Доступен бесплатно.
CLion
CLion − умная IDE, предназначенная для разработки на С и С++ на платформах Linux, Windows и macOS. Включает в себя поддержку системы сборки кросс-платформенных проектов CMake, Gradle C++ и compilation database, возможность быстрого анализа кода, разнообразные рефакторинги и унифицированный интерфейс для работы с популярными системами контроля версий.
Ряду приложений требуется GUI. Для его создания нужно использовать графические библиотеки. Рассмотрим их подробнее.
Cairo
Cairo − библиотека для работы с векторными изображениями. В Mozilla, например, его используют в браузерном движке. Ещё им пользуются такие проекты, как MorphOS, AmigaOS, InkScape, Synfig, Graphite. Отсутствие русского языка не должно стать проблемой для C++ программиста.
Кросс-платформенный проект, предназначенный для создания приложений и плагинов на C++.
В интернете есть множество инструкций по данной библиотеке, но почти всё на английском. Можно прочитать книгу «Разработка кроссплатформенных приложений с использованием Juce», в которой объясняются основные принципы технологии.
SFML − одна из наиболее удобных и быстрых GUI-библиотек для 2D-графики. Среди плюсов − низкие требования к уровню владения языком программирования.
Библиотека часто используется стартапами и начинающими программистами, потому что не требует написания большого объёма кода. Простейшее приложение, вроде «Hello, World!», можно написать через минуты после запуска, а уже через неделю − сделать что-нибудь стоящее. Ещё одним крутым преимуществом является поддержка популярных платформ, в том числе Android.
Cocos2D-X
Библиотека предназначена для упрощения разработки мобильных игр. Пользователи отмечают её доступность, простоту использования и наличие специального конструктора на основе Cocos Creator. Кстати, с использованием этой библиотеки была разработана игра Badland.
Если в игру планируется добавление большого количество анимации и графики, то лучше использовать Unity, который позволяет интегрировать файлы из таких программ, как Photoshop, Maya или Blender.
Пожалуй, одна из самых известных графических библиотек. Изначально она задумывалась как компонент GIMP, но уже через несколько лет после выпуска первой версии, нашла применение в сотнях других приложений.
Теперь она представляет собой полноценный графический фреймворк. Хотя некоторые утверждают, что программы, созданные на Linux с использованием этого инструмента, выглядят лучше, чем на других платформах.
Коллекция open-source библиотек, созданных с целью упрощения разработки сетевых кросс-платформенных приложений на C++. Программистам, использующим этот фреймворк, нравится, что он помогает избежать самостоятельной реализации типовых задач, уменьшая тем самым количество потенциальных ошибок.
Asio C++
Это кросс-платформенная C++ библиотека для сетевого и низкоуровневого программирования, предоставляющая асинхронную модель с использованием современного подхода C++.
Silicon
Фреймворк, созданный для работы с высокопроизводительными приложениями и облегчения взаимодействия с веб API без ущерба для производительности программ.
WebSocket++
Создан с целью обеспечить более лёгкую работу с вебсокетами. Не предназначен для использования, как полноценное веб-приложение.
Относительно C++ сложно дать какие-то универсальные рекомендации: язык может использоваться для совершенно разных целей. Junior C++ программисту придётся первое время плотно взаимодействовать с кураторами, чтобы понять специфику продукта, компании. И даже опытным программистам на C++ требуется время, чтобы привыкнуть к задачам, которые ставятся в конкретных организациях.
Кроме того, C++ не имеет обширного набора стандартных библиотек, поэтому многие разрабатывают собственные, а значит, на их изучение потребуется дополнительное время.
Важно помнить, что организации нанимают не просто человека, который умеет пользоваться технологией, но ещё и готов развиваться самостоятельно. Например, в корпорациях уделяют всё меньше внимания знанию особенностей языка, библиотек и наборов инструментов, потому что там ожидают гибкость и способность быстро изучить что-то новое, когда это потребуется.
Тогда получается, что изучив основы и научившись писать работоспособные программы, стоит сразу идти в бой − подавайте заявки на стажировки, соглашайтесь на проектную работу, чтобы набрать как можно больше опыта.
Кто-то скажет, что сажать деревья сейчас глупая затея, потому что они вырастут только лет через 20. В программировании это работает примерно так же: вы изучаете технологии сейчас, применяете их долгое время, а профессионалом станете спустя продолжительное время работы.
Начинающему C++ программисту, который хочет достичь успеха, нужно понимать, что технология не является чем-то, что может быть освоено за неделю. Но чтобы начать разбирать его основные компоненты, не требуется практически ничего, кроме желания.
Представляем вашему вниманию лучшие бесплатные учебные курсы по C/C++ как для начинающих, так и для продвинутых разработчиков.
Языки группы Си, созданные еще в 70-80-х годах прошлого столетия, до сих пор не теряют своей актуальности и входят в десятку самых популярных языков программирования. На них написаны операционные системы, игровые движки и огромное количество современных программ. Поэтому, для желающих их освоить и впоследствии получить востребованную профессию, мы подготовили подборку свежих бесплатных курсов по C/C++.
Coursera
Coursera – образовательная платформа, созданная в свое время профессорами информатики Стэнфордского университета, не перестает делиться актуальными знаниями по различным технологиям. В этот раз она предлагает бесплатное обучение по C/C++ в виде пяти онлайн-курсов, разделенных по категориям. Уровень каждого курса авторы сравнивают с экзаменами на пояс в спортивной школе по карате Киокушинкай.
Основы разработки на C++: белый пояс
Этот курс познакомит студентов с основами программирования на языке С++. Также он научит важным базовым конструкциям, расскажет о работе с типами данных, классами и функциями и поможет создать первое приложение.
Программа курса:
- Знакомство с искусством C++.
- Техника владения функциями и контейнерами.
- Медитация над алгоритмами и классами.
- Ката по вводу/выводу, исключениям и перегрузке операторов.
- Первое кумитэ.
Ко всем темам прикреплены практические задачи и тесты, а в конце обучения в финальном проекте вы создадите хранилище данных с функциями поиска, добавления и удаления.
Предназначен для начинающих разработчиков.
Длительность: 1.5 месяца.
Основы разработки на C++: жёлтый пояс
Это продолжение предыдущего курса, из которого вы узнаете о стандартных алгоритмах и шаблонах функций, а также познакомитесь с концепциями наследования и полиморфизма.
Программа курса:
- Целочисленные типы, кортежи, шаблонные функции.
- Тестирование и отладка.
- Распределение кода по файлам.
- Итераторы, алгоритмы и контейнеры.
- Наследование и полиморфизм.
В конце обучения предусмотрен курсовой проект, в котором нужно будет усовершенствовать хранилище данных из предыдущего курса серии.
Предназначен для начинающих разработчиков, прошедших первую часть обучения.
Длительность: 1.5 месяца
Основы разработки на C++: красный пояс
Цель третьего этапа обучения – научиться писать эффективный код на С++ и рассмотреть новые возможности С++, не вошедшие в предыдущие курсы.
Программа курса:
- Макросы и шаблоны классов.
- Принципы оптимизации кода, сложность алгоритмов и эффективное использование ввода/вывода.
- Модель памяти в C++.
- Эффективное использование линейных контейнеров.
- Move-семантика и базовая многопоточность.
В конце обучения – финальный курсовой проект, в котором вы создадите свою поисковую систему.
Предназначен как для начинающих, так и продвинутых разработчиков.
Длительность: 1.5 месяца.
Основы разработки на C++: коричневый пояс
Четвертый курс серии научит вас идиомам языка C++ и созданию легко поддерживаемых программ.
Программа курса:
- Эффективное использование ассоциативных контейнеров.
- Пространства имён и указатель this .
- Константность и unique_ptr .
- shared_ptr и RAII.
- Функции: принципы понятного кода.
Предназначен для опытных разработчиков.
Длительность: 1.5 месяца.
Основы разработки на C++: черный пояс
Продвинутые темы и знакомство с библиотеками и инструментами, без которых нельзя представить современную разработку на С++.
Программа курса:
- Неопределённое поведение и инструменты поиска проблем.
- Сериализация и protobuf .
- Хранение объектов в памяти и таблица виртуальных методов.
- Вектор своими руками.
- Задача «Электронная таблица».
Здесь научат вас самостоятельно решать повседневные задачи С-разработчика и покажут как писать эффективный код.
Преподаватели всех 5-ти курсов – практикующие разработчики Яндекса, E-Learning Development Fund и МФТИ.
GeekBrains: Основы языка C
Курс по изучению базовых принципов работы на Си, позволяющий понять внутренние механизмы и устройство огромного количества современных языков программирования, поскольку большинство из них создано на его основе.
Программа обучения:
- Знакомство с языком, на котором написано подавляющее большинство операционных систем.
- Термины и понятия используемые программистами.
- Двоичные вычисления (Булева алгебра).
- Оперативная память и как с ней работать.
- Разработка несложных программ и библиотек.
- Применение полученных знаний на практике.
Длительность: 14 уроков
Предназначен для новичков в программировании.
Udemy: Основы С++ и основы UE4
Курс по основам С++ и движка Unreal Engine 4 от разработчика игр Civilization V Mobile и Little Big City 2 Анатолия Свириденко, являющегося преподавателем учебного центра games.education.
Программа курса:
- Введение в язык программирования С++.
- Функции и Указатели в С++.
- Массивы и Итераторы в С++.
- Основы работы в движке UE4.
- Интерфейс и основные инструменты работы в UE4.
Серия видеороликов по теме без непосредственного общения с лектором. Предназначен для начинающих программистов и разработчиков игр.
Длительность: 6 лекций (17 ч 29 мин)
Stepik: Программирование на языке C++
Курс дает основы языка C++, уделяя внимание базовым принципам разработки программ и их компиляции. В нем изложены далеко не все рабочие моменты, а лишь небольшая часть фундаментальных знаний, необходимых начинающему разработчику.
Программа курса:
- Введение в язык С++.
- Механизм выполнения программ.
- Все о структурах и классах.
- ООП и дополнительные возможности С++.
- Шаблоны.
Предназначен для слушателей знакомых с синтаксисом C или похожих структурных языков (Pascal, Java, Fortran и др.).
Длительность: 41 лекция (10 ч)
Программирование на языке C++ (продолжение)
Продолжение предыдущего курса, рассматривающее возможности языка, не вошедшие в программу первых лекций. В частности, речь пойдет о нововведениях стандартов C++11 и C++14 и о работе со стандартной библиотекой шаблонов.
Программа курса:
- Продвинутые возможности языка.
- Стандарты С++11 и С++14.
- Обработка ошибок.
- Многопоточность, библиотеки и метапрограммирование.
Рассчитан на знающих синтаксис разработчиков, а также пользователей прошедших первую часть обучения.
Длительность: 25 лекций (7 ч)
Loftschool: Основы С++
Еще один небольшой курс по фундаментальным основам С++, в котором рассмотрены базовые концепции языка, основные операции и работа со структурами данных.
Программа курса:
- ООП в С++.
- Структуры данных.
- Наследование.
- Потоки и файлы.
- Шаблоны и исключения.
Рассчитан на знакомых со структурным программированием слушателей.
Длительность: 22 лекции (3ч 20 мин)
Itproger: Уроки C++
Несколько десятков лекций по С++ для чайников со всей необходимой информацией, объединенной в один курс. Здесь вы освоите принципы работы с наиболее часто встречающимися конструкциями языка, а также с его более сложными концепциями.
Программа курса:
- Основы С++.
- Базовые структуры данных.
- Создание первой программы.
- Классы, объекты, массивы, циклы, функции.
- Шаблоны.
Подходит для желающих изучить С++ с нуля.
Длительность: 26 лекций
Ravesli: Уроки программирования на языке С++
Большой текстовый курс, объясняющий устройство языка С++ и программирования в целом. Написан простым, понятным языком, с большим количеством практических заданий, для тренировки вновь приобретенных навыков.
Программа курса:
- Базовые конструкции С++.
- Пошаговое создание игры.
- Графическая библиотека SFML.
- Уроки по работе Qt5
- OpenGL.
Подходит как для новичков в программировании, так и для разработчиков, желающих освежить свои знания.
Объем материала: 240 уроков
SimpleCode: Основы С++. Программирование для начинающих
Команда SimpleCode представила на всеобщее обозрение свой видеокурс по работе с языком программирования С++. Здесь вы поймете, как работать с структурами данных языка, освоите основные операции и инструменты, необходимые при создании первой программы.
Программа курса:
- Типы данных и основы синтаксиса языка С++.
- Функции и циклы.
- Работа с переменными и массивами.
- ООП в С++.
- Новые возможности языка.
Рассчитан на желающих освоить программирование на С++ новичков.
Длительность: 204 видеоролика
Далее рассмотрим небольшие серии обучающих видео, выложенные на Youtube.
Видеоуроки по программированию на C++ для начинающих и не только
Серия видеороликов по фундаментальным понятиям С++. Как и следует из названия, лекции будут полезны не только для новичков.
Длительность: 25 видеоуроков
«C++ с нуля»
Еще одна подборка обучающего видеоконтента для начинающих.
Длительность: 20 видеороликов
Курс по С++
Несколько видеороликов , объединенных в один курс
Длительность: 28 уроков
С++ программирование
Все что надо знать грамотному С-разработчику в небольшом курсе от известного блогера.
Длительность: 27 лекций.
Уроки С++
Этот авторский курс по С++ , посмотрело более 600 тыс. человек.
Длительность: 61 видео.
Большинство из рассмотренных программ обучения предоставляется в записи, без обратной связи преподавателя либо ментора. Следовательно, осваивать рассмотренные курсы, вам придется самостоятельно, вооружившись накопленными до этого знаниями и любимым поисковиком. Такой формат освоения материала не самый легкий. Поэтому «Библиотека Программиста» желает вам терпения, усидчивости и удачи в этом непростом деле!
Недавно у нас на GeekBrains стартовал свежий курс "Профессия: разработчик C++". Программа позволит всего за 9 месяцев освоить этот непростой язык и стать специалистом уровня junior. А это непростая задача. К примеру, в школах и ВУЗах на изучение С++ уходит минимум 2 года, чаще 4-5. Чтобы показать из чего состоит этот нелегкий путь, мы схематично описали для вас основные этапы.
Этап 1. Алгоритмическое программирование
Для современных языков это может показаться парадоксальным, но классическое обучение языку C++ начинается с изучения нескольких других языков. Вы изначально должны привыкнуть к структурам программ и выучить основные понятия. Поэтому на первых занятиях вместо компьютера студенты используют листы бумаги, а вместо кодов — блок-схемы со стрелками.
Этап 2. Pascal, Basic и C
На следующем этапе мы наконец включаем компьютер и начинаем создавать простые программы на языках, которые не имеют прямого отношения к С и С++. Идея классического образования, как и в прошлом пункте: приучить студентов правильно создавать структуру, помнить о служебных символах, использовать «правильные» обозначения и оформление.
Когда Pascal и Basic полностью исчерпают себя, а для этого достаточно нескольких часов, можно понемногу перемещаться к C, дублируя заученный код в новом синтаксисе. Сортировки разными методами, работа со строками и массивами, калькуляторы, игры — все эти базовые упражнения и программы помогут сжиться с новыми знаниями.
Этап 3. Среда для разработки — наипростейшая
В любом языке программирования надо начинать писать программы не в сложных IDE, а в простых универсальных редакторах. Notepad++ для этого отлично подойдёт, тем более, что название намекает на правильность выбора. Всё, что вам нужно сейчас, это подсветка синтаксиса и функция проверки. В студенческом образовании также практикуется написание кода на бумаге. Причина проста: экзамены по программированию в 21 веке всё ещё иногда сдаются без компьютеров.
Если у вас есть Linux (а если вы планируете стать программистом, то лучше установите его немедленно), то вопроса с выбором среды может вообще не стоять — просто откройте командую строку.
Любители олдскула могут попробовать установить себе на компьютер Borland C++, благо многие нынешние «крестоносцы» с теплотой и любовью относятся к этой серии (работать в ней реально удобно). Но для нормальной работы у вас есть незначительный выбор между Visual Studio и Qt Creator, в зависимости от задач.
На данном этапе остановим свой выбор на блокноте.
Этап 4. Начинаем с консолей
До тех пор, пока вы не напишите первое крутое приложение с кодом хотя бы десять листов, увлекаться графикой просто вредно. В командной строке можно реализовать кучу идей, от чатботов до RPG-игр, задействовав массу всевозможных библиотек и собственных знаний.
А потом на эту основу можно накладывать минимальные графические примочки, играть с физикой моделей, шлифовать моменты пересечений, наложений, отрабатывать взаимодействие с интерфейсом.
Когда и этот этап будет пройден, можно подключать серьёзные библиотеки и среды программирования, где многие пройденные ранее действия выполняются автоматически.
Этап 5. ООП
ООП — лестница от примитивной возни с кодом к комплексным структурам, лежащих в основе
таких продуктов, как Chrome, World of Warcraft и Linux. Также ООП является ключевой разницей между C и C++. В классическом образовании уделяется много времени изучению принципов ООП, ведь без досконального понимания, что это и зачем, вы будете создавать тонны лишнего и неправильного кода, пытаясь оправдать это личным удобством.
Так что на этом этапе придётся вернуться к процедурному и алгоритмическому программированию при помощи бумаги и ручки, потренировавшись чётко описывать объекты пути наследования и инкапсуляции. Совсем скоро это понадобится.
Этап 6. ООП в С++
Одно дело просто выучить постулаты ООП, другое — научиться применять их на практике. Для этого попробуйте проделать следующие упражнения:
- Перепишите свои сложные программы в рамках парадигмы ООП. Так вы поймёте, как можно упростить код.
- Создайте программу со сложной структурой, но почти нулевой функциональностью. Это будет полезно в будущем для правильного выстраивания связей без лишних блоков.
- Создайте первую относительно простую программу с нуля, воспользовавшись опытом первых двух упражнений. Например, телефонный справочник с функциями добавления, удаления, поиска и фильтрации.
Этап 7. Qt и начало графического программирования
«Классическое» образование на этом этапе сразу мигрирует в сторону Visual Studio – к созданию простых GUI-приложений в самой популярной IDE. Однако в качестве промежуточного варианта полезно будет использовать Qt благодаря его встроенным графическим библиотекам, позволяющим полноценно задействовать все ваши свежеиспечённые познания в C++ и ООП.
Эту остановку полезно будет сделать любому изучающему C++ ради будущих профессиональных перспектив и общего развития навыков. Благо, в Qt есть отличный встроенный помощник и много руководств по созданию разных типов приложений, так что проблем с освоением быть не должно. Даже если дело касается продвинутых навыков.
Этап 8. Visual Studio
GUI-приложения, чаще всего, это конечная остановка в ВУЗовском образовании. Ничего нового здесь студенты уже не узнают, скорее, привыкают к основному инструменту, окончательно закрепляют в сознании правильную структуру приложения и файлов.
Этап 9. Выбор специализации
Так как C++ невероятно востребованный язык почти во всех областях программирования, на этом этапе вы можете подумать, чем бы вы хотели заниматься в будущем. К примеру, если вы планируете работать с железом, то есть с микроконтроллерами, то придётся изучить библиотеки для работы с конкретными устройствами и средства отладки. Захотите работать в гейм-дизайне — путь лежит в Unity и схожие программы.
Эти 9 этапов не сделают из вас профессионала, но позволят более-менее осознать возможности языка и то, чем занимаются «крестоносцы». Вы можете попробовать преодолеть этот путь самостоятельно, а можете присоединиться к нам. Обещаем, это будет эффективнее и куда интереснее.
Читайте также: