In addition to the great books and resources that others have mentioned, I also recommend some experimentation.
DSP is really a form of applied math. But if you are not the "mathsy" type, one thing you can do is write lots of unit tests for your filters. Feed your filters impulses, step functions, long sine waves at various frequencies, frequency sweeps, etc., and see what comes out the other end, what the filter actually does to these different types of signals. You can experimentally test formulas that might seem fairly opaque (at first) to you.