Aperfeiçoando o desenvolvimento

Dicas para se tornar um
profissional melhor


Estar junto de desenvolvedores mais experientes é um ótimo termômetro para destacar aquilo em que você precisa se aperfeiçoar. Este breve texto trata de duas disciplinas que tenho dedicado boa parte do meu tempo.

Domínio de teorias

Teoria da computação, Linguagens Formais e Compiladores são essenciais e vão salvar seu tempo de cair em velhas armadilhas. Poder computacional e possibilidade de processar HTML com expressões regulares já possuem provas científicas datadas. Existem bons cursos na Internet que apresentam estas e muitas outras disciplinas teóricas.

Conhecer Modelos e Paradigmas de Linguagens é essencial para apoiar sua escolha de linguagens de programação e técnicas de escrita de código. Novas ferramentas e recursos vão surgir a todo momento e o primeiro passo para sua adoção é interpretar qual o escopo de problemas e abordagens de solução que propõem.

Jamais adote em escala uma tecnologia sem compreender a teoria que a fundamenta.

Reservar um tempo para estudos irá ajudar a manter sua mente aberta a novas tecnologias e reforçar aprendizados passados. É sempre um bom exercício revisitar documentações e ler as evoluções — changelogs — das tecnologias que utiliza no seu dia-a-dia.

Aprendendo a abstrair

A principal tarefa de um programador é reconhecer um problema e encontrar uma solução. Participar de maratonas de programação é uma ótima maneira de aperfeiçoar esta habilidade. Mas note que desenvolver vai muito além de programar.

Desenvolver é identificar um problema, escolher as abstrações adequadas, chegar na solução e garantir que o domínio do problema possa ser estendido.

A correta escolha das abstrações envolve desde o conhecimento do domínio do problema até a aplicação de design patterns. É bastante conveniente adotar MVC para iniciar desenvolvimento de uma aplicação Web, por exemplo. Porém, com o amadurecimento da aplicação ou mesmo para um domínio de problema mais específico, outras abstrações se farão necessárias.

Decidir o quanto um modelo pode ganhar código ou reconhecer que determinada interação entre objetos exige uma abstração intermediária não é tarefa fácil. O entendimento total do domínio do problema e uma visão de evolução do projeto são requisitos para um bom trabalho. Abstrações demais ou de menos serão notadas apenas no futuro quando o domínio do problema precisar ser ampliado.

Inspecionar o código de projetos populares ajuda a aprimorar esta habilidade. Aprender a identificar abstrações e reconhecer níveis de interação entre estas é o que irá garantir um código com baixo acoplamento e alta coesão.


Muitas outras disciplinas são necessárias para se tornar um bom desenvolvedor, mas reconhecer a importância do domínio de teorias e abstrações são traços em comum dos melhores desenvolvedores que conheço.

Show your support

Clapping shows how much you appreciated Jean Carlo Emer’s story.