Como se tornar um desenvolvedor de software profissional

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 quê as faculdades de tecnologia ensinam e o quê  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 um desenvolvedor de software profissional?” 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 quê estudar. Com tanta informação disponível, é importante investir nosso valioso tempo de maneira eficiente. Um grande indicador da qualidade de um profissional é saber quais são suas fontes de informação. Quais livros ele 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 autores 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 um desenvolvedor de software profissional. 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 os devs 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!

Leonardo Andreucci trabalha em startups desde 2004, quando esse termo ainda não era muito usado no Brasil. Foi desenvolvedor, scrum master, gerente de equipes de infraestrutura e de desenvolvedores. Hoje é VP Technology na Creditas (a nova BankFacil). Graduado em Engenharia da Computação na USP, é praticante e defensor de métodos ágeis desde 2009. Antes da Creditas, atuou no Apontador/Maplink por dez anos.