
The way I will always remember closures is through the backpack analogy. When a function gets created and passed around or returned from another function, it carries a backpack with it. And in the backpack are all the variables that were in scope when the function was declared.
The net result is a huge pool of extremely junior talent. Most students walk away with a portfolio site and a few javascript demos, but lack any deep understanding of development that would allow them to tackle real-world problems that working developers face every day.