That Ousterhout book is really good. I read it over about two weeks on the shitter. Very succinct. My favourite is how he describes what makes a good module, namely a good module is deep and narrow (has a small API but packs non-trivial functionality), rather than wide and shallow (large API but doesn't really do much).
I love Knuth but have not yet added Literate Programming to my library. Have been hoping to find it used somewhere (along with Concrete Mathematics) but hasn't turned up yet.
It's a great book (as is this entire series, and I'm not saying that just 'cause I found a typo and point of improvement in Digital Typography_ and got a Reward Check), but one can get the gist of it from:
http://literateprogramming.com/
and finding a suitable tool for your language of choice and doing a small project --- tangle/weave is such a basic concept that it's notorious for folks rolling their own --- heck, I was able to do it (w/ a bit of help: https://tex.stackexchange.com/questions/722886/how-to-write-... )
That said, I bought a second copy as a gift from Thriftbooks.com and it was a reasonable price.