{"id":20779515,"url":"https://github.com/mguardarini/aprendendo-clojure","last_synced_at":"2026-03-01T09:32:22.045Z","repository":{"id":123262333,"uuid":"323421313","full_name":"mguardarini/aprendendo-clojure","owner":"mguardarini","description":"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. ","archived":false,"fork":false,"pushed_at":"2021-05-18T13:50:17.000Z","size":86,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-30T19:49:55.418Z","etag":null,"topics":["clojure","clojure-wrapper","learning-by-doing","ptbr"],"latest_commit_sha":null,"homepage":"","language":"Clojure","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mguardarini.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-12-21T18:48:42.000Z","updated_at":"2022-04-06T14:54:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"19e49475-050b-49fa-a79f-a2b506269e5a","html_url":"https://github.com/mguardarini/aprendendo-clojure","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/mguardarini/aprendendo-clojure","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguardarini%2Faprendendo-clojure","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguardarini%2Faprendendo-clojure/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguardarini%2Faprendendo-clojure/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguardarini%2Faprendendo-clojure/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mguardarini","download_url":"https://codeload.github.com/mguardarini/aprendendo-clojure/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mguardarini%2Faprendendo-clojure/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29965598,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T06:55:38.174Z","status":"ssl_error","status_checked_at":"2026-03-01T06:53:04.810Z","response_time":124,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clojure","clojure-wrapper","learning-by-doing","ptbr"],"created_at":"2024-11-17T13:28:18.094Z","updated_at":"2026-03-01T09:32:22.030Z","avatar_url":"https://github.com/mguardarini.png","language":"Clojure","funding_links":[],"categories":[],"sub_categories":[],"readme":"# **Aprendendo Clojure.**\n\nOlá, 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. \n\nVou 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. \n\nCaso 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.\n\n### **Ultima anotações postadas:** \n\n- [clique aqui para ler 02.02.2021](./anotacoes/fevereiro-2021/02-02-2021.md)\n- [clique aqui para ler 30.01.2021](./anotacoes/janeiro-2021/25-01-2021.md)\n\n# **Conteudos:** \n\n## **Aborda ambos os topicos funcional e clojure:**\n\n#### Videos: \n- [Formação Clojure - Alura](https://cursos.alura.com.br/formacao-clojure)\n\n## **Especifico sobre funcional:**\n\n#### Videos: \n\n- [Functional Programming in 40 Minutes -  Russ Olsen](https://www.youtube.com/watch?v=0if71HOyVjY)\n- [Functional Design Patterns - Scott Wlaschin](https://www.youtube.com/watch?v=srQt1NAHYC0)\n- [From Concurrency to Parallelism](https://www.youtube.com/watch?v=ZampUP6PdQA)\n- [Leon Barrett - Clojure Parallelism Beyond Futures](https://www.youtube.com/watch?v=BzKjIk0vgzE)\n- [core async  Concurrency Without Callbacks  - Stuart Halloway](https://www.youtube.com/watch?v=BcHI3U0FuoY)\n- [Programação Funcional Parte 2 - Functors e Monads](https://soundcloud.com/lambdatres/220-programacao-funcional-parte-2-functors-e-monads)\n- [Concurrency is not Parallelism by Rob Pike](https://www.youtube.com/watch?v=oV9rvDllKEg)\n\n#### Artigos: \n- [Domain-driven design in FP](https://naveennegi.medium.com/thoughts-on-domain-driven-design-in-functional-languages-83c43ec518d)\n\n## **Especifico sobre clojure:** \n\n#### Videos: \n\n- [Clojure introdução à programação funcional - Gregorio Melo - Alura](https://cursos.alura.com.br/course/clojure-introducao-a-programacao-funcional/)\n- [Clojure Tutorial Canal do Youtube - Derek Banas](https://www.youtube.com/watch?v=ciGyHkDuPAE)\n- [Podcast sobre funcional e clojure - Hipster](https://podcasts.google.com/feed/aHR0cHM6Ly9oaXBzdGVycy50ZWNoL2ZlZWQvcG9kY2FzdC8/episode/aHR0cHM6Ly9oaXBzdGVycy50ZWNoLz9wPTI0OTU?hl=pt-BR\u0026ved=2ahUKEwip6vK0-N_tAhV6H7kGHYHoAXoQjrkEegQIBhAL\u0026ep=6)\n- [Components]: Clojure framework to manipulate state of application  \n    - [Github](https://github.com/stuartsierra/component) \n    - [Youtube Video](https://www.youtube.com/watch?v=13cmHf_kt-Q)\n   \n#### Livros: \n- [Programação Funcional - Introdução Clojure - Gregorio Melo](https://www.casadocodigo.com.br/products/livro-programacao-funcional-clojure)\n- [Living Clojure - Carin Meier](https://www.amazon.com.br/dp/B00W4DTCSW/ref=dp-kindle-redirect?_encoding=UTF8\u0026btkr=1)\n- [Clojure for the brave and true - book](https://www.braveclojure.com/getting-started/)\n\n#### Artigos: \n\n- [Iniciando em Clojure - Gregorio Melo](https://medium.com/trainingcenter/iniciando-estudos-na-linguagem-de-programa%C3%A7%C3%A3o-clojure-d4cb3801234e)\n- [Lendo Clojure de outra forma - Gregorio Melo](https://programacaofuncional.com.br/programacao-funcional-com-clojure.pdf)\n- [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)\n- [Clojure: Entendendo (Infinite) Lazy Sequences - Antonio Gabriel Pereira de Andrade](https://medium.com/@antonio.gabriel/clojure-entendendo-infinite-lazy-sequences-2fd87275e048)\n- [Asynchronous Clojure](https://medium.com/swlh/asynchronous-clojure-a59fa0f9bda0)\n\n#### Bibliotecas: \n\n- [clojure.java-time](https://github.com/dm3/clojure.java-time)\n\n## **Minhas anotações:**\n\nNa 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:\n\n**Dezembro 2020:**\n\n- 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. \n\n**Janeiro 2021:** \n\n- Comecei a organizar o codigo melhor, pois aprendi como utilizar referência de importação para facilitar a organização do codigo.\n\n- 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.\n\n- 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.\n\n- 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!.\n\n\n\n# **Esse readme está em constante atualização.**\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmguardarini%2Faprendendo-clojure","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmguardarini%2Faprendendo-clojure","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmguardarini%2Faprendendo-clojure/lists"}