This is a website, authored by John DeNero: https://www.composingprograms.com
It's at an introductory level and assumes no background, but covers several programming paradigms and major applications such as distributed and parallel computing. Most of it is in Python, but there's a bit of Scheme and SQL, and a Prolog-based language.