/Desenvolvimento

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

William Bruno
em Carreira

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:

A Mundipagg lança a inovadora API em REST, garantindo flexibilidade e simplicidade na integração. Conheça as nossas funcionalidades.

William Bruno

Trabalha como Desenvolvedor FrontEnd, nos horários em que não está estudando Matemática na faculdade ou escrevendo posts para o seu blog pessoal. http://wbruno.com.br

50 comentários Comente também

  1. 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!

    1. 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.

    2. 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.

    3. É 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.

    4. 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.

    5. 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.

  2. 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..

  3. 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.

  4. 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.

  5. 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.

    1. 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

    2. 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.

  6. 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

  7. 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

  8. 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 :(

  9. 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…

  10. 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.

  11. 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.

  12. 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…

    1. 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.

  13. 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.

  14. 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.

  15. 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.

  16. 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…

  17. 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.

  18. 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…

  19. 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!

  20. 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.

  21. 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?

  22. 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!

  23. 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.

  24. 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.

  25. 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 ^^

  26. Ó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!

  27. 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

  28. 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

  29. 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.

Dê Sua Opinião

O seu endereço de email não será publicado Campos obrigatórios são marcados *

Este projeto é mantido e patrocinado pelas empresas: