I want to improve my programming knowledge - filling in holes and working out what I don't know - and a good way to do that seems to be understanding all the different programming paradigms that are out there.
Wikipedia lists a lot of them and provides some information, but it's not all well-written, I'm finding that difficult to digest, and hard to understand how they inter-relate (i.e. which ones are complementary, competing, or completely separate ideas).
Can anyone recommend a good place I can read up on all these concepts, in a way that is consistent, interesting and engaging, and will help me to ensure I understand it all?
(To be clear, I'm not looking for language recommendations - rather, what I'd like is explanations and general information about paradigms themselves, 'untainted' by a particular implementation.)