31 books like Elm in Action

By Richard Feldman,

Here are 31 books that Elm in Action fans have personally recommended if you like Elm in Action. Shepherd is a community of 10,000+ authors and super readers sharing their favorite books with the world.

Shepherd is reader supported. When you buy books, we may earn an affiliate commission.

Book cover of Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F#

Enrico Buonanno Author Of Functional Programming in C#

From my list on to learn to think like a functional programmer.

Why am I passionate about this?

I'm a programmer with a desire to constantly learn and improve. I have many years of experience in writing mission-critical software in highly event-driven areas such as FinTech and online auctions. Through interesting and challenging projects, I've always been fascinated by trying to generalize and abstract what it is that makes good code; so things like design patterns and best practices were just up my street. As I expanded this personal research, I found that functional programming provided many interesting techniques, but that many professionals in the industry were unaware of them. This is why I decided to show these techniques and their benefits to a wider audience through my book Functional Programming in C#.

Enrico's book list on to learn to think like a functional programmer

Enrico Buonanno Why did Enrico love this book?

Many functional programming books concentrate on the detail of functional techniques (things like recursion or higher-order functions), often leaving open the gap between these techniques and their concrete application to solve everyday programming tasks.

This was one of the reasons I wrote my book, and one source of inspiration for me was the work of F# evangelist Scott Wlashin.

For many years, Scott has been showing how he applies functional thinking in his daily practice centered around e-commerce, through blog posts on his popular site and his talks at programming conferences. At popular request, he's organized these ideas into his book Domain Modelling Made Functional.

The examples are practical enough that every business application programmer will be able to relate to them, and his explanation of functional programming techniques and ideas is clear and rigorous. Although Scott encourages the adoption of F# (the functional-first language of the .NET family), these…

By Scott Wlaschin,

Why should I read it?

2 authors picked Domain Modeling Made Functional as one of their favorite books, and they share why you should read it.

What is this book about?

You want increased customer satisfaction, faster development cycles, and less wasted work. Domain-driven design (DDD) combined with functional programming is the innovative combo that will get you there. In this pragmatic, down-to-earth guide, you'll see how applying the core principles of functional programming can result in software designs that model real-world requirements both elegantly and concisely - often more so than an object-oriented approach. Practical examples in the open-source F# functional language, and examples from familiar business domains, show you how to apply these techniques to build software that is business-focused, flexible, and high quality. Domain-driven design is a well-established…


Book cover of Learn You A Haskell For Great Good

Enrico Buonanno Author Of Functional Programming in C#

From my list on to learn to think like a functional programmer.

Why am I passionate about this?

I'm a programmer with a desire to constantly learn and improve. I have many years of experience in writing mission-critical software in highly event-driven areas such as FinTech and online auctions. Through interesting and challenging projects, I've always been fascinated by trying to generalize and abstract what it is that makes good code; so things like design patterns and best practices were just up my street. As I expanded this personal research, I found that functional programming provided many interesting techniques, but that many professionals in the industry were unaware of them. This is why I decided to show these techniques and their benefits to a wider audience through my book Functional Programming in C#.

Enrico's book list on to learn to think like a functional programmer

Enrico Buonanno Why did Enrico love this book?

You may have got a taste of functional programming by learning some functional techniques in the language they use everyday, but if you want to deepen your knowledge, it's best to learn a functional language.

A multi-paradigm language like C# allows you to mix and match different techniques; a purely functional language, on the other hand, will force you to use the functional approach throughout—for example, by not allowing any state mutation at all.

The natural choice would be to learn Haskell, the functional language of reference and a lingua franca among functional programmers. Learning Haskell will allow you to take advantage of a wealth of literature on functional programming - books, blogs, talks, and so on - many of which have code samples in Haskell.

For this, I recommend you read Learn You a Haskell for Great Good by Miran Lipovaca. This book has been a favourite throughout the…

By Miran Lipovaca,

Why should I read it?

1 author picked Learn You A Haskell For Great Good as one of their favorite books, and they share why you should read it.

What is this book about?

It's all in the name: Learn You a Haskell for Great Good! is a hilarious, illustrated guide to this complex functional language. Packed with the author's original artwork, pop culture references, and most importantly, useful example code, this book teaches functional fundamentals in a way you never thought possible. You'll start with the kid stuff: basic syntax, recursion, types and type classes. Then once you've got the basics down, the real black belt master-class begins: you'll learn to use applicative functors, monads, zippers, and all the other mythical Haskell constructs you've only read about in storybooks. As you work your…


Book cover of Type-Driven Development with Idris

Enrico Buonanno Author Of Functional Programming in C#

From my list on to learn to think like a functional programmer.

Why am I passionate about this?

I'm a programmer with a desire to constantly learn and improve. I have many years of experience in writing mission-critical software in highly event-driven areas such as FinTech and online auctions. Through interesting and challenging projects, I've always been fascinated by trying to generalize and abstract what it is that makes good code; so things like design patterns and best practices were just up my street. As I expanded this personal research, I found that functional programming provided many interesting techniques, but that many professionals in the industry were unaware of them. This is why I decided to show these techniques and their benefits to a wider audience through my book Functional Programming in C#.

Enrico's book list on to learn to think like a functional programmer

Enrico Buonanno Why did Enrico love this book?

For many years I did not question the validity of the language I was using, focussing instead on becoming good at getting it to do what was needed. It never occurred to me that, say, the type system could be flawed, causing extra work and allowing unnecessary bugs to seep in.

But what if, instead of writing validation code, you could define your types in a way that makes it impossible to create an invalid instance? What if you could define state transitions in such a way that a state machine cannot transition into an invalid state? These are indeed some of the things the Idris language allows.

In his book Type-Driven Development with Idris, Edwin Brady takes you through both the ideas of type-driven development, and how they're enabled in Iris. Iris looks a lot like Haskell, but better. It even has a unique solution for the complex issue…

By Edwin Brady,

Why should I read it?

1 author picked Type-Driven Development with Idris as one of their favorite books, and they share why you should read it.

What is this book about?

DESCRIPTION

Types are often seen as a tool for checking errors, with the

programmer writing a complete program first and using the type

checker to detect errors. And while tests are used to show presence of

errors, they can only find errors that you explicitly test for. In typedriven

development, types become your tools for constructing

programs and, used appropriately, can show the absence of errors. And

you can express precise relationships between data, your assumptions

are explicit and checkable, and you can precisely state and verify

properties. Type-driven development lets users write extensible code,

create simple specifications very early…


Book cover of Seven Concurrency Models in Seven Weeks: When Threads Unravel

Enrico Buonanno Author Of Functional Programming in C#

From my list on to learn to think like a functional programmer.

Why am I passionate about this?

I'm a programmer with a desire to constantly learn and improve. I have many years of experience in writing mission-critical software in highly event-driven areas such as FinTech and online auctions. Through interesting and challenging projects, I've always been fascinated by trying to generalize and abstract what it is that makes good code; so things like design patterns and best practices were just up my street. As I expanded this personal research, I found that functional programming provided many interesting techniques, but that many professionals in the industry were unaware of them. This is why I decided to show these techniques and their benefits to a wider audience through my book Functional Programming in C#.

Enrico's book list on to learn to think like a functional programmer

Enrico Buonanno Why did Enrico love this book?

I think it's beyond dispute that concurrency is the most challenging area of programming.

Even fairly simple programs can become dauntingly complex once you introduce concurrency into the picture. For this reason, concurrency is definitely one area where even accomplished programmers should keep honing their skills.

Another difficulty is that there are different sorts of concurrency (parallelism, multi-threading, asynchrony), and different environments (in terms of latency, durability, etc) which all require different solutions.

Paul Butcher's Seven Concurrency Models in Seven Weeks helps you to make sense of this complexity by presenting different programming tasks along with the solution that most effectively tackles each task. It takes you from a demonstration of the use (and problems) of threads and locks - the most widespread, yet also the most low-level and error-prone approach to concurrent programming - to atoms - units that associate a constant identity with a mutable value - to…

By Paul Butcher,

Why should I read it?

1 author picked Seven Concurrency Models in Seven Weeks as one of their favorite books, and they share why you should read it.

What is this book about?

Your software needs to leverage multiple cores, handle thousands of users and terabytes of data, and continue working in the face of both hardware and software failure. Concurrency and parallelism are the keys, and Seven Concurrency Models in Seven Weeks equips you for this new world. See how emerging technologies such as actors and functional programming address issues with traditional threads and locks development. Learn how to exploit the parallelism in your computer's GPU and leverage clusters of machines with MapReduce and Stream Processing. And do it all with the confidence that comes from using tools that help you write…


Book cover of Professional Clojure

Dmitri Sotnikov Author Of Web Development with Clojure: Build Large, Maintainable Web Applications Interactively

From my list on essential Clojure resources.

Why am I passionate about this?

With over a decade of experience in web development using Clojure and active involvement in the Clojure open source community, I have gathered invaluable insights into effective use of the language. I am eager to share some of the experience and knowledge I have acquired with those new to the language.

Dmitri's book list on essential Clojure resources

Dmitri Sotnikov Why did Dmitri love this book?

This book focuses on Clojure features that make it a great choice for building high-quality professional applications. It will guide the readers through an effective Clojure workflow that will help beginners to get up and running in a professional setting.

This is an essential resource for using Clojure to build real-world projects.

By Jeremy Anderson, Michael Gaare, Justin Holguin , Nick Bailey , Timothy Pratley

Why should I read it?

1 author picked Professional Clojure as one of their favorite books, and they share why you should read it.

What is this book about?

Clear, practical Clojure for the professional programmer

Professional Clojure is the experienced developer's guide to functional programming using the Clojure language. Designed specifically to meet the needs of professional developers, this book briefly introduces functional programming before skipping directly to the heart of using Clojure in a real-world setting. The discussion details the read-eval-print workflow that enables fast feedback loops, then dives into enterprise-level Clojure development with expert guidance on web services, testing, datomics, performance, and more. Read from beginning to end, this book serves as a clear, direct guide to Clojure programming-but the comprehensive coverage and detail makes it…


Book cover of Aesthetic Programming: A Handbook of Software Studies

Scott Murray Author Of Unstuck: Javascript

From my list on learning how to code interactive graphics.

Why am I passionate about this?

I’ve been making web pages since the World Wide Web began in the mid-1990s. Back then, the web was visually quite sparse. It wasn’t until the late 2000s that new browser capabilities let the web get visually interesting and an exciting place for interactive graphics. Graphics are great: they can be informational (like charts and maps) or purely aesthetic. My personal journey of learning to code interactive graphics has been so rewarding that I’ve shared the love with others through teaching creative coding workshops and undergraduate courses. If you’re new to coding or computer graphics, I hope you’ll give one of these books a try!

Scott's book list on learning how to code interactive graphics

Scott Murray Why did Scott love this book?

I love this book so much. It is a bit less “how-to” and a bit more “why in the world are we interested in programming and what does that mean for us as individuals and also for society at large?” That is to say, you can learn to code from this book—in JavaScript with p5.js, specifically—but Aesthetic Programming is not merely about learning to code; it’s also a provocative, critical exploration of code as a medium for thought, communication, and creative expression. When you code, you’re participating in the creation of “computational culture.” With this book by your side, you will be a more self-aware cultural citizen. (Also, this book is visually so, so beautiful. Just leafing through the pages inspires me.)

By Winnie Soon, Geoff Cox,

Why should I read it?

1 author picked Aesthetic Programming as one of their favorite books, and they share why you should read it.

What is this book about?

The book explores the technical as well as cultural imaginaries of programming from its insides. It follows the principle that the growing importance of software requires a new kind of cultural thinking - and curriculum - that can account for, and with which to better understand the politics and aesthetics of algorithmic procedures, data processing and abstraction. It takes a particular interest in power relations that are relatively under-acknowledged in technical subjects, concerning class and capitalism, gender and sexuality, as well as race and the legacies of colonialism. This is not only related to the politics of representation but also…


Book cover of ClojureScript: Up and Running: Functional Programming for the Web

Dmitri Sotnikov Author Of Web Development with Clojure: Build Large, Maintainable Web Applications Interactively

From my list on essential Clojure resources.

Why am I passionate about this?

With over a decade of experience in web development using Clojure and active involvement in the Clojure open source community, I have gathered invaluable insights into effective use of the language. I am eager to share some of the experience and knowledge I have acquired with those new to the language.

Dmitri's book list on essential Clojure resources

Dmitri Sotnikov Why did Dmitri love this book?

This book introduces developers to ClojureScript which is a dialect of Clojure that targets JavaScript runtimes.

It's a great choice for web developers who are considering building full-stack Clojure applications. The book will help developers learn about the differences between Clojure and ClojureScript, and to make effective use of both language dialects for building applications that span both the front-end and the backend.

By Stuart Sierra, Luke Vanderhart,

Why should I read it?

1 author picked ClojureScript as one of their favorite books, and they share why you should read it.

What is this book about?

Learn how to build complete client-side applications with ClojureScript, the Clojure language variant that compiles to optimized JavaScript. This hands-on introduction shows you how ClojureScript not only has similarities to JavaScript - without the flaws - but also supports the full semantics of its parent language. You'll delve into ClojureScript's immutable data structures, lazy sequences, first-class functions, macros, and support for JavaScript libraries. No previous experience with Clojure or ClojureScript is necessary. If you're familiar with JavaScript, HTML, CSS, and the DOM, you'll quickly discover that ClojureScript has the same reach as JavaScript, but with more power.
Start writing ClojureScript…


Book cover of A Common-Sense Guide to Data Structures and Algorithms: Level Up Your Core Programming Skills

Daniel Zingaro Author Of Algorithmic Thinking: A Problem-Based Introduction

From my list on for actually learning how to design algorithms.

Why am I passionate about this?

I love pulling back the curtain on how computers work. I want to go from thinking "that's magic" to "that's unbelievably clever but now I understand how it works." Each time I am able to do this feels like a hard-won but therefore meaningful step toward understanding. I want others to experience this empowering shift. I have a PhD in computer science education, and  I want to know what helps people learn. More importantly, I want to know how we can use such discoveries to write more effective books. The books I appreciate most are those that demonstrate not only mastery of the subject matter but also mastery of teaching.

Daniel's book list on for actually learning how to design algorithms

Daniel Zingaro Why did Daniel love this book?

For an overview book that focuses on intuition—a book that is intentionally designed to evade formality—to make my list, it has to be really, really good. This one is. I appreciate the inclusion of real code in multiple programming languages and the step-by-step traces of algorithms. I appreciate the care taken with the Big O material and the way that abstract data types are introduced. This is one of very few books whose recursion material I like—the ‘napkin’ approach to recursion is wonderfully done.  

By Jay Wengrow,

Why should I read it?

1 author picked A Common-Sense Guide to Data Structures and Algorithms as one of their favorite books, and they share why you should read it.

What is this book about?

If you thought that data structures and algorithms were all just theory, you're missing out on what they can do for your code. Learn to use Big O Notation to make your code run faster by orders of magnitude. Choose from data structures such as hash tables, trees, and graphs to increase your code's efficiency exponentially. With simple language and clear diagrams, this book makes this complex topic accessible, no matter your background. This new edition features practice exercises in every chapter, and new chapters on topics such as dynamic programming and heaps and tries. Get the hands-on info you…


Book cover of JavaScript: The Good Parts: The Good Parts

Jeff Langr Author Of Modern C++ Programming with Test-Driven Development: Code Better, Sleep Better

From my list on doing it right in your programming language.

Why am I passionate about this?

I love computer programming books almost as much as I love computer programming. As a high school student in 1980 I remember typing in really frustrating source code from the book BASIC Computer Games. Was programming meant to be a black art? Was code supposed to be an impenetrable mess of buried intent? When I started getting paid to program, I was happy to see that the answer to both questions was "no." I began to seek and enjoy books that espoused the "right" way to code in a given language. Here is a handful of books that have helped me and countless others learn to produce correct, clear, and maintainable code.

Jeff's book list on doing it right in your programming language

Jeff Langr Why did Jeff love this book?

During my first few weeks of JavaScript coding, I encountered what seemed to be an endless number of head-scratching moments: "I'm slowly reading the few lines of code I just wrote, it seems fine, so why isn't it doing what it looks like it should be doing?" Even more insidious at times than C++, JavaScript contains a number of fairly clever constructs, including things like hoisting, duck typing, and a loosey-goosey argument passing mechanism. This concise tome of fewer than 175 pages helped get me past those first few months, and as an author-stated goal, it helped me "learn to think in JavaScript."

By Douglas Crockford,

Why should I read it?

1 author picked JavaScript as one of their favorite books, and they share why you should read it.

What is this book about?

Most programming languages contain good and bad parts, but JavaScript has more than its share of the bad, having been developed and released in a hurry before it could be refined. This authoritative book scrapes away these bad features to reveal a subset of JavaScript that's more reliable, readable, and maintainable than the language as a whole-a subset you can use to create truly extensible and efficient code. Considered the JavaScript expert by many people in the development community, author Douglas Crockford identifies the abundance of good ideas that make JavaScript an outstanding object-oriented programming language-ideas such as functions, loose…


Book cover of Getting Started with p5.js: Making Interactive Graphics in JavaScript and Processing

Scott Murray Author Of Unstuck: Javascript

From my list on learning how to code interactive graphics.

Why am I passionate about this?

I’ve been making web pages since the World Wide Web began in the mid-1990s. Back then, the web was visually quite sparse. It wasn’t until the late 2000s that new browser capabilities let the web get visually interesting and an exciting place for interactive graphics. Graphics are great: they can be informational (like charts and maps) or purely aesthetic. My personal journey of learning to code interactive graphics has been so rewarding that I’ve shared the love with others through teaching creative coding workshops and undergraduate courses. If you’re new to coding or computer graphics, I hope you’ll give one of these books a try!

Scott's book list on learning how to code interactive graphics

Scott Murray Why did Scott love this book?

If I were getting started with coding graphics today, I would start with this book, hands down. Learning p5 is the easiest way to create interactive graphics that run in a web browser, and this book is a very friendly, accessible, and beautifully illustrated introduction to coding graphics with p5.js—no prior experience needed. You might be wondering about the name “p5.js”. It’s a JavaScript library (that’s the “.js” part) based on Processing, the open-source programming language created for artists and designers. (More on Processing in a moment.) I have taught college courses with this book, and students love it. Plus, all the skills you learn here with p5 are applicable to JavaScript—the world’s most popular programming language—more generally.

By Lauren McCarthy, Casey Reas, Ben Fry

Why should I read it?

1 author picked Getting Started with p5.js as one of their favorite books, and they share why you should read it.

What is this book about?

Processing opened up the world of programming to artists, designers, educators, and beginners. The p5.js JavaScript implementation of Processing reinterprets it for today's web. This short book gently introduces the core concepts of computer programming and working with Processing. Written by the co-founders of the Processing project, Reas and Fry, along with Lauren McCarthy, one of the minds behind p5.js, Getting Started with Processing gets you in on the fun!


5 book lists we think you will like!

Interested in computer programming, object-oriented programming, and python?

10,000+ authors have recommended their favorite books and what they love about them. Browse their picks for the best books about computer programming, object-oriented programming, and python.

Computer Programming Explore 39 books about computer programming
Object-Oriented Programming Explore 19 books about object-oriented programming
Python Explore 28 books about python