Тренироваться, читать про часто-допускаемые ошибки, особенности языка, пробовать, смотреть деббагером что происходит.
Ведь если на маленьком проекте такие проблемы — то что будет дальше? Ну и стоит почитать про стандарты кодирования и антипаттерны:
www.insidecpp.ru/antipatterns/