Bartosz Milewski writes about category theory for programmers, functional programming, C++, and concurrency, including a free book.
Commenters recommend his category theory material to beginners as mind-opening, and some say it is the best place to learn the subject.
I too am a beginner with concurrent programming—it's a difficult topic to get your head around at first. Some resources that I've found super helpful:
- Dmitry Vyukov's Lockless Algorithms: https://www.1024cores.net/home/lock-free-algorithms
- Jeff Preshing's blog (worth exploring all adjacent articles): https://preshing.com/20120612/an-introduction-to-lock-free-programming/
- Bartosz Milewski: https://bartoszmilewski.com/2008/12/01/c-atomics-and-memory-ordering/
- Memory Barriers: a Hardware View for Software Hackers—P.McKenney: https://www.researchgate.net/publication/228824849_Memory_Barriers_a_Hardware_View_for_Software_Hackers
I hope you find some of these useful. I've re-read Paul McKenney's paper every 2-3 months in an attempt to get this stuff to stick! :)
Coming from a math background, once I had the syntax sorted and could write a few simple file parsers in Haskell, “Category theory for programmers” helped me understand some of what the Haskell type system is trying to accomplish. (Endofunctors of the category of Haskell types). I didn’t and still don’t understand the template C++ in the book but still my favorite Haskell resource. Many of the examples are written in both Haskell and C++.
Caveat: I just started learning this last year.
https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
Most guys I follow are either rust or haskell developers.
@manishearth - rust - https://manishearth.github.io/
@bitemyapp - writer of haskell: first principles
@bartoszmilewski - haskell - https://bartoszmilewski.com/
@jdegoes - writes informative FP blog posts - http://degoes.net/
@aaron_turon - rust - https://aturon.github.io/blog/
@pcwalton - rust
@nikomatsakis - rust - http://smallcultfollowing.com/babysteps/
@paf31 - purescript creator
@nick_r_cameron - rust
@kmett - famous haskeller
@steveklabnik - rust - http://words.steveklabnik.com/
This is such a great page, i love it and came across it multiple times while studying the matter.
I still would vote to learn it from Milewski though. Learning this is a journey and the author of ct-illustrated is, i think, still in the middle of it.
Milewski has made that trip multiple times already. The book and his blog are great places.
https://github.com/hmemcpy/milewski-ctfp-pdf Book https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/ Blog
From a programming persepctive, I could recommend
Bartosz Milewski's series https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/
RydeHeard and Burstall - http://www.cs.man.ac.uk/~david/categories/book/book.pdf
Milewski, Fong, and Spivak's course - http://brendanfong.com/programmingcats.html
From a mathematical perspective:
MacLane, Awodey's book, Conceptual Mathematics by Lawvere and Schanuel.
HoTT was a popular topic in the Haskell ecosystem a little while back, so worth digging around there for info:
- https://softwareengineering.stackexchange.com/questions/262377/what-are-the-practical-implications-of-homotopy-type-theory-in-programming
- https://www.reddit.com/r/haskell/comments/6nxgkc/similarities_and_differences_between_homotopy/
- https://bartoszmilewski.com/category/homotopy-type-theory/