Here are 18 books that Seven Concurrency Models in Seven Weeks fans have personally recommended if you like
Seven Concurrency Models in Seven Weeks.
Book DNA is a community of 12,000+ authors and super readers sharing their favorite books with the world.
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#.
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…
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…
It is April 1st, 2038. Day 60 of China's blockade of the rebel island of Taiwan.
The US government has agreed to provide Taiwan with a weapons system so advanced that it can disrupt the balance of power in the region. But what pilot would be crazy enough to run…
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#.
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…
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…
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#.
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…
A Duke with rigid opinions, a Lady whose beliefs conflict with his, a long disputed parcel of land, a conniving neighbour, a desperate collaboration, a failure of trust, a love found despite it all.
Alexander Cavendish, Duke of Ravensworth, returned from war to find that his father and brother had…
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#.
If you're a C# programmer and have read or are interested in my book, there's a good chance you're working on a backend that supports a web application powered with JavaScript (or another language that compiles to JavaScript).
If you're interested in having more functional programming in your life, I recommend you learn Elm, a purely functional language that compiles to JavaScript.
To do this, I recommend Richard Feldman's Elm in Action, a book that takes you from zero to writing a web app in Elm.
The book teaches you everything you need to know to get started with Elm: 1) the syntax—it's a language of the ML family (like Haskell or F#) but its type system is simpler, and generally the language has been designed to be the most approachable functional language out there; 2) the Elm architecture—you write code that works within a framework, so you can write…
Elm is more than just a cutting-edge programming language, it's a chance to upgrade the way you think about building web applications. Once you get comfortable with Elm's refreshingly different approach to application development, you'll be working with a clean syntax, dependable libraries, and a delightful compiler that essentially eliminates runtime exceptions. Elm compiles to JavaScript, so your code runs in any browser, and Elm's best-in-class rendering speed will knock your socks off. Let's get started!
Elm in Action teaches you how to build well-designed, highly performant web applications using the Elm language. As you read, you'll follow an application…
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.
This book contains many practical examples of solving common programming tasks using Clojure, and it's an excellent choice for a practical Clojure reference.
Developers who are new to the functional programming style will find a lot of useful patterns for solving problems using idiomatic Clojure style. The book is an essential reference for Clojure developers.
With more than 150 detailed recipes, this cookbook shows experienced Clojure developers how to solve a variety of programming tasks with this JVM language. The solutions cover everything from building dynamic websites and working with databases to network communication, cloud computing, and advanced testing strategies. And more than 60 of the world's best Clojurians contributed recipes. Each recipe includes code that you can use right away, along with a discussion on how and why the solution works, so you can adapt these patterns, approaches, and techniques to situations not specifically covered in this cookbook. Master built-in primitive and composite data…
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.
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.
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…
The Duke's Christmas Redemption
by
Arietta Richmond,
A Duke who has rejected love, a Lady who dreams of a love match, an arranged marriage, a house full of secrets, a most unneighborly neighbor, a plot to destroy reputations, an unexpected love that redeems it all.
Lady Charlotte Wyndham, given in an arranged marriage to a man she…
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.
This book is an excellent choice for experienced developers who are looking to learn functional programming style. The book introduces Clojure concepts and guides the reader through a series of problems where these concepts are applied in real-world scenarios making it an essential resource for learning the language.
If you're an experienced programmer looking for a thorough but gentle introduction to Clojure, this is the perfect guide for you. Author Carin Meier not only provides a practical overview of this JVM language and its functional programming concepts, but also includes a complete hands-on training course to help you learn Clojure in a structured way. The first half of the book takes you through Clojure's unique design and lets you try your hand at two Clojure projects, including a web app. The holistic course in second half provides you with critical tools and resources, including ways to plug into…
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.
The Clojure ecosystem presents a multifaceted landscape that can pose a significant challenge for novices, thereby rendering the language itself daunting to approach. However, this comprehensive book aims to alleviate these complexities by providing a guided pathway for readers to construct practical web applications using Clojure.
By following the structured framework within these pages, readers will not only gain a deeper understanding of the language's nuances but also acquire essential proficiency in employing it efficiently. Furthermore, this authoritative resource elucidates numerous best practices, empowering readers to cultivate a skillset that maximizes their effectiveness in utilizing Clojure to its fullest potential.
This book is a great choice for Clojure beginners because it takes the reader through pragmatic examples of using the language, and applying its features effective to solve real-world problems.
Think in the Clojure way! Once you're familiar with Clojure, take the next step with extended lessons on the best practices and most critical decisions you'll need to make while developing. Learn how to model your domain with data, transform it with pure functions, manage state, spread your work across cores, and structure apps with components. Discover how to use Clojure in the real world, and unlock the speed and power of this beautiful language on the Java Virtual Machine. Clojure Applied gives you the practical, realistic advice and depth of field that's been missing from your development practice. You…
Saying just the right words in just the right way can cause a box of electronics to behave however you want it to behave… that’s an idea that has captivated me ever since I first played around with a computer at Radio Shack back in 1979. I’m always on the lookout for compelling ways to convey the topic to people who are open-minded, but maybe turned off by things that are overly technical. I teach computer science and study artificial intelligence as a way of expanding what we can get computers to do on our behalf.
The fields of Psychology, Economics, and Biology are well-known for offering interesting and informative introductory courses that provide a doorway into the area for budding scientists but also essential background knowledge appropriate for any educated person.
In Computer Science, we don't really do things that way. I wanted to offer a new kind of Computer Science introductory course that laid out the coolest ideas we have to offer along with compelling descriptions of why they matter.
I ended up using this book as the required reading in the class I built because it tells a personal, moving story while taking the reader from the nuts and bolts of bits and bytes all the way up to cutting-edge ideas surrounding artificial intelligence. It's a great read! Plus, it's short so I thought I could get my students to actually finish it.
Most people are baffled by how computers work and assume that they will never understand them. What they don't realize,and what Daniel Hillis's short book brilliantly demonstrates,is that computers'seemingly complex operations can be broken down into a few simple parts that perform the same simple procedures over and over again. Computer wizard Hillis offers an easy-to-follow explanation of how data is processed that makes the operations of a computer seem as straightforward as those of a bicycle.Avoiding technobabble or discussions of advanced hardware, the lucid explanations and colourful anecdotes in The Pattern on the Stone go straight to the heart…
This book follows the journey of a writer in search of wisdom as he narrates encounters with 12 distinguished American men over 80, including Paul Volcker, the former head of the Federal Reserve, and Denton Cooley, the world’s most famous heart surgeon.
In these and other intimate conversations, the book…
I boast a two-decade-long career in the software industry. Over the years, I have diligently honed my programming skills across a multitude of languages, including JavaScript, C++, Java, Ruby, and Clojure. Throughout my career, I have taken on various management roles, from Team Leader to VP of Engineering. No matter the role, the thing I have enjoyed the most is to make complex topics easy to understand.
This book profoundly changed how I approach functional programming. I found its deep dive into core concepts like recursion, abstraction, and modularity incredibly insightful. The exercises pushed me to think critically and refine my problem-solving process.
Despite being an older book, its content remains relevant and valuable to me. I consider it the best pragmatic introduction to functional programming.
As others have gone into, this is a great programming book for many reasons, and is a must-read for anyone who is interested in software design. Rather than waste time reaffirming the excellent positive reviews of this book, I wanted to cover something that I have not seen in the reviews: namely that there are multiple publishers for this book (as it is an "open source" book). At the time of writing, there is this McGraw-Hill publication, and, for 40% less, an MIT press edition. While I have not seen the McGraw-Hill version in person to see what quality benefits…