General rules; formatting; good code organization; useful practices for writing maintainable code; OOP and data abstraction; C-specific problems and how to avoid them; C++-specific problems and how to avoid them; project management; debugging strategies.