Por que você deveria aprender Programação Orientada a Objetos?

Para quem está começando na área de desenvolvimento de software essa é uma pergunta que muitas vezes se torna recorrente, visto que atualmente outras questões como Programação Funcional, Desenvolvimento Guiado a Testes, por exemplo, são levantadas ao mesmo tempo em que a Programação Orientada a Objetos — POO é citada.

Pois bem, o intuito desse pequeno post é ajudá-lo a entender todo esse cenário e mostrá-lo a importância de ter a POO como algo definitivamente certo em seu currículo.

Quando falamos de desenvolvimento de software e seus paradigmas, uma sequência de aprendizado que sempre me vem a cabeça é: Programação Imperativa, Programação Orientada a Objetos e na sequência a Programação Funcional. Não que isso seja uma regra, mas que na maioria das vezes é a curva natural do aprendizado de um desenvolvedor.

A Programação Imperativa é aquela em que 99.99% dos desenvolvedores aprendem em seus primeiros contatos com o desenvolvimento de software. Se pensarmos nos alunos de uma faculdade do curso de Sistemas de Informação (ou afins), a primeira disciplina é Algoritmos Estruturados ou mesmo Fundamentos da Programação, onde são vistos os conceitos inciais, geralmente pautados no “Portugol” e muitas vezes Linguagem C. Isso é muito comum pois linguagens como a Linguagem C possuem em seu cerne o paradigma de desenvolvimento imperativo, ou seja, todo aplicativo/algoritmo é desenvolvido pensando-se em uma série de etapas que o mesmo deve cumprir. Um exemplo disso seria pensarmos quais seriam os passos para a troca de uma lâmpada? De forma bem sucinta podemos dizer enumerar: 1- desligar o interruptor, 2- pegar uma escada, 3- montar a escada, 4-subir na escada, 5- desenroscar a lâmpada queimada, 6- descer da escada, 7- jogar a lâmpada queimada no lixo, 8- pegar uma lâmpada nova, 9- subir na escada, 10- rosquear a nova lâmpada, 11- descer da escada, 12- ligar o interruptor para verificar se a nova lâmpada acende.

É claro que para fazer o mesmo serviço você poderia ter mais ou menos passos dependendo de suas escolhas, como por exemplo, já levar a lâmpada boa quando subir a primeira vez na escada, e é justamente isso que torna a computação algo muito divertido, visto que podemos chegar ao mesmo resultado por caminhos/passos diferentes. Enfim, a Programação Imperativa em resumo é unicamente isso, segue-se um passo-a-passo (uma sequência) até chegar ao objetivo final.

Após esse aprendizado, geralmente conseguido com aulas de introdução à programação, fundamentos de programação, algoritmos, etc, o desenvolvedor novato percebe que muitas das ferramentas e linguagens hoje usadas (JavaRubyPython) são linguagem que se utilizam, além do paradigma de Programação Imperativa, o paradigma Orientado a Objetos, e isso apesar de parecer ruim a princípio, na verdade vai permitir ao desenvolvedor “subir de nível”, pois agora ele poderá resolver problemas não apenas utilizando-se do passo-a-passo, mas também modelando o seu problema de uma forma mais natural.

Vejamos o mesmo exemplo para trocar uma lâmpada usando a POO. A primeira coisa a fazer é pensarmos nas classes/coisas envolvidas no estudo de caso (trocar uma lâmpada), e de cara podemos pensar, Pessoa, Lâmpada, Escada, Bocal da Lâmpada, Interruptor. Agora que sabemos quem está envolvido, podemos combinar suas características e ações, por exemplo, “uma Pessoa pega uma Lâmpada boa”. Apenas esse fato de dizer que “Pessoa” “pega” “Lâmpada” “boa” já nos diz muita coisa pois tudo isso são coisas que podemos modelar usando o paradigma de Orientação a Objetos, ou seja, tudo não passa de modelar Objetos/Coisas que possuem ações e características, e nesse caso “Pessoa” seria uma classe/objeto, “pega” seria uma ação da “Pessoa”, “Lâmpada” seria uma outra classe/objeto e “boa” seria o estado/característica/atributo da “Lâmpada”.

Enfim, se isso for uma novidade pra você, tenho certeza que mexeu com seus neurônios, mas ao mesmo tempo te deixou na vontade de entender a fundo como tudo isso funciona, mas, é obvio que em um artigo com poucas palavras é quase impossível explicar de forma clara o que vem de fato a ser a POO, por outro lado, fica claro também que conhecer esse paradigma faz parte da evolução natural do desenvolvedor e fazer carreira nessa área vai depender também de ter esse conhecimento em seu sangue.

Mesmo com tantos percalços, o mais legal é que esse paradigma, depois de aprendido, pode ser aplicado a qualquer linguagem de programação que o suporte, ou seja, aprenda uma única vez e mesmo tendo aprendido POO usando Java, você perceberá o mesmo funcionamento em Ruby ou Phyton e isso é uma das maravilhas de se conhecer um novo paradigma.

E aí, ficou interessado? Então não perca tempo e aprenda agora mesmo Programação Orientada a Objetos e dê um upgrade em sua carreira!

Lembre-se que a Vídeos de Ti possui cursos de POO para linguagens como Ruby e Java. É só clicar e começar a entender esse novo mundo! 😉

Um forte abraço!