Becoming Functional: Steps for Transforming Into a Functional Programmer