Understanding how to pass functions.
For me this was more important than grasping object oriented programming.
The second deep insight was that programming is less about language syntax and mostly an exercise in manipulating data into and out of common data structures such as arrays and hashes.