Learn Affine Logic and Finite Arithmetic. Write your ideas down, DSA them, model them in any HDL, export to C++ (Models) and then rewrite them in fucking Affine Logic, use MVC, algorithms are the Models, Affine Logic is the Controller and the View is the GUI or DataView. That is why C++ is fucked. The compiler does not do shit to optimise your program, it generates decent assembly.