Boas fontes e conteúdos para evoluir em Ruby

Artigos - 11/Mar/2020 - por Campus Code

Durante os treinamentos da Campus Code, um dos nossos focos é formar uma mentalidade adequada em pessoas que vão desenvolver software, por isso reforçamos que Ruby é somente uma ferramenta e que nenhuma linguagem sozinha vai resolver todos os seus problemas. Como muitas empresas ainda buscam pessoas desenvolvedoras com conhecimento profundo em Ruby, vamos listar aqui uma série de materiais didáticos sobre a linguagem e seus frameworks que vão te ajudar a alavancar sua carreira (mas não significa que você não deva estudar e desenvolver seus conhecimentos em outras linguagens de programação).

Nessa lista evitamos citar livros clássicos de programação, já que você pode encontrar diversos artigos em qualquer pesquisa na internet, como "livros que todo programador deveria ler". Eles também são importantes para a sua carreira, então você pode mesclar nossas indicações com livros de autores como: Martin Fowler, Robert C. Martin (Uncle Bob), Gang of Four (Erich Gamma, Richard Helm, Ralph Johnson e John Vlissides), Andy Hunt, Dave Thomas, Kathy Sierra, Eric Evans etc.

Para Ler

Pra quem gosta de ler, essa é uma excelente forma de estudo. Muitos livros citados aqui tem assuntos similares então é importante conferir as opções e escolher o que funciona melhor para você :)

Lembrete! Os conteúdos abaixo não estão em ordem de importância, mas sim separados por tópico.

Ruby

99 Bottles of OOP [en]

https://www.sandimetz.com/99bottles

Este é um bom livro para iniciantes no mundo da programação, independente da linguagem, principalmente para quem está começando a aprender sobre testes. Ele ajuda a criar senso crítico de quando o código está bom o suficiente e mostra uma boa dinâmica de como identificar locais para usar design patterns, aplicar conceitos de SOLID, remover code smells, entre outros. Um outro livro muito bom para dar sequência a esse é o "Practical Object-Oriented Design, An Agile Primer Using Ruby", de autoria da Sandi Metz, que é co-autora do 99 Bottles.

Addison-Wesley Professional Ruby Series [en]

https://www.pearson.com/us/higher-education/series/Addison-Wesley-Professional-Ruby-Series/4255388.html

Você pode começar a leitura dessa série de livros com o Eloquent Ruby, que vai te dar uma base sólida sobre a linguagem e, em seguida, passar para outros como "Refactoring: Ruby Edition" ou "Design Patterns in Ruby", que tratam de assuntos mais avançados.

Conhecendo Ruby [pt-BR]

https://leanpub.com/conhecendo-ruby

Esse livro do Eustaquio Rangel (vulgo taq) fala de diversos conceitos, desde os primeiros passos na linguagem até tópicos mais avançados e é um excelente material para quem quer saber mais sobre Ruby.

Refactoring Guru [en]

https://refactoring.guru/

Um bom guia sobre como usar Design Patterns. Tem materiais em diferentes linguagens.

Ruby - Aprenda a programar na linguagem mais divertida [pt-BR]

https://www.casadocodigo.com.br/products/livro-ruby

O livro do Lucas Souza publicado pela Casa do Código te ajuda a consolidar diversos conceitos da linguagem Ruby.

Rails

Desconstruindo a Web - As tecnologias por trás de uma requisição [pt-BR]

https://www.casadocodigo.com.br/products/livro-desconstruindo-web

Um excelente livro do Willian Molinari (mais conhecido como PotHix), que não tem tanto foco em Rails em si, mas fala sobre todo o caminho que uma requisição HTTP passa chegando ao servidor e voltando para o seu computador. Muito bom para quem quer entender mais sobre como a internet funciona por dentro.

Rails Guides [en / pt-BR]

https://guides.rubyonrails.org/

Se você está buscando aprender mais sobre Ruby on Rails, o Rails Guides talvez seja o melhor lugar para começar. Além da consulta on-line, no site é possível baixar uma versão para Kindle. Recomendamos sempre a busca na documentação antes de cair no famoso Stack Overflow!

A comunidade tem feito um esforço para traduzir o Rails Guides para português e várias páginas já estão disponíveis em https://guiarails.com.br/.

Ruby Science [en]

https://books.thoughtbot.com/books/ruby-science.html

Esse e-book da Thoughbot é uma ótima referência para diversas boas práticas como: design patterns, STI, trabalhar com uma grande lista de parâmetros, code smells, comentários de código, entre outras.

Vale lembrar que todos os livros da Thoughbot são gratuitos para leitura https://books.thoughtbot.com/.

Testes

Cucumber e RSpec [pt-BR]

https://www.casadocodigo.com.br/products/livro-cucumber-rspec-tdd-bdd

O livro do Hugo Baraúna é interessante para trazer uma base sobre esses dois frameworks de testes e nos ajuda a formar uma opinião sobre cada um deles.

Everyday Rails Testing with RSpec [en]

https://leanpub.com/everydayrailsrspec

Um e-book muito bom que fala sobre várias camadas do RSpec, desde a base, tipos de testes (inclusive com javascript) e boas práticas para escrevê-los.

Rails 5 Test Prescriptions [en]

https://pragprog.com/book/nrtest3/rails-5-test-prescriptions

Esse livro é indicado para quem quer compreender melhor as motivações para se utilizar Test Driven Development (TDD) e boas práticas na realização de um projeto. Fala também sobre várias boas práticas do RSpec.

Para Assistir

All the Little Things - Sandi Metz [en]

https://www.youtube.com/watch?v=8bZh5LMaSmE

Nessa palestra, Sandi Metz fala sobre como trabalhar com complexidade em software. A teoria sempre fala sobre como criar aplicações com objetos pequenos é ideal, mas no dia a dia podemos encontrar o oposto. Essa palestra usa um código "feio" e cheio de condicionais como exemplo para convertê-los em objetos simples. É um bom meio-termo entre a teoria e a prática de Orientação a Objetos.

As palestras da Sandi Metz costumam ser excelentes. Sugerimos que vejam todas, mas indicamos especialmente: SOLID Object-Oriented Design, Polly wants a Message, Nothing is Something.

Confreaks [en]

https://www.youtube.com/user/Confreaks

Esse canal é uma boa fonte para encontrar playlists de palestras de diversos eventos como RubyConfs, RailsConfs, entre outros, e vai te ajudar a saber mais sobre a comunidade e a linguagem.

GURU SP talks [pt-BR]

https://www.youtube.com/user/GuruSPtalks

O GuruSP é uma associação de pessoas interessadas em aprender, ensinar e divulgar a linguagem Ruby. Realizam alguns encontros por ano em diferentes locais com palestras interessantes. Todas as palestras são gravadas e disponibilizadas no YouTube. Se você é de São Paulo pode se inscrever no Meetup para comparecer presencialmente. Lembrando que também existem diversos outros grupos e comunidades em diferentes locais do Brasil para se integrar com a comunidade Ruby!

Algumas sugestões de palestras que achamos interessantes: "A culpa não é do Rails: Usando índices para Salvar o Dia" - Renan Ranelli (vulgo Milhouse), "Como não escrever seus testes" - Camila Campos, “Decodificando o code review” - Elaine Watanabe.

Screencasts

Alguns sites para ver vídeos curtos sobre assuntos de nível intermediário e avançado relacionados a Ruby e a Rails.

Upcase

https://thoughtbot.com/upcase

Centenas de horas de vídeos on-line organizados em cursos para estudar tópicos como Ruby, Elixir, RSpec, Design Patterns, Refactoring, Vim, etc.

Para Ouvir

Podcasts

Podcasts são uma excelente alternativa para aqueles momentos de lavar a louça, no transporte público e em suas caminhadas. Eles trazem bastante informação em formato acessível de conteúdo que pode ser consumido em qualquer lugar.

Outros

Plataformas de Desafios

Uma das maneiras mais interessantes e divertidas de evoluir seus conhecimentos é solucionando desafios de código. Eles te estimulam a abrir sua mente para novas soluções e aprender novos métodos. A seguir listamos algumas plataformas de desafios on-line.

Além desses materiais, há muitas fontes como Medium, DEV, blogs do Fabio Akita, Marcos Brizeno, Nando Vieira, plataformatec, códigos open source no GitHub, entre outros. Você também encontra bastante coisa disponível no YouTube e em diversos sites, mas essa lista é um bom início para começar a estudar. Bora lá?

Campus Code