Becoming Functional (Steps for Transforming Into a Functional Programmer)