Seções iMasters
Carreira + Certificações + Java

Profissionais Java – Programadores X Certificados

Vemos que a concorrência no mercado de trabalho faz uma separação cruel dos profissionais atuantes, e a grande questão levantada na área de TI é: QUAL A REAL DIFERENÇA ENTRE OS BONS PROFISSIONAIS E OS PROFISSIONAIS CERTIFICADOS JAVA? Segue minha opinião:

“Imagine a figura de uma pessoa que tem um carro e o usa constantemente. Essa pessoa todos os dias liga o carro, vai e volta ao seu destino, sabe manusear a marcha, coloca água e gasolina, troca o óleo devidamente, enche os pneus mensalmente e às vezes até troca um pneu furado quando o desagradável fato acontece. E quando esta pessoa tenta ligar o carro e ele não funciona? E quando ele está dirigindo em uma rua e o carro para de funcionar? A verdade é que essa pessoa não pode fazer nada! Ela não tem conhecimento e nem autonomia para detectar ou diagnosticar onde, quando e como o problema ocorreu. Em lado oposto, poderíamos imaginar a figura de um mecânico certificado por uma determinada marca de automóvel que além de usar o carro como a pessoa da figura um, tem o conhecimento completo de como o motor foi montado e de seu funcionamento interno. Este fato já lhe dá autonomia de rapidamente encontrar, diagnosticar e interagir na situação onde quer que ela aconteça.”

Esta é minha opinião sobre o assunto! No geral (salvo raras exceções), os profissionais que trabalham com Java podem aprender a usar muitas das tecnologias existentes e até chegar a implementar bons sistemas em arquiteturas simples. No entanto, nunca terão autonomia completa! E o que a realidade tem mostrado é que chega um momento em que eles não conseguem mais resolver determinadas situações de projetos, evoluir arquiteturas, escalar sistemas (vertical ou horizontal) etc. Precisando desesperadamente de alguém que o faça. Esse fato tem piorado principalmente com a utilização de ferramentas RAD´s e/ou especificações/frameworks que escondem detalhamentos importantes da tecnologia.

Por exemplo: tenho comprovado pelas consultorias que venho ministrado que a maioria dos programadores Java não sabem conceitos fundamentais da linguagem como a de igualdade de objetos (equals/hashCode), passagem de parâmetros com/sem referência, utilização e entendimento de características estáticas de uma classe/objeto, comportamentos e referências polimórficas etc….Outro exemplo fácil de acontecer são aqueles profissionais Java que começam a trabalhar na web (tipo com JSF) sentindo-se inicialmente muito confortáveis com a especificação de componentes visuais + as ferramentas RAD, CSS supersônicos maravilhosos…porém, quando precisam descer o nível da especificação e operar sobre algum detalhe simples de Servlets/JSP…meu Deus…o mundinho desaba na cabeça!

Estas situações normalmente não acontecem com profissionais certificados Java devido ao fato de que, além de trabalharem com a tecnologia dia a dia, acabam realmente entendendo, digerindo e concretizando conceitos da tecnologia que constroem uma base de conhecimento sólida que resulta em uma autônoma automática. Por exemplo: é muito comum uma pessoa SCWCD se sentir plenamente confortável com qualquer framework WEB MVC que venha trabalhar em qualquer empresa, independente de qual seja… pessoa sabendo a base da especificação Servler/JSP normalmente não terá problemas em se adaptar ou resolver situações de projetos que venham acontecer na ciclo de vida do determinado software.

Espero que este artigo venha servir de motivador caso você ainda não tenha começado a se especializar. Segue abaixo algum post para as certificações iniciais em Java.

Comente também

26 Comentários

gra gra

Conheço pessoas com todas as suas certificações que não sabem fazer um tres while.
Certificação é pagadinha e decoreba mesmo que o cara aprenda alguma coisa. Uma coisa é ler livro outra coisa é programar.

Exemplo JSF.
A maioria dos programadores JSF não sabem que por causa do cilco de vida do JSF ao fazer um pesquisa retornando a um data grid de cara o jsf vai fazer duas querys no banco e dependendo do componente vai fazer até cinco.

E ai como resolver esse problema não sou certificado e sei fazer de diversas formas nem no site da Sun ou em qualquer livro o forum tem essa solução hehe.

Como descobrir uma dica ativem o log completo do banco que cs usam.

    Fernando Franzini

    Como eu mesmo escrevi nos post : existe exceções de ambos os lados…mas não é regra. Sobre o comentário….as fases do ciclo de vida da especificação do JSF não existe nada com vinculo ou bind com banco de dados ! Vc deve estar usando algum componente proprietário compatível JSF !! Talvez seje por isso que vc não achou informações exatas sobre o assunto…procure a documentação do vendor do componente !

    gra gra

    Se vc usar a especificação da sun pura vai acontecer isso.
    isso acontece na fase 2 e 6.

    Fernando Franzini

    Me desculpe….mas desconheço isto no JSF.

    gra gra

    Mas como vc não conhece vc tem 6 certificações java.
    Crie um PhaseListener. Os metodos public void afterPhase(PhaseEvent pe) e imprima System.out.println(“After “+pe.getPhaseId()) e ,public void beforePhase(PhaseEvent pe) e imprima System.out.println(“Before: “+pe.getPhaseId());
    Faça um form com data grid que liste algum dado do banco, então vc vai ver onde ele faz o segundo select desnecessario não esqueça ative o log do hibernate.

Izac Cavalheiro

Se existem excessões, não havia necessidade então de este artigo existir, ou será que o artigo foi escrito apenas para enfatizar mais ainda essa polêmica de que programadores autodidatas são piores que os certificados?

gra gra

Percebo que vc é do mundo academico.
Conhceço professores com Doutorado até no japão se colocarem eles em uma cadeira em qualquer empresa perdem até para o estagiario.

    Fernando Franzini

    Sim…perdem para os meus estagiários…pq eles com 6 meses já estam com no minimo 2 certificações nas áreas de atuação !! Eu sei que que o mundo conceitual não anda no mesmo ritmo da pratica nas empresas das empresas…por sou sim…sou bem acadêmico !! Sempre tento fazer a coisa certa…mas as coisas não funcionam 100% na pratica…

gra gra

Percebo que vc é do mundo academico.
Conhceço professores com Doutorado até no japão se colocarem eles em uma cadeira em qualquer empresa perdem até para o estagiario.

Anderson F de Rossi

Concordo com o autor, pois a diferença entre o pedreiro e o engenheiro é o conhecimento, Duvido que alguém fosse contratar um pedreiro p/ derrubar uma parede em um apartamento… Derrubar paredes é fácil, mas saber se ela pode ser derrubada … é outra coisa.

Bom, para quem não entendeu a comparação serei mais explicito. Aprender como uma tecnologia funciona é relativamente fácil, saber q tal ?comando? faz tal coisa é ?decoreba? basta pesquisar e ler vários tutorias, livros, etc… coisa que todo mundo (pelo menos na área de tecnologia , e não somente TI, faz regularmente). Mas saber como tal tecnologia trabalha , quais os caminhos que ela utiliza como ela interage com o mundo em sua volta ..ai sim … a história ,e o ?quanto? aprender, muda.

A área de TI está cheia de profissionais que sabe apenas usar a tecnologia (como pedreiros e seus tijolos) mas saber qual a melhor tecnologia e ,se for o caso, qual alteração devem ser feitas nela (assim como os engenheiros e seus projetos) não são todos os profissionais que tem este conhecimento.

A certificação vem justamente informar ao contratante qual o nível de conhecimento do profissional, cabe ao contratante saber avaliar o projeto e escolher entre um e/ou outro profissional.

Uma certificação é apenas isso , nada mais que isso…

    Alexandre Rocha

    Concordo contigo, mas com ressalvas.

    Acho que a certificação serve para auxiliar quem contrata, mas prova de certificação é exatamente isso que você descreveu: decoreba.

    O problema parece estar no contratante.

    Se o apartamento é meu, eu tenho que (ou pedir ajuda para) saber se preciso de um pedreito ou de um engenheiro.

    Se tem pedreiro por aí se dizendo engenheiro é outra história.

    Douglas Amorim Pereira de Arruda

    Mas o decoreba é o que te salva de um branco. Inteligencia + memória.

Alexandre Rocha

A analogia foi muito infeliz.

A diferença de um programador (profissional) certificado de um não certificado é óbvia: o primeiro fez um prova de certificação. Nada além disso !!!

Comparar o motorista com o mecânico é o mesmo que comparar o cara que programa em casa por hobby, que não estuda, não participa de fóruns, não lê revistas e não participa de projetos com um programador profissional (certificado ou não).

Sobre o tipo de profissional que você tem encontrado nas consultorias que presta eu posso dizer que seus clientes também precisam de consultoria em rh para aprender a contratar programadores (com ou sem certificação).

Aqui onde trabalho os desenvolvedores, arquitetos e analistas (certificados ou não) são bons profissionais e conhecem bem todos esses conceitos que você citou. Se não, rua…

A minha opinião é a mesma do colega acima: A certificação serve para auxiliar o contratante.

Cleiton Francisco

“Escolher um profissional somente porque ele tem uma certificação é como escolher um motorista somente porque ele tem habilitação para dirigir”, por Carlos Brando – http://www.nomedojogo.com/2009/02/17/um-modelo-de-maturidade-para-projetos-rails-e-pratico/

    E se vc não tem mais parâmetros, vc vai escolher um motorista sem habilitação?

Marco Túlio Teixeira

Bom, acredito que analogia foi meio pesada.
Existem tipos e tipos. Acho que fica claro que a preparação para certificação, se bem feita, abre a mente do profissional. Mas, a maioria é ‘decoreba’.
Trabalho em uma empresa que praticamente todos são certificados e já vi muita coisa dificil de decifrar.
Na minha opnião é muito útil ter uma certificação e ajuda muito, mas não “salva o mundo”.

Leonardo De A. Pereira

Há alguns anos atrás, me perguntei: “Porque eu programo”?
E as respostas vieram…
- “Porque é legal”;
- “Porque me dá status de alguém que entende de tecnologia (mesmo que pouco, como a maioria dos programadores)”;
- “Porque eu escolhi isso pra minha vida e ganho bem fazendo isso”;
- “Porque isso…”;
- “Porque aquilo…”;
- “Porque aquilo outro…”;

Os anos foram passando e eu fui amadurecendo, aperfeiçoei minha forma de pensar sobre as coisas, quebrei velhos tabus e passei a ser mais honesto comigo mesmo.
Então me perguntei novamente: “Porque eu programo”?
As respostas dessa vez deixaram de ser aquelas infantis e prepotentes de outrora.
Na verdade, a única resposta que veio foi: “Para resolver problemas”.
Tentei buscar outras respostas, mas não fui capaz, então aceitei a seguinte verdade:

“Não há razão para um programador programar se não for para resolver problemas”.

Qualquer coisa que ele faça que não resolver um problema será considerado perda de tempo.

Desse modo, uma certificação que deveria existir seria aquela para certificar se o profissional é ou não capaz de resolver problemas.

Se o cara sabe fazer um while dentro de um for junto com 5 switchs e mais um monte de coisa, então mostra que ele sabe os fundamentos de uma linguagem qualquer e sabe usa-la. Mas será que sabe resolver problemas?

Não me entendam mal, não quero desmerecer os profissionais certificados, só acho que eles estão se certificando na coisa errada. Programar é algo simples, programar bem é algo simples e demorado, agora resolver problemas é outro departamento.

Se eu fosse dono de uma empresa que trabalhasse com JAVA e recebesse um currículo de:
- Um programador JAVA com todas as certificações JAVA.
- Um programador PHP com certificado de ‘solucionador de problemas’.

Se eu contratasse o primeiro, teria que treiná-lo para poder resolver problemas, oque pode demorar bastante.
Se eu contratasse o segundo, teria que treina-lo para aprender a linguagem JAVA, oque pode demorar também.

Com meu pensamento atual (que é passível de mudança mediante pontos-de-vista relevantes) eu contrataria o segundo, pois creio que aprender uma linguagem de programação é muito mais simples e rápido do que aprender a resolver problemas.

Claro que se aparecesse um programador JAVA com certificado de ‘solucionador de problemas’ e certificados JAVA eu iria contratar ele ao invés dos dois primeiros…

    Fernando Franzini

    A SCJD e SCEA são as certificação que sun definiu para levantar este perfil de profissionais com foco que resolver problemas reais – estilos arquiteturais, desisões de projetos, escalabilidades, segurança, clareza etc…veja a conteúdo da prova todas as informações…

Fernando Franzini

Eu respeito a opinião de todos, uma vez que cada um vive uma realidade em sua vida. Eu apenas gostaria de deixar algo que achei que estava implícito no post que agora percebi que talvez não esteje no alcance de visão de alguns…A certificação si, sozinha, SEM EXPERIENCIA E VIVENCIA NA AREA não serve para nada !!! A certificação somente serve para COMPLEMENTAR o conhecimento do camarada que trabalhara na área !! Um camarada que não trabalha com java pode tirar algumas provas no decoreba (não são todas !!)..mas sem experiencia real, não ira servir para nada !! Então é essa idéia que eu quero afirmar….atualmente algumas pessoas que não trabalham com java estão investindo nas primeiras certificações para conseguir sair na frente de outros e conseguir uma vaga no nosso concorrido mundo…acho isso legal e tal….mas a coisa só vai realmente funcionar depois que ele começar a trabalhar com a realidade no dia dia. E muito legal o comentários de todos ai !!! Vamos aprendendo e crescendo dia a dia..Aquele abraço galeraaa :-)

Camilo Lopes

bem, fernando vc falou tudo, realmente é isso que acontece no mercado, é muito comum ver programadores ai que nao sabe nem a diferenca do equals com == etc. Um cara certificado ele trabalha e estuda na essencia da linguaguem até pq as certificacoes nao estao alinhadas com nenhuma IDE ou algo do tipo e sim a tecnologia. Exemplo implementar um servlet com jsp, no NB 6 é bem simples, facil e rapido, nao precisa “pensar”muito so saber o que é um servlet e o jsp. Mas se a IDE dar pau vc conhece manipular aquilo a nivel de código, consegue entender como melhorar a comunicacao do jsp com servlet? bem a certificacao de scwcd como citado ela prepara o programador para ser realmente um desenvolvedor para web e que ele vem se adaptar a qualquer coisa que der seja um framework da empresa ou outro qualquer. Pq ele conhece a estrutura web e nao uma estrutura RAD. A partir que vc sabe a estrutura web vc pode usar RAD, ja que se o nivel amanha cair vc nao poe a mao na cabeça! essa é a diferenca realmente de profissionais certificados eles sabem o porque das coisas. claro que há profissionais nas certificacoes tao bom qto os certificados, mas isso nao é muito, senao o mercado nao sofriria com a falta de profissionais como é a sitaucao real.

Lucas Vieira Filho

Acho que vocês estão misturando coisas que não estão diretamente relacionadas: profissionais certificados e bons profissionais.

No grupo de profissionais que conheço (não apenas Java, mas em outras linguagens/plataformas) há profissionais ruins não certificados, profissionais ruins certificados, profissionais bons não certificados e certificados.

Entre os bons há quem simplesmente não dê a mínima para tirar uma certificação (e não são poucos entre eles).

Acho mais fácil chamar de raro estes “bons profissionais” certificados ou não.

Renan Oliveira

A certificacao é apenas uma prova que o profissional conhece a linguagem. Pode ser um diferencial para para participar de processos seletivos (quem tem certificacao e nao precisa fazer o testizinho basico sobre a linguagem) em empresas que valorizam a tal da certificacao (um bom exemplo empresas que disputam por licitações), pelo menos ela acha que teoricamente a pessoa tem tal conhecimento. Mas na verdade o que realmente avaliam é a experiencia (independente se possuem certificacao ou nao), ou seja quais projetos participou, tecnologias utilizadas, tempo, etc.
Maus profissionais sempre existiram no mercado, e concerteza não consiguiram uma estabilidade no mercado de trabalho.
Bons profissionais que nao possuem certificacao, na minha opiniao devem tira-la apenas para ganhar um titulo que prove o que ele já sabe.

    Ale Lima

    Renan concordo com você. Por exemplo hoje estou programando em java e não me considero uma profissional qualificada em java, no entanto estou estudando e já aproveitando esse estudo, nada melhor que testar fazendo a certificação. E, caso eu passe não será certo que saberei resolver qualquer problema dentro do que se pede na certificação.

    Assinado: Uma desenvolvedora java (sem certificação)

Igor Borges

Bom pessoal, este tópico é interessantíssimo bem como polêmico. Pois afeta diretamente o “Ego” que é algo realmente super(), tratando-se de desenvolvedores. Eu trabalho com tecnologia Java há mais de 6 anos, e tenho certificações tanto da IBM quanto da SUN em diversos aspectos desde Programmer simples até sobre Arquitetura de Sistemas. E baseado nesta experiência e no que vejo em ambientes de trabalho, é que aqueles que se dedicam às certificações, têm um interesse maior em conhecer aprofundadamente a tecnologia, coisa que o profissional que não se importa com este detalhe não tem. Mas isso não torna o primeiro melhor que o segundo, pois cada um tem suas individualidades, e principalmente disponibilidade de tempo. E em tempos modernos onde o Google está ai para tirar quaisquer dúvidas, não vejo as pessoas que não tem certificação inferiores (Em tese). Porém devem estar sendo constantemente observadas por algum profissional que as tenha. Para que o oriente o que deve ser feito mais precisamente.

Mas o fator de primordial importância é o interesse em aprender, sendo certificado ou não. Pois mesmo os certificados não sabem tudo sobre a tecnologia.

    Fernando Franzini

    Melhor ? Melhor como ? Ninguem é melhor que ninguem !! Todos temos as mesmas capacidades como seres humanos…..mas nem todos estão afim de investir em estudos…..hehe
    Discordo completamente….a certificação melhora o individuo em varias tópicos relevantes para a empresa :
    1. Conhecimento.
    2. Tomada e decisão.
    3. Produtividade.
    4. Qualidade.
    5. Relacionamento.
    6. Motivação
    7. Valorização.
    Exitem outros…mas esta suficiente por hora.
    A paz =D

Qual a sua opinião?