How do you learn idiomatic C++ with best practices and development workflow using projects?

This page summarizes the projects mentioned and recommended in the original post on /r/cpp_questions

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
  • LearnOpenGL

    Code repository of all OpenGL chapters from the book and its accompanying website https://learnopengl.com

  • Also if you like graphics programming, some beginner tutorials etc could also be: Yt playlist by ChiliTomatoNoodle about DirectX11 LearnOpenGL.com to learn about OpenGL ofcourse ScratchAPixel.com which has a bunch of tutorials about the common rendering techniques such as rasterization and ray tracing

  • CppCoreGuidelines

    The C++ Core Guidelines are a set of tried-and-true guidelines, rules, and best practices about coding in C++

  • So in general you just do your own projects and when you encounter a problem like "how do I make a window?" you use your internet search engine and find a library for that. Also you should check out and bookmark http://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • build-your-own-x

    Discontinued 🤓 Build your own (insert technology here) [Moved to: https://github.com/codecrafters-io/build-your-own-x] (by danistefanovic)

  • Just start doing your own projects. Doesn't matter what exactly it is, you can do anything you like. Build your own Minecraft clone, make a Newtonian gravity simulation, build an emulator for your favourite console from your childhood, or whatever else you can think of. Here's a list containing some ideas what you could make if you don't have your own: https://github.com/danistefanovic/build-your-own-x . You can also just use the internet to search for exercise websites and do those, https://adventofcode.com/ is a great and fun way to learn a new language.

  • adventofcode

    Advent of Code solutions of 2015, 2016, 2017, 2018, 2019, 2020, 2021, 2022 and 2023 in Scala (by sim642)

  • Just start doing your own projects. Doesn't matter what exactly it is, you can do anything you like. Build your own Minecraft clone, make a Newtonian gravity simulation, build an emulator for your favourite console from your childhood, or whatever else you can think of. Here's a list containing some ideas what you could make if you don't have your own: https://github.com/danistefanovic/build-your-own-x . You can also just use the internet to search for exercise websites and do those, https://adventofcode.com/ is a great and fun way to learn a new language.

  • assignments

  • Code-Server

    VS Code in the browser

  • Oh, you'd be surprised. I often need a browser with some references opened up and some (just some) YouTube videos. That usually takes up about 70-80% of RAM. My solution during the past few months was to use the open source https://github.com/cdr/code-server project on a VPS which opens up as a browser tab - there are great YouTube tutorials for that but the whole process is cumbersome. Their version of VSCode has been fighting with the official C++ marketplace extension which is not supported by code-server. I'm just casually looking for alternatives.

  • SFML

    Simple and Fast Multimedia Library

  • And some easier libraries for game development could be SDL2.0 which is used in this tutorial that I used for my study intake project Or very similar SFML

  • SaaSHub

    SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives

    SaaSHub logo
  • Mumble

    Mumble is an open-source, low-latency, high quality voice chat software.

  • I also recently attempted to make my first open source PR to Mumble (https://github.com/mumble-voip/mumble/pull/4808 - god, it's so close to done and has been for like 2 months), and it's pretty much the same story there. Learning the C++ necessary to do it wasn't difficult... Setting up the build using a new tool (CMake) and setting up a new ID (Qt) to work on the UI was so far removed from C++, but now I guess I can say I know how to use those tools.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts

  • Ask HN: Flac/MP3 listeners: How do you store/play your music?

    6 projects | news.ycombinator.com | 5 Jun 2023
  • Fight for your freedom in computing. Don't let proprietary programs control you

    2 projects | /r/StallmanWasRight | 15 Sep 2022
  • How transferable is game dev programming to say business development

    2 projects | /r/gamedev | 22 May 2022
  • Game framework help

    2 projects | /r/gamedev | 12 Apr 2022
  • SFML VS TML - a user suggested alternative

    2 projects | 31 Mar 2022