Ir para o conteúdo
Invillia Insights | For Infinite Learners
PT-BR | ENG
  • início
  • invillia
  • artigos
  • cases
  • e-books
  • notícias
  • webinars

Tech na Veia_ Programação Universal

Na Invillia, toda quarta-feira, ao meio dia, paramos uma hora para nos nutrir com as dicas, how-tos, boas práticas e tendências selecionadas por nossos especialistas em Product, Agile, Back e Front, Mobile, Quality, Security e Data. Uma troca de experiências e espaço de conexão vital para quem adora o novo. E essencial para que a inovação nunca pare. Se a tecnologia está no sangue, a gente faz questão de deixá-la circulando cada vez mais_ 

NA VEIA_ Programação universal: versatilidade nas linguagens para diferentes técnicas, necessidades e soluções. 

 7 minutos de leitura 

No artigo de hoje, compartilhamos os principais aprendizados da incrível edição sobre programação universal, apresentada por Alexnaldo Carvalho dos Santos, nosso especialista no assunto. 

O que é ser programador universal? 

Novas linguagens de programação surgem a cada dois anos, e com isso – nova sintaxe e suas dificuldades –, é comum se perguntar qual linguagem deve-se realmente utilizar para se tornar um especialista e trabalhar no dia a dia com programação? 

A ideia do programador universal se refere à capacidade do profissional escolher livremente uma linguagem dentro de uma diversidade de opções, ou seja, utilizar um mecanismo mais adequado para a resolução de um determinado problema. Isso porque, quando acreditamos que somente uma linguagem pode resolver tudo evidentemente só será possível chegar ao mesmo tipo de resultado. Além disso, as diferentes linguagens trazem novos conhecimentos, oferecendo a possibilidade de se trabalhar com muitas opções.  

Quem programa em uma só linguagem encontra quantas soluções? 

Há um modelo de programador tradicional que se sente mais confortável com determinada linguagem e que não deseja fazer este “job rotation” porque acredita que vai ter que aprender muito para trabalhar com nova linguagem. Entretanto, quando se trabalha com uma só linguagem, perde-se oportunidades de ingressar em um novo trabalho ou projeto, limitando e restringindo sua capacidade de atuação e evolução. 

É possível, no entanto, mudar de linguagem com segurança quando o programador tradicional tem uma visão da sintaxe daquela linguagem porque o programador universal pensa de um modo diferente: ele pensa muito mais nos conceitos envolvidos no processo do que na sintaxe em si, ou seja, utiliza a sintaxe como meio e não como um fim. 

O que se aprende primeiro: lógica de programação ou linguagem de programação? 

Evidentemente que aprendemos alguns conceitos ao mesmo tempo mas, normalmente, a ordem é aprender primeiro a lógica de programação e, em seguida, a linguagem, ou seja, primeiro o conceito e depois a prática.  

Há diversas formas de resolver o mesmo problema se possuirmos diversas possibilidades de ação. Por isso, é aconselhável que o programador dê um passo atrás e tente voltar ao modelo inicial para entender o processo, percebendo que as diferentes linguagens têm muito mais em comum do que se supõe.  

A lógica de programação é a capacidade de pensar na solução de um problema, sendo que a linguagem de programação é a ferramenta utilizada para resolvê-lo. Se misturar as duas coisas, não será possível discernir quando se está pensando e quando está utilizando somente a sintaxe da linguagem. Isso porque, muitas vezes, quando se passa muito tempo em determinado projeto utilizando só uma linguagem, a tendência é resolver a solução com aquilo que já está à sua disposição (o que está pronto).  

No entanto, ao se tornar um programador sênior ou especialista, e tomar decisões sobre arquitetura e linguagem, o programador com o vício de acreditar que sua linguagem vai resolver todo o tipo de problema pode cair numa “cilada”. Afinal, quando estamos acostumados com determinada arquitetura e plataforma, somos “tendenciosos” a utilizá-las, levando até mais tempo para o desenvolvimento, pois ela pode não ser a mais rápida ou a mais eficaz. 

Por isso, conhecer mais de uma linguagem, ajuda a tomar melhores decisões para a solução de problemas, além de ajudar a entender que, na linguagem que normalmente não se trabalha, já existe uma solução que só precisa de adaptação.  

A ideia da universalidade é que se consiga analisar a situação, o problema e pesquisar a situação para encontrar a solução em outra linguagem. Retirar a visão de que se deve programar e ser especialista em apenas uma linguagem, pois o mercado está diversificado e exigente e, inevitavelmente, em algum momento será necessário aprender nova linguagem, sem o receio de migrar.  

Este “job rotation” portanto, estimula o conhecimento para o raciocínio com relação aos problemas para a obtenção da solução, afinal se a lógica de programação é fraca, pouco importa a linguagem que se utilize, o programador vira mero espectador do fascinante mundo da programação. 

Preocupações do programador 

Neste universo, há dois tipos de preocupações: a preocupação do programador tradicional focada na sintaxe (o programador tradicional acredita que conhecer profundamente a sintaxe da linguagem é a solução de todos os seus problemas) e a preocupação do programador universal com foco no conceito (o programador universal está preocupado com conceitos para o desenvolvimento da linguagem).  

De que adianta, afinal, ter um dicionário com todas as técnicas para se criar uma função ou classe e não saber distinguir conceitualmente as suas utilizações?  

A programação está muito mais relacionada ao conceito, sendo que a linguagem é apenas um meio para aplicação e solução. Além disso, as linguagens são mais parecidas do que se imagina e o desafio é comparar a sintaxe entre duas linguagens para fazer a portabilidade.  

Na prática, muitas diferenças nas linguagens de programação existem para facilmente adaptá-las às plataformas-destino e algumas para “fisgar” o programador, o que significa que muitos conceitos aplicados na linguagem são para facilitar a sua funcionalidade/prática, ou seja, apesar da sintaxe não ser a mesma em todas as linguagens, o conceito por trás é fiel com algumas mudanças e formas de implementação. 

Portanto, pouco importa a linguagem que se vai utilizar, é necessário somente buscar na linguagem aquela sintaxe, como implementá-la e resolver determinado problema naquela linguagem.  

Assim, ao entender o significado e proposta, fica mais fácil compreender o que muda entre as linguagens e como os conceitos são aplicados distintamente, se tornando um programador universal, ao invés de simplesmente utilizá-las indiscriminadamente. 

Quais são os pré-requisitos para se tornar um programador universal?  

Primeiro focar no conceito e esquecer um pouco da sintaxe, afinal, a sintaxe é o meio, a ferramenta e não é o seu fim. O que há de sólido no aprendizado de programação é o conceito de programação, pois em qualquer linguagem, é possível migrar de projeto – com conceitos parecidos, mas implementações distintas. Quando se busca soluções pelo conceito, é necessário saber pesquisar: mesma estrada com características diferentes. 

Fundamentos de um programador universal  

Para se tornar um programador universal é fundamental: fortalecer os conceitos de lógica de programação, sabendo diferenciar variáveis por valor e por referência, nomeando conceitos e funções independentemente da linguagem; dominar as estruturas de dados (lista, pilha, fila, árvore binária, lista encadeada etc.); dominar os operadores lógicos AND, OR, NOT e suas precedências; dominar os controles de fluxos (IF, ELSE, SWITCH); dominar os laços de repetição (FOR, WHILE, REPEAT); e dominar o conceito de funções. 

Dentro destes fundamentos, também é imprescindível dominar a principal arquitetura de sistemas (ou seja, entender como o SOLID funciona e quais são seus benefícios); dominar os 4 pilares da programação orientada a objetos (dentre as quais abstração, encapsulamento, herança e polimorfismo); conhecer padrões de projetos (GOF – Singleton, Memento, Facade, Proxy etc.) e dominar a prática de testes unitários e instrumentais. 

Alternar a linguagem não te torna um exímio programador porque não existe aprofundamento na sintaxe, mas à medida que se começa a desenvolver num projeto novo, em 30 ou 60 dias é possível desenvolver bastante conhecimento, dado que a sintaxe de toda a linguagem é fixa e limitada e a proposta vai alternar a sua capacidade de solução de problemas. 

Como aprender outra linguagem de programação  

Para virar um programador universal e se fortalecer é necessário comparar na linguagem destino a sintaxe dos comandos similares, ou seja: o que você já conhece na linguagem A tente aplicar na linguagem B notando suas semelhanças.  

Além disso, é importante pesquisar, fazendo um “overview” dos principais elementos da plataforma-destino para entender quais problemas a plataforma busca resolver e quais tipos de projetos são criados. 

Também é necessário observar o código-fonte de algum projeto na linguagem para se familiarizar com os conceitos, e treinar essas questões de sintaxe que mudam, mas são pontuais, ajudando a solidificar o conhecimento.  

Cuidado com as armadilhas! 

É importante saber diferenciar a sintaxe exclusiva da linguagem, percebendo o que elas têm em comum e o que possuem de diferencial, visando facilitar o desenvolvimento e sua implementação, afinal ninguém quer “reinventar a roda”, a menos que este seja o objetivo. Um código pode ser complexo, mesmo de origem confiável, por isso, se você souber fazer do modo mais simples, faça! A busca pelo conhecimento nos torna críticos em três dicas: 

  1. Antes de começar a programar, já tenha a solução lógica em mente (como resolver aquele problema?); 
  1. A linguagem de programação é o meio para resolver um problema, e não o fim (aprender tudo sobre sintaxe não é pensar em resolver problemas!); 
  1. Programação é uma maratona e não uma corrida de 100 m. 
Na Invillia temos o know-how e a experiência nas tecnologias, abordagens e metodologias mais top do mercado, sugerido e aplicando a melhor a cada caso concreto. Estamos sempre estudando, enriquecendo conhecimentos, antecipando o que aí vem, testando, indo mais além. Para criar e continuamente aprimorar junto de quem está revolucionando seus mercados, os produtos e serviços digitais mais inovadores, resilientes, robustos, escaláveis e com a melhor experiência de utilização. É o nosso Global Growth Framework em ação_
Vamos construir o próximo juntos?

Compartilhe isso:

  • Clique para compartilhar no Twitter(abre em nova janela)
  • Clique para compartilhar no Facebook(abre em nova janela)
  • Clique para compartilhar no LinkedIn(abre em nova janela)

Relacionado

Postado em 12/07/2022

invillia

linkedin logo instagram logo youtube logo twitter logo medium logo

Categorias

  • A Life In My Day 29
  • Agilidade 45
  • Artigos 110
  • Best Minds, Best Where 52
  • Business Expansion 5
  • Cases 14
  • Digital Workplace 17
  • E-book 6
  • Eventos 5
  • Management 3.0 9
  • Notícias 34
  • Produtos Digitais 39
  • Sem categoria 7
  • Tech na Veia 19
  • Vídeos 13
  • Webinars 2

Receba nosso e-book

What makes game-changers love our

Deixe um comentário Cancelar resposta

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

Artigos relacionados:

{* Invillia, do zero ao infinite digital power_ 

TypeScript. A tipagem é estática, mas sua carreira não_ 

Invillia e Via indicam os quatro fatores principais que atraem os consumidores para os marketplaces