Scala, Java, Unix, MacOS tutorials (page 1)

Several weeks after its release, my new book, Learn Functional Programming Without Fear, is still a #1 best-selling functional computer programming book on Amazon.com, as of December, 2022. I hope it will be a great Christmas/Holiday 2022 book gift for the computer geek in your life!

Number 1 best-selling computer programming book

As part of my personal ongoing battle with the meaning of the filter method in functional programming languages like Scala, I decided to create add a keep method to the Scala List class using the Scala 3 extension method approach, like this:

extension [A](xs: List[A])
    def keep(f: (A) => Boolean): List[A] = xs.filter(f)

As a brief note, to help make Scala and functional programming completely free to anyone who wants to learn, I recently created a Kickstarter project for just that: to create free Scala and functional programming training courses. See that Kickstarter page to learn more about this effort.

Kickstarter: Free Scala and functional programming training courses

As I mention in this blog post, in late November, 2022, my new book, Learn Functional Programming Without Fear, is a best-selling book in Amazon’s Java and functional programming categories.

The book is written for Java, Kotlin, and object-oriented programming (OOP) developers, and as a bonus, I made it less than half the price of other functional programming (FP) books. I hope this makes it a terrific 2022 holiday/Christmas gift for the Java, Kotlin, and OOP programmer in your life.

As of late-November, 2022, my new book, Learn Functional Programming Without Fear, is currently a best-selling book in both Amazon’s Java and functional programming categories. The book is intentionally written for Java, Kotlin, and object-oriented programming (OOP) developers, and I also made the book much less expensive than other FP books. As a result, I hope it makes for a terrific 2022 Christmas/holiday gift for the Java/Kotlin/OOP computer programmer in your life!

Best 2022 holiday programming gift book (for Java/Kotlin/OOP developers)

How about a simple functional programming book written with this style:

No monads.
No monoids.
No functors.
No category theory.
Just some Java & Scala code.

Robert Martin’s tweet about writing a new simple functional programming book (in Clojure) was shared with me here, and I like his initial wording on not worrying about monads, monoids, functors, and category theory.

I said almost the exact same thing five years in the beginning of my book, Functional Programming, Simplified, and then in Learn Functional Programming Without Fear I show how to start with Java/OOP code and slowly transition to a functional programming style with Scala/FP examples. Both books focus on pragmatic functional programming source code examples, without getting lost in FP theory.

No monads. No monoids. No category theory. Just FP code.

“The Zen way of calligraphy is to write in the most straightforward, simple way, as if you were a beginner. Not trying to make something skillful or beautiful, but simply writing with full attention, as if you were discovering what you were writing for the first time; then your full nature will be in your writing. This is the way of practice, moment after moment.”

~ from the book, Zen Mind, Beginner’s Mind

Demonstrating Scala collections methods with fruit. :) Kudos to whoever came up with this technique first.

Demonstrating Scala collections methods with fruit

I’m glad to report that my book, Learn Functional Programming Without Fear, is the #1 book in both the Java and Functional Programming categories, according to Amazon.com’s book-rating system. (And that doesn’t include many more PDF sales on Gumroad.com!) Thank you all, and I hope the book is helpful!

#1 best-selling book in Java and Functional Programming

November, 2022: My new book, Learn Functional Programming Without Fear, is currently an Amazon Java/FP #1 new release. The book is now available in three formats (with prices shown in USD):

PDF Format
$10 on Gumroad.com

Learn Functional Programming Without Fear (PDF Version)

Paperback
$20 on Amazon

Learn Functional Programming Without Fear (Paperback)

Kindle
$10 on Amazon

Learn Functional Programming Without Fear (Kindle Edition)

I’m glad to report that my new Scala/FP book — Learn Functional Programming Without Fear — is a #1 New Release in the Java Computer Programming category on Amazon.

The book is written for Java, Kotlin, and other object-oriented programming (OOP) developers who want to learn FP quickly, so it’s cool to see it achieve this ranking in Amazon’s Java programming category.

Learn Functional Programming: A #1 new Java release

Some of the books on the right side of this image are amazing, and I would never discourage anyone from reading the great ones.

But if you’re an object-oriented programming (OOP) developer who wants to start understanding functional programming (FP) over a weekend or a few nights of reading, that’s the goal of the new little book on the left: Learn Functional Programming Without Fear. It takes you from Java/OOP to functional programming in the simplest possible step-by-step learning process.

I taught Java and OOP for many years, and have used other OOP languages like Kotlin, Python, and Flutter/Dart, so I understand both OOP and FP, and I think that helped to make this a simple book for learning FP.

(I also wrote the FP book in the middle — Functional Programming, Simplified — and it’s about three times larger than the little book on the left. I based it on most of the FP books on the right, and it goes into many details that the book on the left doesn’t go into. It’s big, but it’s still easier than reading all the books on the right.)

For OOP developers: The smallest, simplest functional programming book

If you’re interested in the scala.util.Using data type for reading and writing files in Scala, I wrote about it in the Scala Cookbook, and also in my new book, Learn Functional Programming Without Fear. This image on Using comes from that FP book.

scala.util.Using: How to read and write files (Using + Source)

As a quick note, as you can read here on the Scala Contributors website, the scala-cli command in the process of becoming the scala command. I mentioned in my two newest books, Learn Scala 3 The Fast Way! (Book 1: The Adventure Begins) and Learn Functional Programming Without Fear that this might happen. IMHO, Scala CLI is a terrific tool that simplifies the Scala development process — and learning process — and I’m beyond glad to see this.

scala-cli command in the process of becoming scala

IMHO, the song, Anchorage, by Marian Call, is a great song, probably one of my Top-100 songs of all time, maybe Top-50. Of all time.

As this image shows, my new book, Learn Functional Programming Without Fear, goes from OOP to FP and the IO and ZIO data types in about 167 pages. The book also includes a simple 13-page “Introduction to ZIO,” with six small ZIO examples.

New book: From OOP to IO and ZIO in 167 pages

If you’ve been waiting for a coupon or discount to learn functional programming, today may be your lucky day. I just created a 50% off discount code for the PDF version of “Functional Programming, Simplified” (a best-selling, highly-rated book about functional programming in Scala). But hurry, because the discount is limited to the first 100 buyers.

As I have written before, you can read all those books on the right, or just read the one book on the left, which is based on the best of those books.

My Scala book, Functional Programming, Simplified — 4.5-star rated on Amazon, their 6th-best selling book on functional programming, and 5-star rated on Gumroad.com — is currently on sale in three formats (prices shown in USD):

PDF Format
$15 on Gumroad.com

PDF version of Functional Programming, Simplified

Paperback Book
Now $29.99 on Amazon

Print version of Functional Programming, Simplified

Kindle eBook
$14.99 on Amazon

Kindle version of Functional Programming, Simplified

Alternate titles for my book, Learn Functional Programming Without Fear, are, The Fastest Way to Learn Functional Programming and Learn Functional Programming the Fast Way. That’s because I found out — almost by accident — that the fastest way for object-oriented programming (OOP) developers to learn functional programming (FP) goes like this: