Programming has many such filters:
Understanding pointers / references separates the python/script kiddies from the "real" C programmers and understanding von neumann architecture.
Recursion separates the programming-is-a-job with the beginnings of algorithmic understanding of computation.
LISP is heavy recursion, non-infix notation, lambda calculus, and other concepts that are simply too much for a garden variety programmer.
Programming has many such filters:
Understanding pointers / references separates the python/script kiddies from the "real" C programmers and understanding von neumann architecture.
Recursion separates the programming-is-a-job with the beginnings of algorithmic understanding of computation.
LISP is heavy recursion, non-infix notation, lambda calculus, and other concepts that are simply too much for a garden variety programmer.