https://github.com/mguardarini/aprendendo-clojure
Com o intuito de aprender uma nova linguagem de programação e exercitar os conhecimentos no paradigma funcional criei esse repositorio com o intuito de ser a base para quem está iniciando nesse novo mundo do funcional.
https://github.com/mguardarini/aprendendo-clojure
clojure clojure-wrapper learning-by-doing ptbr
Last synced: 15 days ago
JSON representation
Com o intuito de aprender uma nova linguagem de programação e exercitar os conhecimentos no paradigma funcional criei esse repositorio com o intuito de ser a base para quem está iniciando nesse novo mundo do funcional.
- Host: GitHub
- URL: https://github.com/mguardarini/aprendendo-clojure
- Owner: mguardarini
- Created: 2020-12-21T18:48:42.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-05-18T13:50:17.000Z (almost 5 years ago)
- Last Synced: 2025-04-30T19:49:55.418Z (11 months ago)
- Topics: clojure, clojure-wrapper, learning-by-doing, ptbr
- Language: Clojure
- Homepage:
- Size: 84 KB
- Stars: 10
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# **Aprendendo Clojure.**
Olá, comecei a estudar clojure com o intuito de aprofundar meu conhecimento no paradigma funcional e decidi mapear aqui minha jornada nessa nova linguagem de programação.
Vou adicionar nesse repositorio todas as minhas anotações, livros e artigos relacionados a essa nova quest de aprender clojure, o conteudo será disponibilizado em português e inglês.
Caso você não tenha conhecimento no paradigma funcional, acredito que o primeiro passo seja se ambientar e entender um pouco sobre imutabilidade, high-order-function, funções puras e etc. Dessa forma acredito que será mais facil entender algumas decisões que existem dentro do clojure, inclusive se você so teve contato com paradigma de orientação a objeto.
### **Ultima anotações postadas:**
- [clique aqui para ler 02.02.2021](./anotacoes/fevereiro-2021/02-02-2021.md)
- [clique aqui para ler 30.01.2021](./anotacoes/janeiro-2021/25-01-2021.md)
# **Conteudos:**
## **Aborda ambos os topicos funcional e clojure:**
#### Videos:
- [Formação Clojure - Alura](https://cursos.alura.com.br/formacao-clojure)
## **Especifico sobre funcional:**
#### Videos:
- [Functional Programming in 40 Minutes - Russ Olsen](https://www.youtube.com/watch?v=0if71HOyVjY)
- [Functional Design Patterns - Scott Wlaschin](https://www.youtube.com/watch?v=srQt1NAHYC0)
- [From Concurrency to Parallelism](https://www.youtube.com/watch?v=ZampUP6PdQA)
- [Leon Barrett - Clojure Parallelism Beyond Futures](https://www.youtube.com/watch?v=BzKjIk0vgzE)
- [core async Concurrency Without Callbacks - Stuart Halloway](https://www.youtube.com/watch?v=BcHI3U0FuoY)
- [Programação Funcional Parte 2 - Functors e Monads](https://soundcloud.com/lambdatres/220-programacao-funcional-parte-2-functors-e-monads)
- [Concurrency is not Parallelism by Rob Pike](https://www.youtube.com/watch?v=oV9rvDllKEg)
#### Artigos:
- [Domain-driven design in FP](https://naveennegi.medium.com/thoughts-on-domain-driven-design-in-functional-languages-83c43ec518d)
## **Especifico sobre clojure:**
#### Videos:
- [Clojure introdução à programação funcional - Gregorio Melo - Alura](https://cursos.alura.com.br/course/clojure-introducao-a-programacao-funcional/)
- [Clojure Tutorial Canal do Youtube - Derek Banas](https://www.youtube.com/watch?v=ciGyHkDuPAE)
- [Podcast sobre funcional e clojure - Hipster](https://podcasts.google.com/feed/aHR0cHM6Ly9oaXBzdGVycy50ZWNoL2ZlZWQvcG9kY2FzdC8/episode/aHR0cHM6Ly9oaXBzdGVycy50ZWNoLz9wPTI0OTU?hl=pt-BR&ved=2ahUKEwip6vK0-N_tAhV6H7kGHYHoAXoQjrkEegQIBhAL&ep=6)
- [Components]: Clojure framework to manipulate state of application
- [Github](https://github.com/stuartsierra/component)
- [Youtube Video](https://www.youtube.com/watch?v=13cmHf_kt-Q)
#### Livros:
- [Programação Funcional - Introdução Clojure - Gregorio Melo](https://www.casadocodigo.com.br/products/livro-programacao-funcional-clojure)
- [Living Clojure - Carin Meier](https://www.amazon.com.br/dp/B00W4DTCSW/ref=dp-kindle-redirect?_encoding=UTF8&btkr=1)
- [Clojure for the brave and true - book](https://www.braveclojure.com/getting-started/)
#### Artigos:
- [Iniciando em Clojure - Gregorio Melo](https://medium.com/trainingcenter/iniciando-estudos-na-linguagem-de-programa%C3%A7%C3%A3o-clojure-d4cb3801234e)
- [Lendo Clojure de outra forma - Gregorio Melo](https://programacaofuncional.com.br/programacao-funcional-com-clojure.pdf)
- [Encontrei esse conteudo em um github, acredito que tenha relação com a universidade de helsinque na finlandia](http://iloveponies.github.io/120-hour-epic-sax-marathon/index.html)
- [Clojure: Entendendo (Infinite) Lazy Sequences - Antonio Gabriel Pereira de Andrade](https://medium.com/@antonio.gabriel/clojure-entendendo-infinite-lazy-sequences-2fd87275e048)
- [Asynchronous Clojure](https://medium.com/swlh/asynchronous-clojure-a59fa0f9bda0)
#### Bibliotecas:
- [clojure.java-time](https://github.com/dm3/clojure.java-time)
## **Minhas anotações:**
Na pasta anotações você encontra o conteudo que estudei nos respectivos dias, portanto o nivel de complexidade será aumentado conforme avanço nos estudos da linguagem para facilitar a consulta vou classificar pelos meses:
**Dezembro 2020:**
- Comecei os estudos a partir do dia 25/12/2020, não tinha conhecimento sobre a linguagem de programação clojure, estava aprendendo a sintaxe, portanto os exemplos são bem simples.
**Janeiro 2021:**
- Comecei a organizar o codigo melhor, pois aprendi como utilizar referência de importação para facilitar a organização do codigo.
- O conhecimento sobre a sintaxe da linguagem de programação está mais claro, aprendi a utilizar funções e criar minhas proprias, comecei a estudar recursividade e utilizar os argumentos como condicao para execução de uma função.
- Estou começando a entender melhor como funciona coleções dentro do clojure e as funções que existem na linguagem para facilitar sua manipulação, como filter, map, group-by, recur, loop, keep e etc, além disso comecei a entender que a maior parte das funções do clojure são lazy, isto é, entenda como "executam o necessário", dessa forma fica claro que operações com uma grande quantidade de dados se tornam mais performaticas.
- Comecei a entender como funciona o tratamento de exceções e a criação da estrutura de dados fila, assim como lidar com dados mutaveis atraves de atoms e swap!.
# **Esse readme está em constante atualização.**