Functional Programming is Hard?

Just a reminder to those who think imperative object oriented style is inherently easier to understand for humans, and that functional programming languages are really hard, if you look at any class of complete programming newbies trying to learn a modern language like Java or C++, you quickly realise this is false. Here’s an email I received a few years ago from a friend who was taking programming at college, verbatim:

Encapsulation, Inheritance, Class, Object

I have to define what these mean in terms of programming yet every time I research them I come across information I don’t understand. If you could lend me a hand or point me in the right direction of something a bit easier to understand that’d be great.

Just need some one to explain the terms in a simple manner, I don’t get why every time you research something they try to explain it in the most complex terms possible.