Once upon a time I had a chance encounter with a book named Structure And Interpretation of Computer Programs, and after struggling with the first chapter it blew my mind in the first couple pages of the second chapter.
Recently I have been trying to learn the art of point free programming and its a lot of fun!