Você não vai querer um programador Java

Muito menos um programador C#, Delphi ou Visual Basic. Para falar a verdade, o que você quer não é nem mesmo um programador Python, Ruby ou Lua.

Este texto também não é um elogio aos programadores Haskell. Você também não vai querer um desses.

Se você tem um problema para ser resolvido com algum programa de computador, o que você precisa é de um programador. Simples assim.

Ninguém precisa da especialização em nenhuma linguagem ou plataforma específica para começo de conversa, mas para programar computadores com certeza você vai precisar de um programador. A verdade é que ele vai precisar de muitas outras habilidades além de proficiência com um compilador, mas se você contratar alguém que não sabe programar, terá uma bela enrascada em mãos. Não importa quantos analisadores de problemas e desenhadores de retângulos sua equipe tiver, se eles não puderem conseguir que um computador faça alguma coisa, seu projeto vai ser um fiasco na certa. A não ser — é claro — que os retângulos possam ser transformados de algum modo em instruções detalhadas executáveis por um computador.

Mas nesse caso você teria programadores. Só aconteceria deles programarem com retângulos, mas ainda assim seriam programadores.

Conhecer uma única linguagem de programação não é um empecilho somente porque muito provavelmente ela não vai mais ser a melhor ferramenta para o trabalho daqui a três ou quatro anos, mas porque mostra uma incapacidade (ou falta de vontade) para aprender. O que nenhum cliente deveria querer são programadores altamente especializados a ponto de conhecer uma única linguagem de programação. Ao invés de um programador especialista na plataforma da moda de hoje, o que você precisa é de um que seja capaz de aprender as de amanhã. O que um bom programador mais precisa, como qualquer bom profissional, não é apenas saber usar as ferramentas do presente, mas ter capacidade de aprender as do futuro.

Não se deixe enganar também por programadores de retângulos, mesmo que eles gostem de ser chamados de modeladores, arquitetos ou de qualquer outro nome que esteja na moda na época. Linguagens visuais também são apenas linguagens. São linguagens que, por serem gráficas, podem parecer independentes de linguagem, mas não deixam de ser linguagens. Não importa que o programador desenhe ao invés de escrever, se ele quis se limitar a desenhar, deve ser porque não quer nem se dar ao trabalho de aprender a escrever.

Especialização em excesso além de tudo cria ilhas muito concentradas de conhecimento. Por algum motivo inexplicável, muitos programadores especializados acham que jogam em times adversários, que estão em trincheiras diferentes e que tudo é uma grande guerra. Se quiser experimentar isso, tente publicar uma notícia que simplesmente cite Ruby (nem precisa ser o tema principal) em um fórum Java e observe o que acontece. O triste é que eles acabam isolando a si mesmos dentro de uma comunidade pequena e perdem de aprender o que as pessoas de fora poderiam ensinar.

19 Responses to “Você não vai querer um programador Java”


  1. 1 Daniel F. Martins 05/set/2007 às 20\0853

    Compartilho do seu ponto de vista, mas não achei interessante a generalização feita. Digo isso pois a mesma coisa costuma quando se posta sobre Java em um fórum de Ruby, mesmo que numa menor proporção. Ah, e vale lembrar também que, muitas dessas “brigas” surgiram em discussões “pointless” do tipo ‘Ruby vai derrubar o Java?’. :S

    O que eu quero dizer é que existem xiitas de ambos os lados; tem gente que fala que Python rulez e o resto é lixo. O mesmo certamente ocorre com Ruby e com Java. Mas vale lembrar que nem todo mundo é assim… ;)

    []s

  2. 2 Rodrigo Urubatan 05/set/2007 às 22\1049

    Daniel, ruby X java foi só o exemplo escolhido, isto acontece em quase qualquer situação em que um monte de gente saiba apenas uma coisa (no caso uma linguagem de programação) e alguem chegue la e apresente outra, a maioria delas não vai nem prestar atenção para ver se é melhor, pior ou simplesmente diferente, vai sair baixando o pau de uma vez, por medo de aquela novidade faze-los ficar obsoletos.

  3. 3 Carlos Brando 06/set/2007 às 01\0109

    Rodrigo, excelente texto. Compartilho do mesmo pensamento. Existem muitos “programadores” por aí, mas nada paga uma pessoa que gosta do que faz…

  4. 4 thiagoarrais 06/set/2007 às 02\0248

    Daniel, tenho certeza que isto ocorre com toda linguagem e plataforma imaginável. O exemplo serviu para argumentar simplesmente que isto não tem nenhum sentido. Linguagens são somente meios para os bons programadores, não características que os definem. Faz tanto sentido falar em programadores Ruby (ou Python, Haskell, Io ou Java) quanto em escritores OpenOffice (ou Writely, Wordstar ou MS Word). Só acontece deles estarem usando uma ferramenta em um dado momento para exercerem sua profissão.

  5. 5 Thiago Silva 06/set/2007 às 04\0456

    “[…] se ele quis se limitar a desenhar, deve ser porque não quer nem se dar ao trabalho de aprender a escrever.”

    Hahaha! Divertidíssimo!

    “Do que sabe o inglês que só conhece a Inglaterra?”

    []’s

  6. 6 Anonymous Coward 06/set/2007 às 14\0202

    Pra ser do contra:

    1. Eu sou um programador Java. Eu sei só Java? Não, mas é essa a plataforma em que deposito a maior parte dos meus esforços de aprendizado (em termos de linguagem). Isso porque não basta você saber a sintaxe e as bibliotecas básicas pra você realmente ser um programador eficiente em uma linguagem. Então, eu posso até saber Java, Ruby, Groovy, Python, Perl, Lisp e Prolog, mas é humanamente impossível ser realmente eficiente em todas elas. Isto me limita? De certa forma, a minha carreira é direcionada a projetos que envolvem Java, mas é claro, que caso seja necessário mudar de ‘ramo’, nada me impede de mergulhar em outra linguagem que me pareça atraente. Mas eu iria realmente *mergulhar* nela, e não sair ‘pincelando’ dezenas de linguagens diferentes.

    2. Óbvio, saber uma linguagem X não é suficiente se você não souber programar. Programar envolve muito mais que simplesmente sintaxe e bibliotecas. Mas conhecimento (profundo) da sintaxe e bibliotecas também são muito importantes, você só conhece as reais possibilidades de uma plataforma/linguagem depois de muita experiência. Importa se eu sei ou não programar em Haskell, se eu consigo realizar o meu trabalho bem? Se eu consigo resolver problemas que envolvem detalhezinhos do funcionamento interno de um framework, que eu só conheço por causa da minha especialização em uma única linguagem?

    3. E, antes que me queimem na fogueira, claro, saber *projetar* uma aplicação é extremamente importante. E não me refiro ao ‘arquiteto’ (The Architect) que só desenha diagramas, mas todos os níveis de projeto, desde o ‘macro’ (arquitetura) até o ‘micro’ (projeto de interfaces de objetos, fatoração do código, etc.). Saber entender requisitos, se comunicar com a equipe, dar importância à qualidade. No fim das contas, ‘programar’ envolve tanta coisa, que uma discussão sobre saber uma ou vinte linguagens de programação nem é tão relevante assim.

  7. 7 Reign of Erebus 06/set/2007 às 14\0237

    O que o mercado precisa são de pessoas capacitadas em lógica de programação. A linguagem é só um meio de transformar a lógica (a boa lógica, bem fundamentada) em aplicações.

    Uma programador que recrimina outro apenas porque esse gosta da linguagem X ao invés da linguagem Y com certeza não é um bom programador. O bom programador antes de tudo tem que aprender a lógica por trás da programação de computador, para só então encontrar uma linguagem com que se sinta confortável para programar (essencial) e que resolva o problema da aplicação que ele deseja criar.

    Cutucando um pouco a onça, geralmente Java não é a solução ideal para nenhum problema que eu tenha experimentado, mas nada substitui um bom programador Java, que resolva problemas rapidamente e com um mínimo de estabilidade.

    Quando me perguntam em que eu programo, eu respondo: computadores! Aí eles perguntam “mas em qual linguagem?”, e eu respondo: a que resolver!

    Se todos pensassem assim, com certeza muito conhecimento teria sido difundido.

  8. 8 Elias 06/set/2007 às 16\0441

    Eu programo naquilo que me dar dinheiro!!! Mas prefiro o java, ela tá quebrando muitos paradigmas e alguns feudos. Álias através dela que hoje o programador não é simplesmente um programador. Faz dele um pesquisador, contribuite da própria linguagem. Há muito tempo atrás quando vc estava limitado a uma ferramenta te dava, se era pra fazer algo que a ferramenta não tinha vc comprava uma biblioteca. Ou pra cada tipo de problema tinha-se uma linguagem diferente. Deixa prá lá tou falando demais…

    Vida longa ao Software Livre.

  9. 9 diskchocolate 06/set/2007 às 21\0929

    O grande problema é que ninguém mais se dá ao trabalho de aprender a lógica, apenas a sintaxe. Eu fiz curso técnico de informática e estou tendo algumas aulas de computação na graduação, e posso dizer que o ensino de lógica de programação em ambas as situações é pífio – quase inexistente. O que eu sei é mais por paixão pela lógica do que pela boa vontade dos professores.

    Ao invés de terem uma boa base, a maioria dos ‘programadores’ de hoje começam por curiosidade, olhando exemplos e livros de programação e digitando sem pensarem antes.

    E falar e programar são duas coisas que não deveriam ser feitas sem alguma consideração prévia.

    Sintaxe é sintaxe, aprende-se em qualquer livro de programação que se preze. Aprender a pensar de maneira lógica são outros quinhentos…

  10. 10 fabiocesar 27/set/2007 às 12\1202

    Concordo com seu ponto de vista, Thiago. Mas não é bem assim que o mercado age. Certa vez conversei com um ex-gerente meu sobre isso, no sentido de convencê-lo a usar a linguagem que melhor se adaptasse ao ambiente e à necessidade da solução do cliente. Exemplo: um cliente quer um software para windows, e não tem (nem quer) outros SO que precisem rodar o sistema. Por que não usar .NET? Ele foi até simpático, mas pontuou algo que não dá pra fugir: É muito difícil hoje construir os projetos de software com toda a complexidade que eles tem sem utilizar os frameworks, APIs, etc. É um fato que quem aprende um framework de ORM em Java necessariamente vai levar um tempo para fazer o mesmo com um outro framework em python por exemplo, e pra muitas empresas, esse tempo de aprendizado pode ser negativo para o projeto.

    Por isso, acho que não é problema o cara se especializar em uma linguagem, mas acredito que ele tem de estar aberto ao diálogo e até a aprender novas linguagens. Isso só abre o leque de opções pra ele, tornando-o um profissional mais valioso.

  11. 11 Guilherme 27/nov/2007 às 11\1113

    Concordo em grande parte… mas assim como você lamenta o comportamento do pessoal do Java diante outra linguagem, eu lamento o comportamento das pessoas que preferem a escrita diante do desenho. Acho o desenho uma grande utilidade, e quem acha que isso é modismo (ou qualquer outra coisa) tem uma grande limitação.

  12. 12 thiagoarrais 27/nov/2007 às 11\1137

    Guilherme, o mundo seria um lugar melhor se isso acontecesse só com o pessoal de Java. Tudo que teríamos que fazer seria trancafiar esses facistas ignorantes em uma jaula qualquer e deixar que eles convivessem sozinhos em um mundo de faz-de-conta.

    O problema é que o comportamento é muito mais abrangente. Acontece com todas as grandes linguagens. Por algum motivo desconhecido, as pessoas parecem gostar de ser intolerantes e acabam perdendo de aprender muita coisa por causa disso. Como acontece com todo tipo de linguagem, não podemos chamar ninguém de facista ignorante sem chamar todo mundo.

    Quanto aos desenhos, eles são úteis para muitas coisas. Mas são linguagens apenas e assim como qualquer outra linguagem, são mais apropriados para algumas coisas do que para outras. Há áreas em que as linguagens escritas são simplesmente mais produtivas e o inverso também é verdade. Cada uma das mídias tem muito a aprender com a outra. Limitação mesmo é escolher uma das duas exclusivamente e ignorar o que acontece do outro lado.

  13. 13 Baduel 28/nov/2007 às 18\0644

    Rs, não sou programador ,fiz um curso de lógica e estudo de forma autodidata…Pois sou da area de Humanas mas programar ou (tentar faze-lo) me ajuda no raciocionio logico e com minha pequeninissima experiencia gostaria dizer so uma coisa:
    A linguagem(toda e qualquer que seja) e apenas um meio e não um fim,com objetivo claro de expor algo…..E realmente acho ridiculo esta discusão linguagem a ,b ou c e superior mas acredito eu que o redator quis expor que quem programa nesta linguagem como python(que a linguagem que eu estou estudando) e um programador por que este tem que demonstrar o codico da linguagem de forma clara e python e quase sempre somente a logica da programaçao

    Ps: Desculpe pela falta de acentuação

  14. 14 Bruno Carvalho 08/jan/2008 às 16\0406

    Thiago,

    Compartilho de sua opinião. Porém, infelizmente a infra-estrutura requerida para rodar softwares acaba fazendo com que empresas pré-definam a tecnologia que será utilizada, mesmo que não seja a melhor pra maioria dos problemas que seus softwares irão resolver.

    É o que acontece com Java hoje. Uma farm de 8 computadores rodando WebLogic, que é pago, em cima de plataforma Sun faz com que a empresa queira que todos seus projetos sejam Java.

    E se já é difícil encontrar programadores Java, imagina encontrar programadores. Eu acho que o livro “My Job Went to India” deveria ser obrigatório pra todos os programadores de uma plataforma só hehe.

    Um abração,
    Bruno Carvalho

    PS: Continue escrevendo :)

  15. 15 Daniel Maltarolli 12/abr/2008 às 15\0320

    Realmente, se o cara é bom programador, é bom em qualquer linguagem. Pode passar por alguns apertos na hora de aprender os detalhes e as artimanhas de um novo ambiente, mas vai fazer um trabalho bem feito, não importa como.

    Na minha prática, quando eu preciso contratar um recurso para um projeto com foco em banco de dados, independente da linguagem de programação eu anuncio uma vaga para programadores com profundo conhecimento de SQL e qualquer um dos principais SGBD do mercado (Oracle, SQL Server, DB2, MySQL, etc.) e de preferência conhecimento de modelagem de dados.

    Sim, SQL e DER são meras linguagens, claro, mas eu preciso de um indício qualquer que o sujeito tenha qualidade (lógica) de programador. No meu critério pessoal, quem tem bom conhecimento de bancos de dados relacionais sabe pensar mais abstrato.

    Tive experiências muito gratificantes ao trabalhar com gente que não conhecia determinada linguagem ou metodologia de programação mas tinha bastante bagagem em outras linguagens e essa tal qualidade fundamental de ser programador. Essas pessoas têm muito mais a somar que aqueles que estão preformatados, condicionados a trabalhar de um só jeito.

  16. 16 MarcelPiva 18/jul/2008 às 15\0329

    Programar é uma arte!


  1. 1 Mais sobre aquele programador Java que você não quer « Mergulhando no Caos Trackback em 08/set/2007 às 14\0233
  2. 2 Felipe Camilo » Você não vai querer um programador Java Trackback em 27/set/2007 às 12\1218
  3. 3 Mergulhando no Caos » Mais sobre aquele programador Java que você não quer Trackback em 11/set/2008 às 18\0638
Comments are currently closed.




%d blogueiros gostam disto: