"By hard coding, I don’t mean you should spread magic numbers and strings across your project’s source code."
The first time you use a magic number or string, put it in directly. It's much easier to find and change in its home environment, and it keeps your code simpler and easier to understand.
Of course, once you use that magic number somewhere else, then you should introduce a constant -- you don't want to get in a situation where somebody changes it in one place but not the other. But until then, don't complicate things.
If you feel that I'm a heretic, then please define the constant where you use it (when it's only used in one place), rather than putting it in a header.