imteekay / functional-programming-learning-path

✨ A Learning Path for Functional Programming
MIT License
990 stars 83 forks source link
clojure functional-languages functional-programming javascript
# Functional Programming Learning Path ## Table of Content - [Foundation](#foundation) - [Why Functional](#why-functional) - [Advanced Topics](#advanced-topics) - [Talks](#talks) - [Books](#books) - [Declarative Programming](#declarative-programming) - [Blogs](#blogs) - [Projects](#projects) - [Podcasts](#podcasts) - [Courses](#courses) - [Lists](#lists) - [Community](#community) - [JavaScript](https://github.com/imteekay/functional-programming-learning-path/tree/master/javascript) - [Rust](https://github.com/imteekay/functional-programming-learning-path/tree/master/rust) - [Clojure](https://github.com/imteekay/functional-programming-learning-path/tree/master/clojure) - [Python](https://github.com/imteekay/functional-programming-learning-path/tree/master/python) - [Ruby](https://github.com/imteekay/functional-programming-learning-path/tree/master/ruby) - [Programming Challenges](https://github.com/imteekay/functional-programming-learning-path/tree/master/programming_challenges) ## Foundation - [Functional Programming Learning Path](https://purelyfunctional.tv/learning-paths/functional-programming/) - [Introduction to Funcional Programming - edX](https://www.edx.org/course/introduction-functional-programming-delftx-fp101x-0) - [Como programar funcional?](https://www.youtube.com/watch?v=jIYfTKYXJr8) - [Demystifying functional programming](https://medium.com/building-nubank/demystifying-functional-programming-in-a-real-company-e954a2591504) - [Programação Funcional para iniciantes](https://medium.com/trainingcenter/programa%C3%A7%C3%A3o-funcional-para-iniciantes-9e2beddb5b43) - [Awesome Functional Programming](https://github.com/xgrommx/awesome-functional-programming) - [Functional Programming Jargon](https://github.com/hemanth/functional-programming-jargon) - [Your functional journey](https://purelyfunctional.tv/guide/your-functional-journey/) - [The Benefits of Pure Functions](https://alvinalexander.com/scala/fp-book/benefits-of-pure-functions) - [Pure Functions](https://www.sitepoint.com/functional-programming-pure-functions/) - [Functional Koans](https://github.com/relevance/functional-koans) - [Programação funcional, imutabilidade, e previsibilidade](https://mauricioszabo.wordpress.com/2016/03/22/programacao-funcional-imutabilidade-e-previsibilidade/) - [A practical introduction to functional programming](https://maryrosecook.com/blog/post/a-practical-introduction-to-functional-programming) - [An introduction to functional programming](https://codewords.recurse.com/issues/one/an-introduction-to-functional-programming) - [Software Composition](https://medium.com/javascript-scene/composing-software-an-introduction-27b72500d6ea) - [Functional Education](http://bitemyapp.com/posts/2014-12-31-functional-education.html) - [What is functional?](https://dev.to/drbearhands/functional-fundamentals-what-is-functional-l66) - [Types as propositions, programs as proofs](https://dev.to/drbearhands/functional-fundamentals-types-as-propositions-programs-as-proofs-56gh) - [So You Want to be a Functional Programmer (Part 1)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-1-1f15e387e536) - [So You Want to be a Functional Programmer (Part 2)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-2-7005682cec4a) - [So You Want to be a Functional Programmer (Part 3)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-3-1b0fd14eb1a7) - [So You Want to be a Functional Programmer (Part 4)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-4-18fbe3ea9e49) - [So You Want to be a Functional Programmer (Part 5)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-5-c70adc9cf56a) - [So You Want to be a Functional Programmer (Part 6)](https://medium.com/@cscalfani/so-you-want-to-be-a-functional-programmer-part-6-db502830403) - [Friendly Functional Programming](https://functional.works-hub.com/learn/friendly-functional-programming-b3e93) - [Practical Functional Programming](https://hackernoon.com/practical-functional-programming-6d7932abc58b) - [Destroy All Ifs](http://degoes.net/articles/destroy-all-ifs) - [THE PILLARS OF FUNCTIONAL PROGRAMMING (PART 1)](https://sigma.software/about/media/pillars-functional-programming-part-1) - [Functional Programming Patterns: Cookbook](https://medium.com/@karthikiyengar/functional-programming-patterns-cookbook-3a0dfe2d7e0a) ## Higher Order Functions - [Getting a handle on Reduce](https://adambard.com/blog/getting-a-handle-on-reduce/) ## Immutability - [Immutability - something worth striving for](https://dev.to/rwoodnz/immutability---something-worth-striving-for-3ppp) - [Why shared mutable state is the root of all evil](http://henrikeichenhardt.blogspot.com/2013/06/why-shared-mutable-state-is-root-of-all.html) - [Immutable data](https://www.sitepoint.com/functional-programming-ruby-value-objects/) - [Thoughts on Immutability, CI/CD, FP](https://www.infoq.com/podcasts/Vitor-Olivier) ## Why Functional - [Why functional programming matters](https://hackernoon.com/why-functional-programming-matters-c647f56a7691) - [Why Functional Programming?](https://purelyfunctional.tv/article/why-functional-programming/) - [Advantages of Functional Programming](https://blog.codeship.com/advantages-of-functional-programming/) - [Pros and cons of functional programming](https://itnext.io/pros-and-cons-of-functional-programming-32cdf527e1c2) - [What are the benefits of functional programming?](https://stackoverflow.com/a/128128/3159162) - [Benefits of Functional Programming](https://alvinalexander.com/scala/fp-book/benefits-of-functional-programming) - [Benefits of Functional Programming beyond map/filter/reduce](https://www.youtube.com/watch?v=oaa4XiwEq1E&ab_channel=Jfokus) - [Benefits of Functional Programming by Example](https://medium.com/@nickmccurdy/benefits-of-functional-programming-by-example-76f1135b0b18) - [Goodbye, Object Oriented Programming](https://medium.com/@cscalfani/goodbye-object-oriented-programming-a59cda4c0e53) - [Switching from OOP to Functional Programming](https://medium.com/@olxc/switching-from-oop-to-functional-programming-4187698d4d3) ## Advanced Topics - [Transducers: Efficient Data Processing Pipelines in JavaScript](https://medium.com/javascript-scene/transducers-efficient-data-processing-pipelines-in-javascript-7985330fe73d) - [Functors, Monads and better functions](https://dev.to/drbearhands/functors-monads-and-better-functions-26f3) - [Why Curry Helps](https://hughfdjackson.com/javascript/why-curry-helps/) - [Curry and Function Composition](https://medium.com/javascript-scene/curry-and-function-composition-2c208d774983) - [Functional JavaScript: Function Composition For Every Day Use](https://hackernoon.com/javascript-functional-composition-for-every-day-use-22421ef65a10) - [A Modern Architecture for FP](http://degoes.net/articles/modern-fp) - [Modern Functional Programming: Part 2](http://degoes.net/articles/modern-fp-part-1) - [Functional Programming, Abstraction, and Naming Things](http://www.stephendiehl.com/posts/abstraction.html) - [SOLID: the next step is Functional](http://blog.ploeh.dk/2014/03/10/solid-the-next-step-is-functional/) - [Functional Design Patterns](https://www.youtube.com/watch?reload=9&v=srQt1NAHYC0&ab_channel=NDCConferences) - [Free Monads Explained (pt 1)](https://medium.com/@olxc/free-monads-explained-pt-1-a5c45fbdac30) - [Perpetual Currying in JavaScript](https://medium.com/@paramsingh_66174/perpetual-currying-in-javascript-5ae1c749adc5) ## Advanced Topics: Category Theory - [From design patterns to category theory by Mark Seemann](http://blog.ploeh.dk/2017/10/04/from-design-patterns-to-category-theory/) ## Talks - [Functional programming design patterns by Scott Wlaschin](https://www.youtube.com/watch?v=E8I19uA-wGY&ab_channel=IvanPlyusnin) - [Why Functional Programming Matters by John Hughes](https://www.youtube.com/watch?v=XrNdvWqxBvA&ab_channel=ConfEngine) ## Books - [How to Design Programs](https://htdp.org/2019-02-24/) - [Category Theory for Programmers](https://bartoszmilewski.com/2014/10/28/category-theory-for-programmers-the-preface/) - [SICP - Structure and Interpretation of Computer Programs](https://mitpress.mit.edu/sites/default/files/sicp/full-text/book/book.html) ## Declarative Programming - [What is declarative programming?](https://stackoverflow.com/a/129639/3159162) - [Declarative vs Imperative Programming by Ian Mundy](https://codeburst.io/declarative-vs-imperative-programming-a8a7c93d9ad2) - [Imperative vs Declarative Programming by Tyler McGinnis](https://tylermcginnis.com/imperative-vs-declarative-programming/) - [Imperative versus declarative code… what’s the difference?](https://medium.com/front-end-hacking/imperative-versus-declarative-code-whats-the-difference-adc7dd6c8380) ## Blogs - [Patterns in Functional Programming](https://patternsinfp.wordpress.com/) - [Kevin Sookocheff - Functional Programming](https://sookocheff.com/tags/functional-programming/) ## Projects - [YouTube instant search with FP](https://jaysoo.ca/2016/01/13/functional-programming-little-ideas/) ## Podcasts - [LambdaCast](https://soundcloud.com/lambda-cast) - [Programação Funcional com Erick Pintor e Bruno Tavares](http://tecnologicamentearretado.com.br/2014/12/31/programacao-funcional-com-erick-e-bruno/) - [Programação Funcional com Juliano alves](https://www.tecnoretorica.com.br/2013/04/programacao-funcional/) - [Programação Funcional - Inviavel Podcast](http://inviavelpodcast.com/10/) - [CapyCast #10 Linguagens Funcionais Com Marcelo Camargo e Derek Stavis](https://player.fm/series/capycast/capycast-10-linguagens-funcionais-com-marcelo-camargo-e-derek-stavis) - [The Imposter's Handbook: Functional Programming and Databases](https://www.orbit.fm/bookbytes/17) - [Functional Programming Languages and the Pursuit of Laziness with Dr. Simon Peyton Jones](https://player.fm/series/microsoft-research-podcast-1910051/ep-056-rerun-functional-programming-languages-and-the-pursuit-of-laziness-with-dr-simon-peyton-jones) ## Courses - [Functional Programming Principles in Scala](https://www.coursera.org/learn/progfun1) - [Introduction to Functional Programming](https://www.edx.org/course/introduction-to-functional-programming) ## Lists - [Awesome Functional Programming by @lucasviola](https://github.com/lucasviola/awesome-functional-programming) - [Awesome Functional Programming by @xgrommx](https://github.com/xgrommx/awesome-functional-programming) ## Community - Richard Bird - Philip Wadler - Olivier Danvy - Andrzej Filinski - Daniel P. Friedman - Matthias Felleisen - J. Michael Ashley - R. Kent Dybvig - Erik Hilsdale ## License [MIT](/license) © [TK](https://iamtk.co)