An Imperative Programmer in the Land of Functional Programming

I’m just a “regular” software engineer.  So when I attended a recent conference on functional programming, my reasons for attending were often remarked upon.  I was asked to offer some insight into how I ended up in the land of Functional Programming, and what lessons I might impart about my journey.

To set the stage; I’ve been programming from a young age, and graduated college having majored in Computer Science.  I’ve used every major language in that time for personal projects, and almost all of them in professional projects.  A sampling of languages I had used before this story includes: Pascal, C/C++, C#, Java, and Objective C.

You may infer that all of my formative experiences and all of my formal training focused solely on procedural and object-oriented languages.  At the time of this story, I had complete confidence in these tools and my skills to solve any software engineering challenge that might arise.  But in spite of this preparedness, it was the very tools I was taught to use that would betray me.

Read More »