Update on Grokking Functional Programming

Writing this book has been quite a journey.  Being a personal experiment in user experience design in a non-interactive medium has proven to be quite a challenge.  The constraints are significant from page size, typography and then to consider cognitive overload and leaps from concept to concept.  Yet, at the core I am still aiming for a pairing experience.  I want to create an experience that someone is working with me at the same computer and sheets of paper.

This is what is emerged as a workflow.

  • sketch out a plan for the chapter;
  • focus on what are the main takeaway points;
  • what pre-requisite knowledge is needed for the chapter; and
  • fill in some examples and exercise, pretty much faux-code

The gap that surfaced this week with my editors is that we swirl around the main takeaway points a lot.  The fundamental question that I now ask is “What is the one super power that we receive with this chapter?”.  That’s a hard question to answer and it forces me to ask very abstract and pointed questions about the main concept of the chapter.  Often, the answer is philosophical which forces me to reduce it to something practical.

Sometimes, answering the super power question has left me admitting “Well, that’s pretty unremarkable!”.  Initially, I was disappointed when that happened.  Now, I use that as a feedback to dig further.  It forces me to seek for my own deeper understanding.  The bottom line is that I am still hindered by my own ignorance.  It takes effort to break through ignorance barriers and it is not about pounding on the same door all the time.  It is about circling around and attempting to find tiny cracks to chip into.

In addition, I have now realised is that UX can only be solved after the philosophical and abstract are reduced to concrete.  Having tight UI constraints is actually a blessing for UX.  I now appreciate the limitations as it simply removes options not worth their bandwidth consumption.

Grokking FP JourneyWhere have I taken people on this journey so far?  On the right is what I’ve covered so far.  Next up are algebraic data types and then more in depth coverage of high order functions.  Very surprising for me is that this journey of constraints, user experience challenges, asking super power questions has led me to shifting this chapter on high order functions from being chapter 2 to chapter 7.  That was unexpected.

Keep an eye out for tweets on discounts on the book.  The latest promo from Manning is for 30 October 2014.  Using discount code dotd103014au at http://manning.com/khan will give you 50% off the list price.