Development especial of OpenSource software.
To be able to develop an Open source software you have to have in mind that you are not alone who try to solve exactly this problem and when you want to profit from this you should prepare the project to be easy to modify(cooperate) and maintain it by you as owner.
See that it works and is possible to modify: "Hello world!"
Variables(int, double, char, std::string), Why do I need to know the data type and its size.
Conditions, cycles, functions, class, inheritance(first experience but not necessary to understand deeply, only ideology)
Start study background in small steps.
How a computer works, Harward architecture, ARM, Embedded, RT os, ...
What happens inside a processor to be able to say that 1+2=3
Binary code. Logic operator, Multivibrator
Understand C++ basics: build apparatus
preprocessor, linking, templates (only basic of, example on point in 2d)
Do not repeat yourself, write it shorter way, but still well readable.
Remember on substitution in Math
Recursion, lambda, collections
Improve the readability of your code.
Keep uniform in code style (guide)
spaces VS tabs
CammelCase or this_type
Focus on naming functions and variables to be obvious newcomers.
test ... Google tests, Catch, ... TDD
Do NOT reinvent the wheel:
Use open-source projects: ImGui, loguru, ...
Inspire in coding, remember what you dislike (to be able to do it better, when you will work on smth your own)
Templates
Template metaprogramming - give you another way of optimization
Configuration: Yaml, XML, TXT, CSV, BIN
How to store enum value: Magic_enum
Logger - logging levels
GUI
ImGui is in my opinion the best for quick C++ projects
web GUI
Names, you should know: Herb Sutter,
Remember that your result is not only your C++ code but Its future usability. You will not be there forever but your code could!
Make your project accessible(for a private team or public as OpenSource)
Stay informed and in touch
Conferences, news in C++ standards, try to create your proposals or
groups people with the same focus
Document decision Proc & Cons
Know your uniqueness (headline it)
Link to the projects with a similar purpose
Compare - what is better and what is the same
Make your development environment better
Visualizers - every IDE has its own system for visualization of variables, improve your debugging
When you work with OpenCV in VisualStudio you should try ImageWatch
When you use VisualStudio you should be familiar with *.natvis (e.g. Eigen values)
Macro for generating code - every IDE somehow(more or less) implement auto-complete functions
when you do something during development regularly. Think about how to automatize it or do it the more easy way.
Feature Market - give it a try to look for some cool extensions for your IDE.
Use other libraries - do not reinvent the wheel or get inspiration to do it better way list-cppReference, single file, header-only, ...