What books do you suggest?
[1]: https://www.goodreads.com/book/show/13130963-seven-databases-in-seven-weeks
Talk about a great book from cover to cover! Functional language evangelists are always ranting about types and their usefulness but fail to concretely convey how and why they can help. In this book Scott uses F#, but it applies to the broader range functional languages with a strong type system like Haskell, OCaml, Scala etc.
The main thread of the book is building an ecommerce shop of and he begins at the base foundation what the "business" needs and how it can be modeled using the type system to carefully detail and build on the idea of making "illegal states unrepresentable".
Highly recommended as it shows that the author has spent quite a bit of thought on conveying the useful ideas and being concise in explaining them. If you're new to the world of functional programming it does a great job of explaining the concepts and how to use them. For the experts, it specifically helps you be aware of better modeling around types.
* https://pragprog.com/book/swdddf/domain-modeling-made-functi...
Oh, and his Haskell tutorial seems fun as well: http://lisperati.com/haskell/hasktut.pdf
I also really enjoy books about the tech used in the early space program. "Digital Apollo" is probably the one that makes the best light / easy reading.
"Learn You Some Erlang for great good" by Fred Hebert: https://learnyousomeerlang.com/
"If Hemingway Wrote JavaScript" by Angus Croll: https://nostarch.com/hemingway
"Clojure for the Brave and True" by Daniel Higginbotham: https://www.braveclojure.com/clojure-for-the-brave-and-true/
I love reading about the development of early programming languages and computing environments, but I was surprised to find how helpful it is for deepening my understanding of things I use every day. It's amazing to me that tools like grep, which I use without a second thought, were written in the 1960s and 1970s and the code behind them hasn't been changed all that much.
https://www.amazon.com/UNIX-History-Memoir-Brian-Kernighan/d...
This is a pretty neat book, that explains a lot of difficult concepts in technology in an easier to grasp manner. Things like P=NP and Big O get covered.
Game Engine Black Book: Wolfenstein 3D - http://fabiensanglard.net/gebbwolf3d/
Fabien Sanglard
Both are a fascinating read about hardware of the early 90's and how id Software took advantage of it to produce the results they did.
Importantly, they really up one's ability to write higher order functional (and pure functional) code leaning heavily on a style that would help in any functional language with tail call optimization.
https://www.amazon.com/Joel-Software-Occasionally-Developers...
https://www.amazon.com/Unity-Development-Hours-Teach-Yoursel...
Is a good read about the Atari 2600 and how the devs were able to fight within the limitations of 1970s and 1980s hardware to develop a gaming platform.
https://www.amazon.com/Racing-Beam-Computer-Platform-Studies...
[1]: https://mitpress.mit.edu/sites/default/files/sicp/index.html
I really enjoyed this one.