learn erlang. And haskell? and write some code in Go http://learnyouahaskell.com/chapters understand what a MONAD is.