Files
CppDeveloperRoadmap/Russian/PetProjects.md
dmfv 7f2dbbadd1
Some checks failed
Deploy Jekyll with GitHub Pages dependencies preinstalled / build (push) Has been cancelled
Deploy Jekyll with GitHub Pages dependencies preinstalled / deploy (push) Has been cancelled
fix expired links (#105)
Co-authored-by: d.fedotov <d.fedotov@btbx.io>
2025-05-08 08:28:05 +02:00

8.8 KiB
Raw Blame History

🔭 Пет-проекты

Пет-проекты - это отличная возможность получить практический опыт при изучении языка программирования, библиотек и фреймворков. Они могут стать отправной точкой для собеседований и приглашением к диалогу, если вы только начинаете свою карьеру.

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

🔄 Сторонние ресурсы

Коллекция проектов, которые предлагались различными компаниями или комьюнити в рамках ежегодной программы стажировки студентов от Google. Архив содержит проекты за последние несколько лет. Представлено большое количество проектов для языка C++. Возможно вы найдете для себя что-то интересное в архиве для практики, либо попробуете свои силы в будущих стажировках.

Репозиторий содержит коллекцию пет-проектов, собранные для различных языков программирования. Также включает обширный список идей для C++.

Рулетка с идеями для пет-проектов. Настраиваете ожидаемую сложность проекта и запускаете рулетку. Дальше случайность решит за вас, какую задачу придется решать :)

💥 Список идей для пет-проектов

▶️ Игры

Ниже представлен список классических видеоигр, которые не содержат в себе сложного искусственного интеллекта или динамическую генерацию мира. Вы можете попробовать реализовать одну из нижеперечисленных игр, а далее дорабатывать дополнительный функционал. В качестве графической библиотеки вы можете использовать SFML. Это простая в использовании библиотека, которая предоставляет достаточный набор возможностей для создания несложных графических интерфейсов для 2D или 2.5D игр при помощи спрайтов. Если же вы захотите сделать что-то более сложное, где применяется физика, то можете начать с простых движков, например: Box2D. Или же освоить более продвинутые: Cocos2D, Unreal Engine и т.п. Не забывайте о правиле: "от простого, к сложному". Начинайте с простого, и постепенно повышайте сложность.

Рекомендуем ознакомиться с нижеперечисленными источниками, которые содержат больше информации о различных алгоритмах для игростроения. Они могут пригодиться для одной из вышеперечисленных игр, или же для собственных идей:


▶️ Приложения

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

  • Сетевой чат (на чистых сокетах или при помощи gRPC)
  • Калькулятор
  • Файловый менеджер
  • Конвертер валют
  • Получение списка Pull-Requests или Issues в любом Github репозитории
  • Автоматизация рутинных: различные вычисления и формирование отчетов в виде таблиц

▶️ Студенческие приложения

Нижеперечисленные примеры больше подойдут для студентов, которые изучают или недавно изучили базовые дисциплины: линейная алгебра, аналитическая геометрия, математический анализ, физика и т.д. Задачи по применению изученной теории помогут одновременно "поймать двух зайцев": закрепить изученную теорию на практике, а также попрактиковаться в программировании. Этот путь не закрыт для остальных, но заведомо проще для студентов, т.к. свежи знания по академическим дисциплинам.

  • Библиотека линейной алгебры: матрицы, вектора, действия с ними
  • Моделирование различных процессов: физика, теоретическая механика и т.д.
  • Применение численных методов: интегрирование, дифференцирование, аппроксимация, интерполяция и т.д.

На главную страницу