Точка входа в программирование
19.5K subscribers
1.45K photos
269 videos
2 files
2.97K links
Фундаментальные знания по основам программирования

Разместить рекламу: @tproger_sales_bot

Правила общения: https://tprg.ru/rules

Другие каналы: @tproger_channels

Сайт: https://tprg.ru/site

Регистрация в перечне РКН: https://tprg.ru/zrgj
Download Telegram
Инструкция к погружению в С++ и более 10 бесплатных ресурсов для начинающих

Выучить C++ сегодня не такая большая проблема, в интернете много учебных материалов. Самая большая проблема — сориентироваться в них и выбрать действительно полезную информацию.

В статье поделились рекомендациями по изучению языка подборкой бесплатных ресурсов для тренировки

#cpp #курсы
👍1
Media is too big
VIEW IN TELEGRAM
Проект по блокчейну для начинающих С++ разработчиков

Это увлекательное путешествие в мир программирования и криптографии, где сложные концепции преподносят простым и понятным языком.

Видео включает в себя основы майнинга и транзакций. Автор также демонстрирует процесс программирования блокчейна, обеспечивая практическое понимание темы.

#видео #блокчейн #cpp
Компьютерное зрение на С++

У нас тут периодически бывают статьи про машинное обучение и компьютерное зрение. Но, как правило, все они касаются Python. Сейчас же предлагаю посмотреть на реализацию на C++.

Здесь вы узнаете, как реализовать обнаружение объектов в реальном времени с помощью камеры на мобильной платформе Android с использованием библиотек PyTorch и NCNN и моделей компьютерного зрения YOLOv5 и YOLOv4.

Часть 1
Часть 2

#cpp #cv #ml
👍1
Какое будущее ждёт «плюсы»

Недавно появилась интересная статья, которая поднимает этот вопрос. Те, кто работали с C++, знают, что у него есть несколько диалектов. А ещё несколько разных стандартов. Это, как вы можете догадаться, приносит много сложностей по унификации кода из разных проектов, созданию библиотек и т.д.

Некоторые компании уже переходят с С и С++ на Rust и другие современные языки, обеспечивающие более высокую степень безопасности.

В связи с этим вопрос, есть ли у плюсов будущее или они тоже постепенно уходят на второй план? Поделитесь своим мнением в комментах, а также почитайте статью на эту тему, которая добавит вам ещё пищи для размышлений.

#cpp #clang
😁4👍2
Упаковка булевых значений в битах

Структура данных bitset — это способ эффективно представлять множество целых индексов, которое к тому же поддерживает различные операции над ним, например объединение, разность, пересечение. Паттерн упаковки данных таким способом часто используется в разработке игр.

В этой статье подробно разобран принцип работы этого паттерн на примере работы с юнитами.

#паттерны #gamedev #cpp
👍4
Python vs C++: какой язык быстрее найдет все простые числа до миллиарда

Баттлы языков — извечная тема, которая никогда себя не изживет. Понятно, что язык программирования нужно выбирать под конкретные цели. Но если мы только учимся, можно попробовать решить какую-нибудь задачку с помощью двух разных инструментов — хотя бы для того чтобы понять, какой нравится больше.

Сегодня будем искать все простые числа до миллиарда с помощью кода на Python и C++. Если вы думаете, что результат совсем очевиден, то это не так. Подробности в статье: https://tprg.ru/IqbL

#python #cpp
❤‍🔥6👍2💊1
Media is too big
VIEW IN TELEGRAM
Копаемся в Overgrowth

Overgrowth — это экшен с антропоморфными животными и рукопашным боем, который разрабатывался более 9 лет. В 2022 году его исходный код стал доступен на GitHub под лицензией Apache 2.0. Запустить игру из него не получится, так как здесь не хватает некоторых важных данных. Зато с помощью него можно:

— изучить архитектуру движка и боевой системы;
— создать модификации и «тотальные конверсии» с собственными ассетами;
— поэкспериментировать с физикой, анимацией и AI;
— воспользоваться фрагментами кода в других проектах.

Репа будет полезна геймдев-разработчикам, а также разработчикам на С++ и AngelScript.

#cpp #angelscript #gamedev
Space Invaders «с нуля» — Часть 1

Space Invaders — аркадная игра 1978 года и вы наверняка хотя бы раз играли в неё или её пародию. Теперь у вас есть возможность создать её аналог самостоятельно, используя C++.

Мы подготовили перевод статьи, в которой автор составил пошаговое руководство по созданию игры. В этой части вы подготовите окно и контекст OpenGL 3.3, используя GLFW и GLEW.

Присоединяйтесь!

#gamedev #cpp
❤‍🔥4
Точка входа в программирование
Создаём свой Space Invaders — Часть 2 Это вторая часть большого гайда по созданию своей версии легендарной игры на плюсах. В первой части мы настроили окно и контекст. Теперь погрузимся ещё глубже и настроим шейдеры OpenGL, чтобы отрисовать спрайт пришельца!…
Space Invaders «с нуля» — Часть 3

Ну что ж, в предыдущих частях мы подготовили основу. Теперь пора перейти к геймплею. В этой части мы добавим игрока и рои пришельцев, анимацию спрайтов и сделаем игровой цикл на фиксированном шаге времени с V-sync.

Также пошагово разберём, как структурировать данные и оживить игровую сцену на C++.

#gamedev #cpp
22
Точка входа в программирование
Space Invaders «с нуля» — Часть 3 Ну что ж, в предыдущих частях мы подготовили основу. Теперь пора перейти к геймплею. В этой части мы добавим игрока и рои пришельцев, анимацию спрайтов и сделаем игровой цикл на фиксированном шаге времени с V-sync. Также…
Space Invaders «с нуля» — часть 4

Ну а мы продолжаем наш путь к созданию своей версии легендарной аркады на C++. Мы уже настроили окно и контекст, разобрались с OpenGL, добавили игрока и рой пришельцев.

В четвёртой части вы узнаете, как реализовать управление игроком с клавиатуры и добавить стрельбу. Также разберём обработку событий GLFW, движение, столкновения и снаряды.

#gamedev #cpp
2
Потрясающий C++

Это огромная подборка библиотек, фреймворков и ресурсов для C++. Всё собрано в одном месте и сгруппировано по категориям.

Сохраняйте в избранное, чтобы держать под рукой!

#cpp
👍41
Как упростить обработку ошибок с помощью std::exception

Часто мы ловим баги через if и логи, но со временем это всё превращается в кашу. Давайте разберём, что такое std::exception в C++ и зачем он нужен в реальной работе.

std::exception — это базовый класс для всех стандартных исключений. Когда в коде что-то идёт не так, можно «бросить» исключение (throw) и «поймать» его (catch). Происходит так: программа прерывает текущий поток, передаёт ошибку вверх по стеку и позволяет аккуратно обработать её в нужном месте.

Это нужно, когда логика сложная и return code больше мешает, чем помогает. Например:

try { riskyOperation(); } 
catch (const std::exception& e) { std::cerr << e.what(); }


Так код остаётся чистым, а обработка ошибок — централизованной. std::exception делает ваш код устойчивым и читаемым. Попробуйте внедрить его в проект — и забудьте о бесконечных if (error).

#cpp #простымисловами
1