O que é Programação Orientada a Objetos (POO) e porque você precisa saber!

O que é Programação Orientada a Objetos e porque você precisa saber!

“O que é Orientação a Objetos? Por que preciso tanto saber sobre isso?” Essa é uma dúvida muito comum entre iniciantes no mundo do desenvolvimento de software.

Isso porque, quando falamos em desenvolvimento de software e seus paradigmas, existe uma sequência de aprendizado natural:

  1. Programação Imperativa
  2. Programação Orientada a Objetos
  3. Programação Funcional

Não que isso seja uma regra fixa e imutável, mas na maioria das vezes é a curva de aprendizado de um desenvolvedor de sucesso. E, programação orientada a objetos (popularmente conhecida como POO), como você pode ver, ocupa um papel central nesse processo.

Aí você me pergunta: “Por que!?”

Pois então, é exatamente sobre isso que irei falar nesse post, para assim, te ajudar a posicionar a sua carreira profissional de acordo com todo esse cenário do mercado de programação.

Portanto, nesse post irei explicar o que é Programação Imperativa e, obviamente, o que é Programação Orientada a Objetos. Para finalizar, pretendo deixar claro o porquê de POO ser tão importante no mercado de desenvolvimento de software atual.

Programação imperativa

A Programação Imperativa é aquela que 99.99% dos desenvolvedores aprendem em seus primeiros contatos com a área de programação. Geralmente, você aprende esse paradigma através de um curso online como o da Becode ou na própria faculdade, digamos em um curso de Sistemas de Informação (ou qualquer outro similar), onde a primeira disciplina provavelmente será “Algoritmos Estruturados ou fundamentos da programação”.

Nessa etapa, o aluno irá ver os conceitos iniciais e extremamente importantes, geralmente pautados no “Portugol” ou, muitas vezes, na Linguagem C.

Isso é muito comum, pois linguagens como a 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 software deve cumprir para atingir o seu objetivo.

Um exemplo clássico disso seria pensarmos quais são as etapas para a troca de uma lâmpada? De forma bem sucinta, podemos 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.

Simples não é? 12 passos.

Claro, para a grande maioria dos casos, você pode chegar a uma mesma solução executando passos diferentes, dependendo da sua escolha. Como, por exemplo, já levar a lâmpada boa quando subir a primeira vez na escada. É justamente isso que torna a computação algo muito divertido, visto que podemos chegar a resultados idênticos, por diferentes caminhos.

Enfim, a Programação Imperativa, em resumo, é isso, um passo-a-passo (uma sequência lógica) para se chegar a um objetivo final.

Essa etapa é natural e muito importante na formação de um desenvolvedor. Portanto, não deve ser atalhada!

Programação Orientada a Objetos (POO)

Após o aprendizado da Programação Imperativa, geralmente, adquirido através de aulas de introdução à programação, fundamentos de programação, algoritmos, etc. O desenvolvedor novato percebe que muitas das ferramentas e linguagens atuais (Java, Ruby, Python e entre outras), são linguagens que utilizam, além do paradigma de programação imperativa, o paradigma Orientado a Objetos.

Isso, a princípio pode parecer ruim, “mais uma coisa para aprender”, mas na verdade é o que vai permitir o desenvolvedor “subir de nível”. Agora, sabendo POO, o desenvolvedor poderá resolver os mesmo problemas utilizando, não somente o passo-a-passo tradicional, mas também uma modelagem do problema de uma forma mais natural/real.

Vejamos o mesmo exemplo para trocar de uma lâmpada, agora usando a Programação Orientada a Objetos (POO). A primeira coisa a fazer é pensarmos em classes. Em outras palavras, coisas envolvidas no estudo de caso (trocar uma lâmpada):

  • Pessoa, Lâmpada, Escada, Bocal da Lâmpada, Interruptor.

Definido isso, podemos combinar suas características e ações. Por exemplo: “uma Pessoa pega uma Lâmpada boa”.

Apenas esse fato de dizer que a “Pessoa” “pega” “Lâmpada” “boa” já nos diz muita coisa, pois tudo isso pode ser modelado usando o paradigma de Orientação a Objetos. Em outras palavras, tudo não passa de modelar Objetos que possuem ações e características.

Em nosso 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”.

Por que é tão importante!?

Então, essa pergunta pode ser respondida em duas etapas: linguagens de programação e valorização no mercado profissional

1º ponto: Linguagens de Programação

Programação Orientada a Objetos | Linguagens de Programacao

Irei te lançar um desafio…

  • Acesse o ranking da TIOBE, um dos rankings de linguagens de programação mais conceituados e confiáveis;
  • Confira as linguagens que ocupam as primeiras posições do ranking;
  • Agora acesse o Wikipédia e procure características sobre essa linguagem.

Eis o que em 90% dos casos você irá encontrar:

“Essa linguagem de programação é baseada no paradigma orientado a objetos”

Sim, exato! Hoje em dia, o mercado de programação é dominado pelo paradigma orientado a objetos. Em outras palavras, é raro você trabalhar com uma linguagem de programação atual que não suporte POO. Sendo assim, fica claro o meu 1º ponto:

Saber POO não é um capricho, mas sim uma exigência do mercado.

Saber POO não é capricho, mas sim uma exigência do mercado. Clique para tuitar

2º ponto: Valorização profissional

Programação Orientada a Objetos | Valorizacão Profissional do Desenvolvedor

Aí você pode tentar desconstruir a minha abordagem anterior com o seguinte argumento:

“Eu sei programar em ‘linguagem Orientada a Objetos’, mas não domino os fundamentos de POO”

Claro, isso é possível. Contudo, provavelmente você não estará utilizando o melhor que aquela linguagem de programação tem a oferecer.

Resumindo, existem dois tipos de desenvolvedores: aqueles que fazem e aqueles que fazem e sabem o que estão fazendo (teoria + prática).

O primeiro é aquele que provavelmente aprendeu a programar totalmente na prática, sem uma base teórica de qualidade, o que não está errado, mas também não estará em suas plenas capacidades profissionais.

Já o segundo, além de programar, consegue abstrair os requisitos do mundo real para o software, utilizando os conceitos de Orientação a Objetos no desenvolvimento do produto. A consequência disso é a utilização das melhores práticas, um software mais duradouro em termos de manutenibilidade e uma qualidade final de software superior.

Aí eu te pergunto, qual desenvolvedor será mais valorizado e possuirá mais chances de ter uma carreira de sucesso? Aquele que sabe programar ou aquele que sabe programar e também entende os paradigmas de programação

Acredito que você já saiba resposta. Este é o 2º ponto.

Resumindo…

Se programação orientada a objetos 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.

Obviamente, 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 depende também de ter ou não 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.

O que isso significa? Basicamente que você precisa aprender um uma única vez e, após mesmo tendo aprendido POO usando Java (por exemplo), você perceberá o mesmo funcionamento ocorrendo em Ruby, Phyton e diversas outras linguagens de programação. Legal, não é?

Se você ficou interessado em saber mais sobre programação orientada a objetos (POO), confira o curso online completo que desenvolvi sobre o POO com Java e comece a dar um upgrade na sua carreira ainda hoje! Dúvidas? Deixe o seu comentário abaixo, forte abraço!

 

Curso Online de Orientação a Objetos com Java

O que você achou desse post?

8 points
Upvote Downvote

Escrito por Jackson Pires

Mais de 15 anos dedicados a Dev, 5 a ensinar. Acredito que programação não precisa ser complicado, por isso, adotei o Ruby On Rails (RoR). Contudo, como todo bom Engenheiro de Software, tenho especialização e adoração por diversas tecnologias do mercado. Hoje, dedico o meu tempo a ensinar e compartilhar conhecimento em plataformas como a Becode. Ahh... também sou fotógrafo nas horas vagas.

Comentários

Leave a Reply
  1. Ótimo post, estou iniciando com programação e estou com muita dificuldade. Gostaria de saber quais passos tenho q dá para chegar bem no momento que eu começar a estudar POO? O que devo fazer? Ler, cursos online? me dá essa luz.

    • Fala, Filipe!
      Que bom que gostou do post! 🙂
      Bem, para que está iniciando em programação o ideal é começar aprendendo lógica de programação para entender a base de onde tudo começa. Após isso, você estará apto a começar a aprender POO. É claro que no aprendizado você terá que se dedicar bastante lendo e ‘colocando a mão na massa’ para de fato aprender. Um local que recomendo para começar é aqui mesmo na Becode com o curso do Alex sobre lógica de programação, ok? Espero que tenha ajudado a saber por onde seguir. Um abraço!

  2. Olá pessoal
    Me chamo Thiago Max Zieguelboim
    Acabei de me formar em sistemas de informação
    No momento estou desempregado
    Já trabalhei com TI em um hospital
    Gostaria de crescer na área

    • Fala, Thiago!

      Que bom que já estás formado! Isso te fará ficar à frente dos concorrentes, mas, claro, é necessário também se encher de conhecimento da nossa área. Se seu ramo for programação, lembre-se de conhecer o básico de algoritmos, POO e alguma linguagem que você se identifique. Se sua área for BD também conheça a fundo pois isso é o que vai fazer a diferença no mercado de trabalho, “conhecimento!”.

      Enfim, desejo toda sorte do mundo e lembre-se que a Becode pode te ajudar a melhorar no aspecto técnico com os cursos que ela tem disponível.

      Um forte abraço e sucesso nesse novo ano!

  3. Olá pessoal, eu sou mais velho e trabalhei com linguagem estruturada durante muitos anos. Estou a apenas 1 ano e meio trabalhando com OOP através da linguagem C#. Tenho assistido várias video aulas na internet, lido vários livros, posts, mas ainda me sinto como se tivesse que aprender muito, em .Net me considero como Jr. Alguém pode me indicar materiais que possam me ajudar a quebrar paradigmas e parar de pensar como programação estruturada?

    Obrigado pela atenção.

    • Fala, Wilson!
      Com certeza pensar no formato Orientado a Objetos é um desafio. Conforme o Erick falou, o curso de Orientação a Objetos com Java é um ótimo começo. No curso o foco é Orientação ao Objetos que pode ser usada em qualquer linguagem de programação, acabou que usei Java para exemplificar por ser uma linguagem muito difundida em faculdades, mas tenha certeza que esse será um grande passo na sua carreira. Um abraço!

  4. Estou iniciando agora e através do site consegui fazer meu planejamento de estudos.Gostei muito do site de vocês, ótimo conteúdo, parabéns ao bom trabalho.

  5. Olá pessoal! Estou em busca de aprender a programar jogos para Android e IOS, mas não tenho nenhum nível de programação, ou seja. BÁSICO do básico, sendo assim, gostaria de saber quais cursos são indicados para mim ingressar nesse universo que considero maravilhoso!

  6. Tenho um grande interesse em programação, porem sou iniciante, começando do zero, tendo nenhuma experiencia de certo em programação (Tenho 15 anos e comecei a me apaixonar por essa área), e bem eu queria saber quais são as etapas adequadas para iniciar um estudo de programação, pra eu poder ter uma maior facilidade em me adequar a essa nova área.
    Ótimo post assim como todos os outros desde site (Digo mais relacionados a programação já que apenas vi sobre esse assunto) E espero um dia ser digamos que um desenvolvedor ou programador ou quem sabe os dois ksk E conseguir me estabelecer nesse ramo. Agradeço desde já por facilitar bastante minha vida.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Loading…

0

Comentários

Comentários

Carreira na TI depois dos 30? Veja 10 dicas para vencer o preconceito!

Carreira na TI depois dos 30? Veja 10 dicas para vencer o preconceito!

TOP 10 principais SGBDs do mercado Mundial | Becode

TOP 10 principais SGBDs do mercado global!