Books

Functional

If you’re interested in learning Functional Programming and don’t know where to begin, Learn You a Haskell won’t disappoint. The author’s teaching style is laid back and very humorous.

If you have experience in C# and are comfortable using LINQ, then begin your functional journey with this book! This is my favorite book on Functional Programming among the many I’ve read.

While I wouldn’t categorize this book as a first book for learning Functional Programming, you might make it your second. The author has a relaxed and quiet style and is one of the most pragmatic programmers I’ve encountered in years.

Object oriented

Do you have a sense your code or that of your colleagues is horrible? If you’ve not yet developed this sense, Do you find your code difficult to maintain and reason about? If this is so, then read this book! Code examples are in Java.

This book was my first exposure to Domain Driven Design, and I’m so glad it was. Do you have a large system to build and don’t know how to structure it or where to begin? Then full stop, get it now! Code examples are in C#.

A book on what should be considered common programming knowledge, yet it isn’t common. If you’re looking for a book that teaches sound practices and employs what I’ll call good horse sense, this is your book!

MATHEMATICS

Yes, a greater understanding of mathematics and how to apply mathematical principles to your code will make you a better and less frustrated programmer. If you read no other mathematical text during your career, read this one! Code examples are in Haskell.

Whether you’re language or mathematically-inclined, I think you’ll find this excellent book a great introduction to logic. Understanding and applying logic will help you learn to understand the truth or falsity of a matter and help you form clearer thoughts, arguments, and solutions to problems.

Are you ready to dive into the wonderful abstract world of Category Theory? There are two versions of this book. One uses Haskell, and the other uses Scala to teach Category Theory to programmers. The author also has free YouTube videos on the subject.

Programming Elements © 2023