To clarify, I know the main programming paradigms already (from Pascal, Lisp, Perl, Python, C, C++, bash, ...) and use pattern matching to put the new language/pattern in the correct bucket. I agree you need to learn the paradigms first. So I'd say for a complete beginner a good coach is a...