PurelyFunctional.tv Newsletter 423: Grokking Simplicity is in print!
From OO to Clojure Workshop!
Watch my free workshop to help you learn Clojure faster and shift your paradigm to functional.
Grokking Simplicity is in print! 📘
My new book, Grokking Simplicity, is in print! I have 25 copies sitting beside me. They were waiting in front of my house on Saturday when I got back from vacation. It is quite a relief that the book that I started in 2018 is finally a real, physical thing. I can start relaxing about it, now.
If you've been waiting for the final version, now is your chance to buy Grokking Simplicity on Manning's site. Use the code TSSIMPLICITY for 50% off. When you buy it, you get access to the final PDF (in color), the "live book" (web version), plus you'll get the print book shipped to you. Buying a copy is a great way to support me and to say thanks for the work I do.
If you're reading this newsletter, the book may be a bit too basic for you. After all, you're probably already into functional programming. But just about every functional programmer I know has skeptical (or curious) friends. Grokking Simplicity is for them. Recommend it to them, please. Or buy a copy for each member of your team and start a discussion about FP at work.
I wrote Grokking Simplicity to solve a problem I had: There were no books I could recommend to my friends to introduce the practice of functional programming. There are many books about particular functional languages. And there are many academic books that assume too much background knowledge. But there are no good books showing the day-to-day practice of factoring out side-effects, abstracting to higher-order functions, and building custom temporal semantics. These are the core ideas that make FP different from other paradigms and are essential for professional functional programming. I think I teach them very well in Grokking Simplicity.
I was very lucky to have been helped by Bert Bates, co-author of the classic Head First Java. He really pushed me to go deep and not skip any important ideas that are not obvious to a beginner. The book would have been uninteresting without him. He has changed my view of teaching forever. By the way, it's not about the cartoons :)
The one big thing that I planned on putting into the book but did not was data modeling. Data modeling is important in my opinion. However, it's an advanced topic. I know many functional programmers who don't practice it very much and they do fine. The rule of thumb "Just use a hash map" will get you a long way. Plus, the topic is big enough that it could fill its own book. So I cut it out of Grokking Simplicity. The book still manages to be 556 pages. They're designed to be easy to read.
The book will soon be available for Kindle and other e-readers. I can't vouch for those formats since I haven't seen them. I designed the book for print and laid out every page by hand. There are many diagrams and code listings. I don't know what the Kindle's layout engine will do with the material. When it comes out, I'll check it out and report back. Full disclosure: My Kindle can't handle the final PDF version. Is the file too big? I'm not sure. These are things outside of my control.
It will soon be available on Amazon. You can already pre-order Grokking Simplicity. I'm not sure when it will be available for real. It says May 18 but it may be sooner than that since it is already at the printer's. If Amazon is how you like to buy your books, please do pre-order it because that helps other people find it. You'll also get it sooner.
Thank you so much for being there through this long, grueling, but ultimately rewarding process.
Currently recording 🎥
I am building a course on how to build a Clojure web stack from scratch.
To build a course, I often start by writing out a very complete guide to the topic. That guide will be published for free on my site. Newsletter subscribers (that means you!) see it first as an exclusive. I often get a lot of great comments and critiques about it. It's easy to fix in text. Once those critiques stop rolling in, I get about prepping for a video recording.
Well, I'm still writing the guide. It's over 6,000 words right now, and I'm not even halfway done. It might make a nice, slim book.
It might be just about ready to start sharing. Stay tuned.
Awesome book 📖
I was recently recommended this book and it was a refreshing read! I learned about theatre, ancient Greek philosophy, and how it relates to user interface design. I really appreciated the new perspective (new to me). The author, Brenda Laurel, is a new favorite for me. She's smart, insightful, and super active. Read this book!
Quarantine update 😷
I know a lot of people are going through tougher times than I am. If you, for any reason, can't afford my courses, and you think the courses will help you, please hit reply and I will set you up. It's a small gesture I can make, but it might help.
I don't want to shame you or anybody that we should be using this time to work on our skills. The number one priority is your health and safety. I know I haven't been able to work very much, let alone learn some new skill. But if learning Clojure is important to you, and you can't afford it, just hit reply and I'll set you up. Keeping busy can keep us sane.
Stay healthy. Wash your hands. Wear a mask. Take care of loved ones.
Clojure Challenge 🤔
Last issue's challenge
- Knight move - submissions
Please do participate in the discussion at the submission links above. It's active and it's a great way to get comments on your code.
This week's challenge
None this week!