Design

Designing programs can be one of the most time consuming aspects of programming. Some programmers like to have a design planned out far in advance of any typing, others like to "wing-it" and program systems on-the-fly that may work just as well. Your style is really something that you will develop yourself. Keep in mind, that you will probably want to know many OOP concepts and rules as well as how to model in UML before diving into any large systems.

http://www.tutorialspoint.com/cplusplus/cpp_object_oriented.htm

https://www3.ntu.edu.sg/home/ehchua/programming/cpp/cp3_OOP.html

http://gillius.org/ooptut/

https://www.youtube.com/watch?v=vz1O9nRyZaY

http://en.wikipedia.org/wiki/Procedural_programming

http://en.wikipedia.org/wiki/Visual_programming_language

http://en.wikipedia.org/wiki/Flow-based_programming