On your first item, are you sure you don't mean procedural programming (the use of subs, modules, while loops, etc.)? Functional programming is really strange and doesn't find its way into normal development, and is best left to the mathematicians.
in reply to What training do YOU need?
Update: Dictionary.com handily accesses the Free On-line Dictionary of Computing. To summarize, functional languages are based on Typed Lambda Calculus, have no side effects, and examples include a subset of Lisp, Haskell, and Backus' FP Systems, which I used in my Masters studies at UTD. In that link, the author explains how functional programming is "very different" from procedural programming.