Lucas Simon

Web Developer. lucassrod@gmail.com

Um caminho para aprender Elixir

Bem vindos, com o recente despertar e interesse por programação funcional estou montando aqui um compilado com fontes de estudos. Nas próximas seções deixo um cronograma de estudos que pode ser adaptado a sua maneira.

Um dos primeiros passos e importante é receber uma introdução sobre o que são linguagens funcionais e o Elixir de quem trabalha com a linguagem e tem experiência. Segue os links:

Fontes

Uma grande fonte de conhecimentos em qualquer parte do mundo começa com livros. Minha primeira recomendação é o livro Elixir do zero à concorrência, por estar na língua portuguesa pode ser melhor entendido.

No video da [A linguagem Elixir - Alura Live #80] a Charlotte recomendou os seguintes livros.

Outras fontes de estudo podem ser encontradas no repositório Awesome Elixir

Um blog que venho acompanhando é o DailyDrip. Ele possui um conteúdo pago, felizmente, essa parte introdutória ao Elixir é gratuita e de acordo com o artigo do hackernoon eles lançaram 25 artigos, 5 por semana, ajudando novos desenvolvedores a criarem aplicações web.

Pontos a serem estudados

Alguns conceitos devem ser estudados e entendidos no decorrer do aprendizado. É bom ressaltar que eles são os pontos fortes da linguagem e do paradigma. Segue uma breve lista:

  • Modelo de atores

  • Funções puras e impuras

  • Imutabilidade

  • Processos concorrentes. Paralelismo

  • Recursividade

Com o passar do tempo, vou atualizando essa lista.

Tópicos para estudos

Acho importante enumerar e ordenar uma sequência de quais pontos são importantes estudar além da teoria citada nas seções anteriores. Para isso montei uma lista a qual julgo ser interessante. Cabe ao desenvolvedor analisar se vale a pena seguir ou não este modelo.

  • Instalar o Elixir

  • Conhecer o seu REPL chamado IEX.

  • Criar projetos.

O Elixir possui o mix para criar projetos, similar ao npm do NodeJs e consequentemente um gerenciador de pacotes chamado hex.

  • Testes e documentação.

Testes são importantes e devem ser aplicados desde o inicio até mesmo nos exercícios mais simples. Deixar para o final ou não vê-los como parte importante do desenvolvimento de sistema pode gerar preguiça e não queremos esse pecado capital influenciando nosso código.

  • Módulos, tipos básicos, loops, condicionais e etc…

  • Pattern Matching

  • Structs

  • Operações com arquivos, leitura e escrita

  • Conexões com banco de dados. Ecto?

  • OTP

  • Aplicações web

Como disse no artigo introdutório aprender uma nova linguagem e paradigma será um desafio. Estarei colocando aqui alguns artigos sobre essa evolução e espero que vocês aprendam junto comigo. Abraços a todos.