Prof Allen Downey published a book called Think DSP:
https://greenteapress.com/wp/think-dsp/
It can be bought, but is available for free. Code is also available via GitHub. It uses Python and Jupyter.
"The premise of this book (and the other books in the Think X series) is that if you know how to program, you can use that skill to learn other things. I am writing this book because I think the conventional approach to digital signal processing is backward: most books (and the classes that use them) present the material bottom-up, starting with mathematical abstractions like phasors."