Seções iMasters
Carreira + Desenvolvimento

A diferença entre um cara que programa e um programador

O ato de escrever códigos faz com que você seja um cara que programa, mas não necessariamente um programador.

Ok, confesso que “inventei” agora essa diferença entre esses termos. Digamos que ambos cumprem o papel e resolvem o problema. E a diferença está na forma de pensar deles.

Existem diversas maneiras de se chegar a um mesmo resultado. Algumas mais claras, diretas, outras mais bonitas, elegantes, às vezes nebulosas, cheias de voltas e emaranhados, boas ou ruins. Apesar do peso de subjetividade que esses termos carregam.

Acredito que um bom código é aquele que, chega onde deve chegar, sendo este legível aos envolvidos, e aqueles que não sabem do que se trata.

  • Bom em performance;
  • Sem rotinas confusas ou desnecessárias(as famosas gorduras);
  • Bem indentado e organizado.

Apenas isso. Simples e objetivo. Toda a comunidade, conhece ou deveria conhecer os conceitos que citei. (Keep It Simple, Faça o Simples que Funcione, Você não vai precisar disso, Don’t Repeat Yourself…)

Não pretendo estender o assunto sobre cada um deles. O meu ponto é: “Um CQP [Cara Que Programa], não leva ou nem sempre leva em consideração estas ‘máximas’.” Já um VP [Verdadeiro Programador], possui esses conceitos incorporados a ele. Na forma de pensar, na maneira de codificar. Para um Programador, é natural, para o CQP, ainda não é.

Todos sofremos pressão, temos prazos apertados, e situações difíceis pra lidar… Este é o nosso mundo. A agência ou a empresa, pode lhe dizer que é tranquilo, que são pacientes, que os prazos são legais, e tudo mais.. Porém, faz parte da arte de programar nos deparamos com algo urgente e impossível, para ontem!

Um programador resolve da melhor forma possível, enxergando na frente, o outro faz apenas para se ver livre, e entregar logo. O erro aqui, é que depois aquele monstrinho volta, e nem sempre podemos ou temos tempo de refazer ou corrigir. E quando surgem as cabeças dos nossos monstros. Duas, Três, Sete… a tendência é piorar. Começou errado, por preguiça, falta de conhecimento, mal planejamento, ego…

Um CQP, acha que sabe tudo, ou não se importa de não saber, e nem tenta. Um VP, tenta saber, sempre busca melhorar, aceita analisando as críticas recebidas, e gosta do que faz. Fazer bem feito lhe deixa feliz, o contrário lhe incomoda.

O melhor programador não é aquele que complica mais. Códigos de linguagens alto nível, devem ser escritos por humanos e para humanos. As máquinas entendem, tanto códigos bem escritos, quanto códigos ruins, mas e você no futuro? E o outro programador?

Acho que todos nós já demos continuidade no trabalho de alguém. Já vimos scripts porcos, e outros bem feitos. Quando alguém pegar um trabalho nosso, vamos tentar ser aquele que não será xingado, e nem fez o outro programador perder horas e horas, entendendo as loucuras que fizemos.

Se faça essa pergunta. O que você é? Qual dos dois?

Mensagem do anunciante:

Torne-se um Parceiro de Software Intel®. Filie-se ao Intel® Developer Zone. Intel®Developer Zone

Comente também

50 Comentários

Anderson Melo

Velhinho na moral, sem querer ser chato ou critico mas vc tá procurando cabelo em ovo nao existe o cara que programa e o programador. Se o camarada conhece de logica, OO e tudo que seja necessario pra se programar e sabe o que esta fazendo ambos na minha opiniao sao programadores, agora, cada um tem uma maneira de resolver determinado requisito, por experiencia e tal… agora existe o cara que é curioso que fica copiando e colando codigo sem entender nem que p…tá escrito ali e fica tentando colocar a coisa pra funcionar no tranco ai é diferente. Sinceramente nao entendi a sua proposta com esse questionamento. Nao complique as coisas mas do que já estão querendo complicar. Valeu? Abraço!

    Rodrigo

    Discordo com vc Anderson Melo… Eu sou um cara que programa(não o sujo que só copia e cola, mas sou aquele que vai fazendo funcionar de forma desorganizada e etc) migrando para programador. Entendo de OO e lógica mas faltam conhecimentos nas linguagens e na prática.
    Embora a idéia seja simples a prática n é tão simples montar um código bem estruturado e etc.

    Ótimo artigo W.Bruno.

    André Ricardo Menshhein

    Talvez o termo CQP seja mal interpretado, o que podemos dizer é que entre programadores existem os mais preguiçosos e os que são mais cautelosos em relação aos resultados. Acho que no início todo programador quer ver o sistema funcionando e acaba fazendo um Ctrl + C & Ctrl + V (eu já fiz isso), mas a medida que vai pegando prática e mais interesse pela programação faz com que o mesmo busque soluções melhores para o sistema, tanto em performance quanto em complexidade. O que o texto reflete acontece, talvez os termos usados confundam um pouco, mas tudo vai da pessoa que trabalha com desenvolvimento, se o cara se acomodar ele nunca vai ser um verdadeiro programador. Abs.

    William Bruno

    É isso ai André Ricardo. Esse é o ponto que eu quis expor.

    Nesse ‘mundo’ existem diferentes níveis de programadores, e eu não estou falando que iniciantes são CQPs, mas sim que alguns programadores não enchergam que precisam melhorar, e estagnam.

    Admilson M da Silva

    Mas tudo isso é muito óbvio, não vejo coerência no artigo. É bem simples, um iniciante(auto-didata) tem um conceito, um iniciante(academico) tem outro conceito, isso tudo é questão de cultura(estudo). Se o cara estuda e não consegue obter um código eficiente, prático e organizado no mínimo ele é burro, se o cara não estuda e não consegue obter um código eficiente, prático e organizado, não quer dizer que ele seja burro. É tudo questão de cultura.
    Já estudei diversos código escritos por israelenses e na maioria dos casos são códigos quase próximo da perfeição, resumindo, a cultura deles é de obter um ótimo produto final.Já aqui no Brasil as coisas são diferentes.
    Eu considero que PROGRAMAR é como DNA, cada um tem uma forma, porém existem requisitos mínimos para que sejam considerados programadores ou DNA.

    Anderson

    Se o cara copia e cola e faz funcionar, acho que é mais capaz, por que em meio a tanto lixo generalizar dum código pro outro é uma tarefa ardua.

anonimo

é claro que teria um CQP se defendendo. rs

Bruno Giannella de Melo

ahahahhaha, sempre encontramos CQP, mais o que o Anderson falou até faz sentido, existe o cara que sabe o que ta fazendo no momento que programa e o que ta copiando sem saber o que está fazendo..

otávio

O problema do KISS é que muitas pessoas interpretam como se tudo deveria ser simples. A maioria das partes são complexas e chatas. Criar um projeto/arquitetura eficiente, otimizado, ortogonal, extensível e fácil de manutenção é difícil. O máximo possível é tentar simplificar o complicado com abstrações. Em nome do KISS são feitas as maiores barbaridades.

Agora se sou CQP ou VP (ou FDP ou 171), cara, estou pouco me lixando (pra não dizer um palavrão). Eu só programo, e cada um tem a visão que acha correta, como o autor tem todo direito e dever de expressar.

Darlan Serra

Concordo com o texto, pois eu sei bem oque é isso, não sou um programador, mas estou tentando ser, acho o termo CQP meio perjorativo, mas vamos lá!! O tema é quente mesmo, eu já me vi na situação de ter que copiar e colcar por pressão de cliente que não entende como funciona a coisa, e no fim das contas o maior prejudicado fui eu, ai me vi na ardua tarefa de ler bastante para programar, cursos de lógica e tudo mais, o fato é se um CQP quiser se transformar em um programador dá sim!!! Só depende de empenho, eu estou tentando ser um Programador, mas não recrimino um CQP.

TDaK

Sou programador há 4 anos mas sempre vou me classificar como CQP segundo o autor. E acho que todos deveriam sempre achar que podem melhorar seus códigos.

O artigo apresentou de forma pejorativa o CQP, também não acho que seja assim. Existem os níveis de programadores, e todo mundo já foi CQP ou ainda será se precisar aprender uma nova linguagem em que não domina todos os recursos de otimização.

Se a idéia era comparar o trabalho do sobrinho do cliente que diz que programa contra um profissional devidamente qualificado, até faz sentido os termos utilizados. Mas talvez o “Cara que Acha que Programa” fosse mais adequado.

Mesmo assim, é como o engenheiro civil menosprezar o trabalho do mestre de obras. Por um lado faz sentido, por outro, são realidades e produtos totalmente distintos. Um pedreiro pode construir ótimas casas, mas nunca um edifício inteiro.

    Concordo com TdAK , afinal em desenvolvimento , estamos sempre aprendendo novas soluções e linguagens e no momento do aprendizado somos CQP e quando vamos pegando experiencia começamos a ser VP. A vontade da pessoa e a experiencia e a sua base logica, um CQP para ser um VP em qualquer linguagem e soluções.
    Pois eu era VP em java até conhece o Spring framework , agora sou CQP

    William Bruno

    No caso, o ponto que vcs não entenderam é: “O CQP não acha que deve melhorar o código dele”. O CQP está estagnado, não melhora, apenas faz, e não liga de não estar bem feito.

    Se vocês estão indo atrás, estudando e melhorando, então não são CQPs.
    Faltou interpretar melhor o texto.

    William Bruno

    João Silva, vc precisa urgentemente de umas aulas de interpretação de texto.

Maykonn Welington Candido

@William Bruno Entendi perfeitamente o que quis dizer. Está de parabéns.

elir

Todos nós somos um CQP,ao nos dicarmos a linguagem de programação e horas de estudos sabemos que não estamos aptos a que vai vim neste mercado de TI, eu programamo há 4 anos, 1 e meio de carreira me dediquei a programação front end e agora estou indo para a programação back end com o intuito em querer apreender e passar um pouco do meu conhecimento aos demais nesta longa caminhada, Eu ainda não me considero um programador de Verdade pelo fato de estar apreendendo..

até mais

elirweb a caminho da web

Matheus

Texto muito bacana! Resumindo, não podemos é estagnar!

Matheus Brito

Muito bom o texto, só acredito que os termos foram um pouco trocados, porque pensando da seguinte maneira: Um VP na verdade é um desenvolvedor e um CQP é um CQP e pronto, ou ele transcreve pra uma linguagem de programação ou ele copia e cola códigos por ai.

Abs willian

Igor Pereira

Sou um CQP nato, e muito preocupado com isso, preciso tomar vergonha na cara e aprender de verdade. as consequencias do copie e cola ja esta batendo na minha porta. e eu sei q sao as piores possiveis. Galera, estou realmente mto preocupado com isso rs. o negocio ta tao feio para o meu lado que estou quase sendo um bacharel em Sistemas de Informação,e reconheco que ainda tenho enormes dificuldades de OO. é momento de refelexao :(

Julia

Só críticas e mais críticas? Quero ver fazerem melhor… existe sim essa diferença, confesso que ainda sou uma MQP(menina que programa)… comecei a 2 meses, sozinha e nem conhecia toda essa rede, concordo totalmente com texto!
Parabéns…

Thiago Fassina

Se todos tivessem consciência do que esse texto diz, a profissão seria muito mais valorizada. Existe uma cultura que faz as pessoas acharem que escrevedor de código (que qualquer um pode ser) é a mesma coisa que programador.
Pra que pagar por alguem que pensa se ta cheio escrevedor de código barato por aí?
Ótimo texto, cara.

Henrique José Pires Barcelos

Para falar a verdade, eu sou um cara que tenho uma vontade enorme de me acomodar.

Dia após dia eu planejo chegar a um estado no qual meus códigos ficarão perfeitos (do meu ponto de vista, pelo menos) e eu não precisarei mais estudar, reescrever blocos inteiros, partes complexas de um sistema.

Quando esse dia chegasse, eu só precisaria mexer em um arquivo de configuração ou outro e entregar o projeto para o cliente.

Acho que todos no fundo, no fundo gostariam disso.
Mas a triste e cruel verdade é que 1 mês depois de ter escrito aquele pedaço de código que parecia ter sido escrito pelos deuses da programação você olha para aquilo e fala: “Que m**da eu tinha na cabeça quando eu escrevi isso?”.

A verdade é que quando se trata de computação em geral não existe o “perfeito”, o “vamos parar por aí, porque está ótimo”.

Quer um exemplo? O todo poderoso Google é um exemplo de empresa onde o “Make It Better” é o primeiro princípio. O mecanismo de busca que praticamente fez a empresa é reinventado dia após dia. É por isso que a imensa maioria das buscas no mundo é feita através dele.

E então? Quem somos nós para nos acomodar? Recolhamo-nos a nossa insignificância e enfiemos nossa cara nos livros/e-books/tutoriais/etc. para fazer nosso código (ainda) melhor.

Essa busca incessante por melhorias foi um dos fatores que me fizeram desistir de seguir carreira nessa área, apesar de gostar muito, na faculdade percebi que quando se torna obrigação, a coisa fica chata, massante. Prefiro manter a programação como um hobby e fazer outra coisa na vida, mesmo tendo (se tudo correr bem) um diploma de graduação na área.

William

Caraca, nem sei como caí aqui, mas deixa eu postar algo… tenho mais cabelo branco que a maioria de vocês. Já são algumas décadas nessa.

Concordo com o post do xará. O que já vi de nego lambão, porco, preguiçoso, putz… tem vários níveis de programador, e sem dúvida podemos dividir entre os resolvedores e pesquisadores, entre os copiadores e os desenvolvedores, entre os bons e os fracos.

Sempre seremos bons em algo e fracos em outras coisas. O que falta é humildade nesta profissão e vontade de aprende coisa nova rápida. Ôh se falta…

    William Bruno

    Obrigado por comentar xará.

    Não tenho tanta experiência qnto você ainda, mas eu quis com esse texto tentar mostrar pra essa garotada de hoje em dia, um ponto muito importante, que alguns relutam em não perceber.

Mateus Fumuassuca

William Bruno, ai mostras que é só sendo humilde é que se chega lá. porque pelo que escreveste, para um entendedor meia palavra basta. Por isso o melhor é exercer cada tarefa o melhor que a ultima. Quem é atento aprendeu muito com o teu post. Valeu e força ai continua porque estás indo bem.

Juvenal

Concordo contigo, William. Falta humildade nos programadores.

Só não concordo com uma coisa: creio que todos nós somos “caras que programam”.

Mesmo criando um código maravilhoso, coisa linda de deus, um outro profissional pode ler ele e nos xingar, dizendo que não sabemos programar.

Tudo é ponto de vista.

    William Bruno

    Então Juvenal, só são CQPs, aqueles que “não acham” que devem melhorar.

    Superado isso, vc deu um passo para ser um VP.

    Juvenal

    Então, achei excelente o seu texto, William!

Leandro

O trollzinho Joao Silva fez-me rir demais. Ganhei meu dia! João volta pra escola, pois ao citar o outro artigo vc só complicou-se! hauhahauahauahu

Conheço dois caras que programam há quase 20 anos que são CQP. Quase tive problemas cardíacos ao trabalhar fazendo manutenção nos sistemas deles. Eram códigos replicados em várias partes do sistema, totalmente feito na moda Go Horse Process.

APW

Concordo com o texto do Wiliam, existem sim esse tipo de programador e outra… qualquer um entende um codigo sujo, mas a questão é simples, quando vc tem um codigo sujo pra corrigir,,, uma tarefa que deveria levar algumas horas, pode virar dias, por simplesmente o codigo ser totalmente POG, sem nenhum cuidado com padronizações ou ate mesmo alguma forma de documentação do mesmo…

Paulo

Códigos de linguagens alto nível, devem ser escritos por humanos e para humanos. As máquinas entendem, tanto códigos bem escritos, quanto códigos ruins, mas e você no futuro?

Vishhh num precisa dizer mais nada.

Danicco

Lendo alguns dos comentários, você percebe também que os que programam não entenderiam sobre o assunto…

Se você não entendeu o artigo ou acha que é besteira, é porque você é um cara que programa, e não um programador.
E você provavelmente não vai se importar com isso, porque se você se importasse com a qualidade do que você faz, você seria um programador, e não somente um cara que programa…

Bruno Barbosa

Caro William Bruno,

Parabéns pelo artigo, está excelente!

Só uma dica, totalmente OFF do artigo? Don’t feed the trolls… =)

Abraços.

dwalisson

Vejam: http://www.youtube.com/watch?v=P3NpHryB-fQ

E agora, “vamos discutir”?

Saulo Siqueira

Concordo plenamente com o artigo. Sempre pensei da mesma forma e ainda penso! Levo uma filosofia de vida da seguinte forma: Não é a linguagem que torna o programador, más sim o programador que torna a linguagem! Digo isso porque estou cansado de ver developers Java que só sabem programar java. Eu sou um devel multi, programo na linguagem que for necessária e se eu não souber eu aprendo! Show de bola o artigo! Parabéns!

Eder

Parem de usar esses termos escrotos, “CQP” e “VP” não existem. Ou um “verdadeiro programador” não é um “cara que programa”? Não faz o menor sentido. Enfim… nesses 3 anos que atuo como DESENVOLVEDOR, já copiei e colei sem entender nada e fiz funcionar no tranco, e já virei noite refatorando. O problema dessa área é que geralmente as pessoas que falam tanto de “código lindo” raramente são as que metem a mão na massa.

viktron

Cara quanta linguiça, e tão pouco conteúdo. Ou vc estudou ou não estudou. Simples, isto é o que define um profissional dos demais. Não existe atalhos, que quer ser profissional tem que estudar, fazer faculdade. Mas e vc, só filosófa, ou faz o mundo acontecer?

    William Bruno

    Eu faço acontecer, me acompanhe no meu blog ou twitter, e verá.

      Cornélio José Wiedemann

      tu nem sabe fazer um for listando numeros primos
      en~tao chiuuuuuuuuuuuuuu

Daniel

Eu concordo com o que o William Bruno escreveu. Existem os que se acomodam no seu “ponto de conforto” que esquecem que o mundo gira e a tecnologia se renova diariamente, exigindo constantes atualizações e novos aprendizados.

Estou vinculado a este meio desde o início dos micros CP500 e suas constantes evoluções. O que mais vi nestes anos todos foram softwares impossíveis de se fazer manutenções, sem que fosse preciso reescrever longas linhas de códigos e, alguns, reescrever todo novamente.

Conheci um profissional (engenheiro de software) com toda a formação acadêmica na área (com doutorado no exterior) e trabalhando em uma grande software house nacional com inúmeros cursos na Microsoft que não conseguia resolver uma questão simples num programa no qual ele fazia manutenção.

Num treinamento onde este profissional ministrava uma palestra sobre o programa por ele mantido, um acadêmico recém formado (analista de sistemas) e com certificações da Microsoft questionou-o sobre a solução para o referido programa. Ele respondeu que não era possível. O ex-acadêmico simplesmente disse-lhe que era muito simples e fácil implementar a solução. E a descreveu.

Na próxima versão do programa lá estava a solução apresentada pelo acadêmico. A diferença entre os dois que quero ressaltar é a mesma que o William Bruno destacou: falta de humildade em alguns que veem a si mesmo como se estivessem num pedestal ou num trono, inatingíveis pelos demais mortais.

Parabéns pelo artigo!

Juan Pedro Amaro

Eu acho que, em qualquer profissão há aqueles que fazem o melhor ao seu alcance pelo simples fato disso ser o certo a se fazer. e há aqueles só fazem as coisas por que tem “alguém mandando”. Acredito que essa diferença de atitude que gera as características citadas no texto.

Hudson Silva de Souza

Acho que todos nós temos um pouco dos 2 lados. Há dias, ou em certas situações todos já tiveram que desenvolver um trabalho “porco” para quebrar o galho temporariamente e esse quebra galho se perpetuou por muito e muito tempo.

Sempre temos a aprender e sempre temos o que ensinar. Ninguem nasce sabendo e não é no mundo da programação de sistemas que seria diferente.

Frederico Chevitarese

Um grande problema entre os programadores é o ego.
O cara sempre acha que o outro programador é um lixo, que o código dele é o “mais melhor que ta tenu”.

Já trabalhei com gente assim. Quando comecei, achava que um cara que trabalhava comigo programava d+.

Quando ele saiu e eu tive de “assumir” o sistema, eu fui ver que o cara era um falastrão e que até programava, mas não conhecia nem o mínimo da linguagem à qual ele dizia que era o FUCKING FODA.

Então, eu não acho que o termo foi pejorativo. Acho que foi um alerta. Sempre temos que buscar melhorar.
Sempre temos que estar abertos à críticas e procurar deixar os códigos organizados e comentados para o próximo que virá mexer com o sistema.
Quanto à CTRL+C / CTRL+V, eu sinceramente acho que é um discussão sem sentido. Alguém por aí anda reinventando a roda? Eu programo, mas se tenho algum problema à resolver e dou uma googlada e acho alguma coisa que me da um caminho, porque é que eu não posso utilizar aquele código, uma vez que, o intuito de quem disponibiliza os códigos na rede é para que eles sejam reutilizados.
Então, CTRL+C; CTRL+V e google para mim são ferramentas de trabalho ;)

Flws ^^

Zenóbio Saraiva

Eu entendí, mas não sou nenhum dos dois casos. rsrsrsrsrsrs

Tiago Moura Brandão

Ótimo texto cara! Aprendi demais! Acho bem legal vc receber um críticas de outros programadores! Isso te faz crecer! Isso é muito importante! Deixar o ego de lado é muito importante pra tudo na vida! E vc se dá muito bem! Parabéns!

Wellington Max

Bom sou um programador em inicio de carreira, mas ja tive uma feliz experiencia em fazer um sistema de controle de vendas, estoque, fornecedores e clientes em Java \o/

Ai ja percebi o real mundo da programação, não eh tão facil montar um codigo bem estruturado, e o melhor a se fazer e perder algumas horas montando um codigo mais limpo e de facil manutenção do que improvisar e se ferrar la na frente.

Ainda estou aprendendo muitas coisas em muitas linguagens, oque nao me torna um programador expert, mas ja sei e tenho noção de como e ser um, e oque fazer para se tornar um….programar muitoo kkkk

marcos andrade

Eu estou aprendendo a programar ,já faz três dias.Eu estou querendo aprender todas as linguagem de programação que gira em torno de uma web ,estou começando com javascript´, para depois passar para jquary e php,mas já tenho o básico de html e css.
Eu não vou mentir como eu estou iniciando nesse ramo eu copio e colo, mas de uma maneira diferente sem usar ctrl-c e o ctrl-v,eu colo com os olhos e copio teclando ou seja tudo manualmente .Por que todo iniciante deve da uma filadinha em um bom conteúdo,se não fosse assim nós nunca íamos nos tornar bons programadores.Por isso eu digo obrigado! Google por ser meu segundo professor. Nessa lista de progamadores eu entro com a sigla CD3DP [cara de três dias de programação ] kkkkk…… abração pra vcs futuros concorrentes kkkkk

Rodrigo Müller

Concordo com o texto.

A principal diferença entre o CQP e o programador é que o primeiro se dá por satisfeito quando o programa funcione, mesmo que o funcionamento seja a base de gambiarras, código repetido e mal estrutura.

Todos, quando começamos, somos CQP, e isso é natural, porque ninguém nasce sabendo. A diferença é que, conforme vamos estudando e praticando, uns percebem que existem vários jeitos de realizar uma mesma tarefa, de modos e resultados distintos. É possível escrever um código limpo, organizado e eficiente, ou um código desorganizado e que faça mais iterações do que seriam necessárias.

A diferença é que o programador fica se atualizando e respeita as boas regras de programação, procurando sempre um resultado final satisfatório.

Cornélio José Wiedemann

eu programo em html
e sei tudu , então sou programador senior em html

chora ai seus nerd 0x0

Qual a sua opinião?