Programador e Desenvolvedor

Diferença entre programador e desenvolvedor

Quem nunca parou para pensar, a diferença entre programador e desenvolvedor? Eu já!

Pesquisando na internet, achei artigos nada interessantes, falando que programador não pensa e que desenvolvedor cria coisas sem sentido só para por charme ao sistema e coisas do tipo.

Assim cheguei a conclusão:

Programador

Alguém que tem conhecimento específico em linguagens de programação,  informática no geral e matemática. Cria funcionalidades para o sistema, elabora ideias para o projeto em si.

Desenvolvedor

Tem conhecimentos em programação também, mas geralmente não tem conhecimentos aprofundados em cálculos matemáticos, além de ter conhecimentos fora da caixa como negócios; cria ideias fora da caixa (computador).

A grosso modo é isso, mas cada um pode ter sua reflexão. No geral os dois são parecidos, não é porque você é programador no seu serviço que você não seja um desenvolvedor ou vice-versa. As palavras são apenas um rótulo, o mais importante é o seu aprendizado como ser humano.

Mas eu achei um artigo que me chamou a atenção, e vale a pena dar uma lida:

Seja um desenvolvedor, não um programador

Nos últimos dias eu estive pensando sobre essas duas palavras: Desenvolvedor e programador. A Wikipedia diz que um programador é alguém que escreve software de computador, enquanto um desenvolvedor é alguém preocupado com o processo de desenvolvimento, arquitetos de software, em um nível mais elevado.

Bem, para mim, a diferença é mais simples. O que é um programa de qualquer maneira? É uma seqüência de passos que devem ser seguidos para alcançar um objetivo pré-definido, ou para resolver um problema específico. Quando você executa um programa que sempre terá o mesmo comportamento, em outras palavras, ele vai fazer a mesma coisa de novo e de novo e de novo. E o que dizer de Desenvolvimento? Desenvolvimento é o processo de obtenção de uma idéia inicial e elaborá-la, evolui-la, para que ele atinja seu objetivo, ou seja, resolver o problema.

Um programador é alguém que escreve programas . Um desenvolvedor é alguém que desenvolve uma idéia ou uma solução . Este é um processo iterativo. Primeiro, há a ideia (ou solução); você deve então melhora-la, e se perguntar: “Isso é bom?”. Se a resposta for “Não”, então você melhora-la novamente, e repetir a pergunta sobre e sobre até que esteja satisfeito.

Quando você for um martelo tudo parece um prego” – Esse é um ditado muito famoso. Mas o que isso tem a ver com coisa desenvolvedores VS programadores? Bem, quando tudo que você vê são os problemas , você tende a olhar (e corrigir) os problemas . Da mesma forma, quando tudo o que você vê são as soluções, você tende a olhar (e pensar) sobre soluções .

Um desenvolvedor deve sempre pensar na solução . O problema está lá, ele percebe, ele sabe disso. Não há nada que ele possa fazer para mudar o problema . Mas ele pode, e irá, encontrar uma solução para esse problema .Concentrando-se em encontrar a solução , muitas vezes ele vai perguntar a si mesmo: “É uma boa solução? Posso melhorar? Devo passar mais tempo com isso? “. Os programadores, por outro lado, são fáceis de agradar. Se eles podem resolver um problema com 10 linhas de código ruim, por que deveria me importar se não houver uma solução que possa resolve-lo usando 5 linhas de código bom, claro e mais simples? Se eles podem escrever um método único e enorme, por que eles devem dividi-lo? Só porque alguém pode querer usar algumas das funcionalidades mais tarde? Bah …

Será que uma boa aparência? Definitivamente NÃO !

Não é que cada código que você escreve é ruim, mas se você, a única pessoa que o escreveu, não têm a coragem de julgá-lo, quem o fará? Talvez você poderia refatar algum método, ou alterar a ordem em que você verificar se há condições de um caso . Talvez você vai acabar gostando de seu código do jeito que está, e não mudá-lo em tudo. No entanto, você precisa julgar seu código. Se isso não é bom para você, então não é bom para todo mundo.

Por exemplo: Uma das grandes Vantagens sobre Ruby é sua Filosofia. Ao contrário de outras linguagens Ruby não irá obrigá-lo a resolver um problema com uma única solução. Por exemplo, como você pode obter o tamanho de uma matriz? [].size . Mas você também pode obter o seu comprimento [].length , ou contar quantos itens com [].count(para Ruby> 1.8.7). Para cada contexto, existe uma solução que pode ser melhor do que a outra. Não há uma única maneira de fazê-lo. Não significa que a melhor maneira será a melhor para você. E isso pode ser aplicado a qualquer língua, não só Ruby.

A coisa mais importante para aprender aqui é que o código é menos escrito do que é lido . Você vai escrever o código uma vez, mas ele vai ser lido muitas vezes, por muitas pessoas. Assim, quando você escrever um código você deve sempre se colocar no lugar de quem vai lê-lo mais tarde. Se o código não é claro, você deve deixar claro. Não basta ir adicionando alguma documentação como louco tentando explicar a bagunça que você acabou de fazer. Tente melhorar o código, refatora-lo, dividi-lo em vários métodos menores, dar um nome melhor para o método ou variável. Você vai ter um  código bom, limpo, fácil de ler, executar, e, quem sabe, você pode até reutilizar alguns desses métodos menores depois.

Basta pensar nisso: você quer ser um programador, alguém que apenas repete tarefas, a criação de código que ninguém entende, resolvendo bugs que já foram resolvidos, copiar e colar o código em todos os lugares tentando fazê-la funcionar? Ou você quer fazer um código que vai durar, não porque ele é mítico, mas porque é bom? Você quer ter uma lista de tarefas que você deve fazer, e apenas fazê-los, como uma máquina? Você não deve discutir, partilhar as suas ideias, melhorar a solução?

Seja um desenvolvedor, não um programador!

Artigo original – Developer not Programmer

E você, o que você acha? Qual sua opinião?

// Comente!

comentários