Editorial

Qual é a semelhança entre um programador e um jogador de futebol?

Juliano Niederauer
13 de janeiro de 2014

Em qualquer profissão, encontramos profissionais de todos os níveis de qualificação. Logo, existem programadores bons, médios e ruins, assim como existem jogadores de futebol bons, médios e ruins. Existem ainda os programadores brilhantes, que equivalem ao que no futebol chamamos de "craque". Mas por que resolvi comparar os programadores com os jogadores de futebol? Ocorre que essas duas profissões apresentam algumas características em comum, sendo a principal delas a capacidade de raciocínio. Afinal, por que alguns profissionais conseguem um lugar de destaque em relação aos demais?

Para que você entenda melhor, vamos descrever brevemente as "categorias" de programadores:

Programadores ruins - são pessoas que, de alguma maneira, entraram na área de desenvolvimento de software, mas não possuem a menor habilidade ou capacidade para isso. Se você entregar a elas um programa para desenvolver, por mais simples que seja, podem passar dias ou até meses tentando implementá-lo, sem sucesso. O que um programador experiente resolveria em questão de horas, acaba se transformando em dor e sofrimento para esse profissional que parece ter caído de paraquedas nessa profissão. Afinal, mesmo percebendo que não possuem nenhuma habilidade para escrever um código, é isto o que fazem (ou melhor, tentam fazer).

Seria como o jogador de futebol ruim. Certamente você já viu atuar em seu time de futebol algum jogador de muito baixa qualidade e escutou algum amigo ou comentarista falando: "A culpa não é dele, mas do técnico que o coloca para jogar!". Da mesma forma, a culpa pela empresa não conseguir produzir os seus programas não é do programador ruim, mas da própria empresa que o contratou para uma função da qual não é capaz.

Programadores medianos - gostam de codificar, demonstram entusiasmo, mas normalmente esbarram em limitações técnicas que acabam criando uma falta de iniciativa para resolver problemas por conta própria. Na maioria das vezes, o programador mediano tenta procurar soluções prontas, ou seja, para ele "nada se cria, tudo se copia". No mundo da programação, em algumas situações isso pode funcionar, principalmente no que diz respeito a funções usadas com frequência por todos (como por exemplo validar um número de CPF). No entanto, cada programa tem sua lógica, que deve ser construída pela criatividade do próprio programador, ao invés de tentar copiá-la de colegas ou achar algo "parecido" na Internet.

Seria como o jogador futebol mediano, que alguns chamam de jogador "protocolar". Ele faz o básico, recebe a bola, passa a bola ao companheiro mais próximo, marca e colabora com a equipe dentro de suas limitações. Se tentar "copiar" as habilidades do companheiro que é mais capaz tecnicamente, vai acabar até prejudicando o seu desempenho.

Programadores bons - apresentam uma apurada lógica de programação, sendo capazes de construir rapidamente uma carreira bem-sucedida como desenvolvedor de software. Suas habilidades são valorizadas e seus colegas de trabalho o respeitam como profissional. Toda empresa na qual ele trabalha é enriquecida de alguma forma pela sua presença. Para todo tipo de problema proposto, é capaz de apresentar uma solução organizada e eficiente.

Seria como um bom jogador de futebol. Todo clube gostaria de tê-lo em seu time, pois além de desempenhar o básico de sua função, ainda apresenta características extras. É como um meia que serve os atacantes e ainda aparece eventualmente na área para fazer gols.

Programadores brilhantes - verdadeiros Senhores da lógica, possuem o dom de formular soluções rápidas, diferenciadas e tão inesperadas que surpreendem até a empresa em que trabalham. Um programador brilhante é comparado ao que no futebol chamamos de "craque". Observe a figura para entender melhor. Imagine que os jogadores A, B e C são do mesmo time.

O jogador A está com a bola e o jogador B é o craque. O jogador A passa a bola, que vai em direção ao jogador B. Antes da bola chegar aos pés do jogador B, ele já sabe que irá passá-la ao jogador C, pois o craque tem uma visão periférica do ambiente em que está envolvido, ao contrário dos jogadores ruins ou medianos, que receberiam a bola e ainda precisariam de um tempo para pensar o que fazer, sendo provavelmente desarmados antes de executar qualquer ação.

Mas não é apenas isso. O craque sabe não apenas a qual jogador irá repassar a bola, mas já prevê qual a ação irá realizar depois disso. Na figura, essa ação é representada pela seta pontilhada. Após receber e passar a bola imediatamente ao jogador C, o craque irá correr na direção D, já esperando receber a bola de volta e dar prosseguimento à jogada. Essa é a diferença entre o craque e o bom jogador. O primeiro é capaz de prever um maior número de etapas com antecedência.

Da mesma forma, um programador brilhante, quando recebe um trabalho a executar, em pouquíssimo tempo (muitas vezes em poucos segundos) já consegue definir em sua mente um mapa lógico, ou seja, um abrangente planejamento de como o programa será implementado. Ele consegue definir em instantes uma série de etapas que os programadores menos qualificados levariam dias para planejar.

Alguns podem perguntar: "É possível um programador ruim ou mediano se tornar bom ou brilhante um dia?". Como em toda profissão, o estudo e a dedicação podem fazer o profissional evoluir. No entanto, existe algo maior que é chamado de dom, aptidão, talento. Por que muitas vezes Romário sequer aparecia para treinar, mas nos jogos fazia gols espetaculares? Ele tinha o dom de fazer gols. Já o Rei Pelé foi um atleta exímio, cuja dedicação era reconhecida por todos, com horas e horas extras de treinamento diário. Porém, será que essa dedicação adiantaria alguma coisa se ele não tivesse o dom de jogar futebol? Nesse caso, certamente ele seria apenas um bom jogador, comum.

Quem almeja fazer sucesso em alguma profissão deve demonstrar suas aptidões e criatividade desde cedo. Muitos programadores iniciantes me perguntam: "Quais os frameworks que você recomenda para programar?". Ora, se você quer aprender a programar, já quer começar usando frameworks? No meu tempo, abríamos o Bloco de Notas do Windows e já começávamos a programar. Está certo que hoje a quantidade de recursos e ferramentas é maior, porém elas podem acabar prejudicando o real aprendizado e desenvolvimento de sua lógica de programação. Além disso, o uso de um framework pode impactar diretamente na performance de sua aplicação, pois você vai acabar incluindo em seu código uma série de funções que não irá utilizar. Lembre-se que quem utiliza coisas prontas é o programador mediano. Se você quer ser bom ou brilhante, escolha um editor Web (como o Dreamweaver, por exemplo) e vire uma "máquina" de programar, evitando usar funções de terceiros, a não ser que sejam indispensáveis. Com o tempo, monte sua própria biblioteca de funções para reaproveitá-las, pois você saberá como funciona cada uma delas, não será uma "caixa preta" que vai impactar na sua aplicação.

Atualmente, as empresas encontram cada vez mais dificuldades em conseguir bons profissionais para a área de desenvolvimento. Muitas vezes, já precisei de estagiários e funcionários desta área. Quando envio as ofertas para universidades, por exemplo, praticamente ninguém as responde. Já estão todos empregados ou estagiando. Outros não respondem porque não são qualificados o suficiente. Logo, não faltam vagas de estágio ou emprego. Pelo contrário, faltam pessoas qualificadas para preenchê-las. Portanto, se você acha que tem aptidão para essa área, não pense duas vezes e invista em sua formação e capacitação, pois oportunidades certamente não irão faltar para atingir o sucesso profissional.

Leia outros editoriais