Como se tornar uma pessoa desenvolvedora de software melhor

Leonardo Andreucci
Creditas Tech
Published in
4 min readOct 8, 2018

Desenvolver software não é algo nato e, como quase tudo na vida, essa habilidade pode ser aprendida. A grande questão é: como você vai aprender?

Muitas pessoas terminam uma faculdade de tecnologia e acham que seu aprendizado terminou ali, mas na verdade é exatamente o contrário: ao terminar a faculdade você conseguiu uma base para começar a aprender o que realmente vai ser importante na sua vida profissional. Atualmente existe um gap muito grande entre o que as faculdades de tecnologia ensinam e o que as empresas necessitam. Isso tem começado a mudar em algumas faculdades, mas ainda vai demorar anos para que os efeitos sejam sentidos de maneira sólida no mercado de trabalho.

Eu não acredito em balas de prata e gosto muito da frase “Para cada problema complexo existe uma resposta clara, simples e errada”, mas vou me arriscar a responder a pergunta do título de maneira muito simples: “como se tornar uma pessoa desenvolvedora de software melhor?” Simples: é só estudar!

O primeiro componente dos estudos é o esforço/disciplina. Prepare-se para começar a estudar e não parar mais. Nunca mais. Já existe informação suficiente para você estudar para o resto da vida e a humanidade está produzindo novos conhecimentos diariamente. Obviamente, eu não preciso falar do quanto a tecnologia está evoluindo e mudando o mundo. Você tem uma rotina de estudos e separa um tempo por dia/semana para estudar? Ou simplesmente estuda quando dá tempo (e, mesmo sem te conhecer, posso afirmar que raramente sobra tanto tempo quanto você gostaria)? Se algo é importante pra você, deve estar no seu calendário e ter um tempo reservado pra isso.

O segundo componente é o que estudar. Com tanta informação disponível, é importante investir nosso valioso tempo de maneira eficiente. Um grande indicador da qualidade de alguém profissional é saber quais são suas fontes de informação. Quais livros leu e valoriza, quais livros foram fundamentais para o seu desenvolvimento e por quê. Geralmente se a pessoa leu bons livros, ela adquiriu aquele conhecimento, abriu a cabeça para outros livros de qualidade e entrou numa espiral positiva de querer aprender cada vez mais com livros cada vez melhores. É o famoso “diga-me com quem andas e eu te direi quem és”

Pra te ajudar nessa missão, a equipe de tecnologia da Creditas listou os materiais que considera mais importantes para quem quer desenvolver software com maior qualidade. Existem alguns artigos e vídeos, mas são os livros que conseguem ensinar de maneira profunda. Esta lista tem um viés para backend e Ruby, que é a principal linguagem que usamos aqui, mas boa parte destes livros é agnóstica de linguagem.

Se você já leu alguns destes livros e tem interesse em continuar sua espiral positiva de aprendizado, venha trabalhar com a gente! Na Creditas valorizamos muito o aprendizado — um dos nossos valores é “we learn fast”! Fazemos tech talks, temos mini-talks sobre diferentes assuntos para a empresa inteira, nos juntamos para discutir livros e fazer cursos e temos um budget para todas as pessoas do time de tecnologia investirem em livros/cursos/treinamentos.

A ordem de leitura está organizada do mais simples ao mais complicado/chato de ler. Caso não conheça nada de nada dos itens listados, recomendamos começar pelo tópico Object-Oriented Design.

Test-First:

– Let’s Not — https://robots.thoughtbot.com/lets-not [article]

– xUnit Design Patterns — http://xunitpatterns.com [website and book]

– Test-Driven Development — http://amzn.to/2dh4miC

– Growing Object-Oriented Software Guided by Tests — http://amzn.to/2cKpkdV

Object-Oriented Design:

– Your coding conventions are hurting you — http://www.carlopescio.com/2011/04/your-coding-conventions-are-hurting-you.html [article — LEIA!]

– Life without a controller — http://www.carlopescio.com/2012/03/life-without-controller-case-1.html [article]

– Head-First: OOAeD — http://amzn.to/2cKoFcb

– 99 Bottles of OOP — https://www.sandimetz.com/99bottles/

– Head-First: Design Patterns: http://amzn.to/2coNsRY

– Practical Object-Oriented Design in Ruby — http://amzn.to/2cUVqhk

– Agile Software Development — http://amzn.to/2cVunSZ

– Domain-Driven Design — http://amzn.to/2cQDhEO

– Implementing Domain-Driven Design — http://amzn.to/2cHqkMx

– Design Patterns: GoF — https://www.amazon.com/Design-Patterns-Elements-Reusable-Object-Oriented-ebook/dp/B000SEIBB8

– Refactoring: Ruby Edition — http://amzn.to/2coN8T4

Architectural Structure:

– Patterns of Enterprise Application Architecture — http://amzn.to/2cKpf9W

– Working Effectively with Legacy Code — http://amzn.to/2cKp2Uv

– Anti-Patterns: Refactoring Software, Architectures (…) in Crisis — http://amzn.to/2coMAwB

– Design of Design: Essays from a Computer Scientist — http://amzn.to/2cKpj9J (modo hard, deixe por último)

Software inner beauty (a.k.a Quality):

– Confident Ruby — http://amzn.to/2ctU1kC

– Clean Code — http://amzn.to/2cUVEVD

– Ruby Style Guide — https://github.com/bbatsov/ruby-style-guide[article]

Craftsmanship:

– The Pragmatic Programmer — http://amzn.to/2ctU7IR

– The Clean Coder: http://amzn.to/2cKqXrT

– The Passionate Programmer: http://amzn.to/2cmemVM

Video/Books Subscriptions:

– RubyTapas — https://www.rubytapas.com/

– Destroy All Software — Software Architecture and Design — https://www.destroyallsoftware.com/screencasts

– Upcase (from Thoughtbot) — Ruby, Workflow, UI/UX, Frontend — https://thoughtbot.com/upcase/

– Clean Coders — https://cleancoders.com [pay per video]

– Safari Books Online — https://www.safaribooksonline.com/

Esquecemos algum livro importante? Deixe sua opinião nos comentários abaixo!

Tem interesse em trabalhar conosco? Nós estamos sempre procurando por pessoas apaixonadas por tecnologia para fazer parte da nossa tripulação! Você pode conferir nossas vagas aqui.

--

--

Leonardo Andreucci
Creditas Tech

Former VP of Technology at Creditas (Brazilian unicorn), now working as CTO-as-a-Service and CTO Mentor.