To be honest I learnt C++ at the uni and I've improved a lot since by reading articles on the internet, discussing with people, etc... I think that code reviews, discussing your code, etc., helps a lot, so maybe what you need is just that, a bit of experience.
Regarding the #pragma once, I'd have thought the same, but I'd ...