I'm currently learning DSP as well. A lot of it can be done with software (Matlab, Labview, Octive, Scilab, Scipy, GNU Radio), a few books, and online video lectures. However, I think the best way to learn it is through Software Defined Radio.
Coursra has an online DSP course at
https://www.coursera.org/course/dsp. And I'm sure there are more availble on the web, check MIT OCW, Stanfords SEE and such.
As for books, the blue book is great b/c its free:
http://www.dspguide.com/Other books I have: Understanding Digital Signal Processing and Software Receiver Design
Look into Software Defined Radio. I'm currently have a Universal Software Radio Peripheral (USRP), and it's amazing. It's not cheep tho (~$700) as it's a university and industry standard. Check out HackRF and other low cost SDR's like rtl-sdr (very low cost receive only). I'm currently using GNU Radio; however, it has a high learning curve and requires a lot of programing knowledge. It's extremely powerful tho if you have any software background. Matlab/Octave might be an easier start for EE's.
Trust me, one day with an SDR and some DSP software has taught me so much more sitting though university lectures. Being able to visualize an FFT, convolution, or just a filter in action is awesome.