Modelo de prova para seleção de programador  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Aqui aplicamos prova + entrevista.

Porém, fazemos uma prova beeem diferente da encontrada na certificação. Ela é dividida em três tipos de pergunta, em ordem aleatória:
1. Perguntas que testam conhecimento da sintaxe, nos principais elementos da sintaxe que usamos: "Crie um tipo enumerado, para representar as operações de SOMA, SUBTRAÇÃO E DIVISÃO, e faça um método/função aplicar() que, dado um enum, realize a operação".

2. Perguntas conceituais, relacionados ao projeto de classes, ou a problemas comuns de programação:
"Qual é o erro do código abaixo? Podemos dizer que ele viola o encapsulamento?"



3. Perguntas de conhecimento específico que nos interessam: collections, threads e sockets, por exemplo.


O que não tem na prova: Pegadinhas de sintaxe, análise de códigos rebuscados (se tiver análise de código, seria de um que escreveríamos na prática), etc. A idéia é que a prova não faça o candidato se sentir um palhaço. Aliás, alguns que vão mal até elogiam o conteúdo da prova e pedem dicas de onde se pode estudar o seu conteúdo!

A correção também não se resume em certo/errado. Analisamos o código produzido, as observações do candidato e os cuidados que eles tomam na prova. Por exemplo, há candidatos que validam a entrada lançando exceções, outros mostram claramente que não sabem qual collection usar em cada situação (embora as vezes gerem um código funcional, mas pouco eficiente).

Na última prova, também deixamos a documentação de uma classe mais "exótica" e pedimos para o candidato fazer algo com ela. Só um conseguiu responder a questão e ganhou pontos na entrevista ao dizer que também não conhecia a classe, só soube ler o javadoc e o trail da Sun.


A prova faz a filtragem "básica". É impressionante o número de pessoas que simplesmente abandonam a prova, ou erram todas as questões, inclusive as fáceis, ou que mostram desconhecer a sintaxe do Java 5+.

Depois disso, fazemos uma entrevista com os mais bem colocados para ver o perfil da pessoa, sociabilidade, interesses, planos, etc.




O processo tem funcionado muito bem, até hoje. Curiosamente, profissionais certificados tem ido tão mal quanto os não certificados. Eles dificilmente erram as questões de sintaxe, mas não raro produzem códigos tão rebuscados quanto o das provas que eles estudaram tanto para passar. Não temos um espaço amostral grande o suficiente para dizer que isso é uma regra, mas já é um indício que ter um certificado pode não ser garantia de sucesso na contratação, caso estejam sabendo alguém que saiba programar.

This message was edited 3 times. Last update was at 24/03/2009 12:57:47


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ivo costa
JavaEvangelist
[Avatar]

Membro desde: 06/11/2007 12:07:34
Mensagens: 493
Localização: Porto Alegre - RS
Offline

Eu pareço aquelas crianças que abrem o tópico e depois vão embora.

Bom, sobre a prova eu acho certo, até porque eu não vou colocar perguntas dificeis e escorregadias, o objetivo dessa prova seria separar aos programadores dos pedreiros. Queria fazer uma prova com alguma coisa de padrao de projeto e ALGORITMO, pq tem muita gente que sabe de varias coisas de varias teorias e de varios planetas no sistema solar mas não consegue fazer um algoritmo que ache o fatorial de um número.

Por exemplo, quando eu entrei aqui tinha um cara que cuidava de um projeto de um grande cliente. Nesse projeto tinha uma página com log de acessos, para tirar o relatório de log de acessos demorava mais ou menos 20 min!!
Tava tão mal feito que o site ficava lento quando o sql estava sendo executado, o banco sentava e demorava pra entregar outras queries.
O cara foi demitido e eu refiz o log de acessos. Hoje demora uns 5 segundos.

Talvez eu deixe a prova pra lá e peça pro cara escreve uns dois algoritmos no quadro, com a galera olhando pra ele. Até pq estou sem tempo de digitá-la.

flw!

Eu sonho com um mundo melhor, onde galinhas que atravessam a rua não serão questionadas pelos seus motivos.
Formate o seu código usando as tags [code] http://www.guj.com.br/posts/list/50115.java
Faça perguntas inteligentes
[MSN]
juliocbq
GUJ Expert
[Avatar]

Membro desde: 13/11/2008 12:10:18
Mensagens: 3928
Online

Marcio Duran wrote:
Meu faz que nem faz a IBM, dá um test psicotécnico e pede pra o canditado fazer uma redação. O resto não passa de investimento e afinidade a tecnologia.



Concordo com o duran. O que precisa ser testado é a capacidade do profissional de resolver o que lhe é imposto. Se ele possui bom raciocínio.

www.citrox.com.br
Marcio Duran
GUJ Master
[Avatar]

Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline

ViniGodoy wrote:Aqui aplicamos prova + entrevista.

O conceito de desenvolvimento é o que é entendido do negócio para a implementação , e não ao contrário, poderia lhe questionar uma prova aplicando algo tão simples e um ambiente extremamente desconhecido, e isso não me iria somar em nada.

Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Marcio Duran wrote:O conceito de desenvolvimento é o que é entendido do negócio para a implementação , e não ao contrário, poderia lhe questionar uma prova aplicando algo tão simples e um ambiente extremamente desconhecido, e isso não me iria somar em nada.


Ok, mas do que adianta você contratar um programador se nem a sintaxe básica da linguagem ele sabe?

@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
ViniGodoy
Moderador
[Avatar]

Membro desde: 11/12/2006 08:22:01
Mensagens: 20584
Localização: Curitiba/PR
Offline

Marcio Duran wrote:
ViniGodoy wrote:Aqui aplicamos prova + entrevista.

O conceito de desenvolvimento é o que é entendido do negócio para a implementação


Aliás, o que o meu comentário tem a ver com o conceito de desenvolvimento???

Seria dificil numa prova, ou mesmo numa entrevista, dizer se a pessoa consegue "entender regras de negócio". Isso, infelizmente, você só verá com o tempo. A prova e a entrevista, embora imperfeitas, podem ajudar a selecionar baseados no que pelo menos podemos mensurar de maneira mais objetiva.

Mas, desenvolver é, no final das contas, transformar essas regras de negócio em um programa de computador. Preferencialmente, num que possa ser mantido depois, por pessoas diferentes. Por isso digo que, no final das contas, o cara tem que saber sentar e escrever algumas linhas de código. E nisso, a prova realmente ajuda a selecionar.

Aqui onde trabalho, nosso código também é muito focado em implementação, por isso talvez esse modelo funcione tão bem.
Faz parte do perfil de aplicações que temos.

This message was edited 2 times. Last update was at 24/03/2009 13:51:25


@ViniGodoy - Lattes

Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!

Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).

Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295
[WWW]
juliocbq
GUJ Expert
[Avatar]

Membro desde: 13/11/2008 12:10:18
Mensagens: 3928
Online

ViniGodoy wrote:
Marcio Duran wrote:O conceito de desenvolvimento é o que é entendido do negócio para a implementação , e não ao contrário, poderia lhe questionar uma prova aplicando algo tão simples e um ambiente extremamente desconhecido, e isso não me iria somar em nada.


Ok, mas do que adianta você contratar um programador se nem a sintaxe básica da linguagem ele sabe?
]

Você aplica um problema, e pede para resolvê-lo com a tecnologia que sua empresa emprega ae(No caso java, não sei). Aqui aplicamos problemas de análise de imagens digitais, e deixamos os candidatos resolverem em qualquer linguagem que utilizamos em nossos projetos(c/c++, java ou pascal). Se o candidato resolve, ele tem gabarito para trabalhar.

www.citrox.com.br
thgdias
JavaGuru

Membro desde: 23/07/2007 18:59:31
Mensagens: 223
Localização: Basil - São Paulo - SP
Offline

peczenyj wrote:Uma prova não significa nada.

Veja como ele reage sob pressão: coloque toda a equipe a fazer perguntas que vcs achem pertinentes e peça pra ele falar de si.


Steve Jobs style!
[MSN]
Marky.Vasconcelos
Moderador
[Avatar]

Membro desde: 11/04/2007 18:18:20
Mensagens: 5932
Localização: São Paulo/SP
Offline

ViniGodoy wrote:Aqui aplicamos prova + entrevista.

Porém, fazemos uma prova beeem diferente da encontrada na certificação. Ela é dividida em três tipos de pergunta, em ordem aleatória:
1. Perguntas que testam conhecimento da sintaxe, nos principais elementos da sintaxe que usamos: "Crie um tipo enumerado, para representar as operações de SOMA, SUBTRAÇÃO E DIVISÃO, e faça um método/função aplicar() que, dado um enum, realize a operação".

2. Perguntas conceituais, relacionados ao projeto de classes, ou a problemas comuns de programação:
"Qual é o erro do código abaixo? Podemos dizer que ele viola o encapsulamento?"



3. Perguntas de conhecimento específico que nos interessam: collections, threads e sockets, por exemplo.


O que não tem na prova: Pegadinhas de sintaxe, análise de códigos rebuscados (se tiver análise de código, seria de um que escreveríamos na prática), etc. A idéia é que a prova não faça o candidato se sentir um palhaço. Aliás, alguns que vão mal até elogiam o conteúdo da prova e pedem dicas de onde se pode estudar o seu conteúdo!

A correção também não se resume em certo/errado. Analisamos o código produzido, as observações do candidato e os cuidados que eles tomam na prova. Por exemplo, há candidatos que validam a entrada lançando exceções, outros mostram claramente que não sabem qual collection usar em cada situação (embora as vezes gerem um código funcional, mas pouco eficiente).

Na última prova, também deixamos a documentação de uma classe mais "exótica" e pedimos para o candidato fazer algo com ela. Só um conseguiu responder a questão e ganhou pontos na entrevista ao dizer que também não conhecia a classe, só soube ler o javadoc e o trail da Sun.


A prova faz a filtragem "básica". É impressionante o número de pessoas que simplesmente abandonam a prova, ou erram todas as questões, inclusive as fáceis, ou que mostram desconhecer a sintaxe do Java 5+.

Depois disso, fazemos uma entrevista com os mais bem colocados para ver o perfil da pessoa, sociabilidade, interesses, planos, etc.




O processo tem funcionado muito bem, até hoje. Curiosamente, profissionais certificados tem ido tão mal quanto os não certificados. Eles dificilmente erram as questões de sintaxe, mas não raro produzem códigos tão rebuscados quanto o das provas que eles estudaram tanto para passar. Não temos um espaço amostral grande o suficiente para dizer que isso é uma regra, mas já é um indício que ter um certificado pode não ser garantia de sucesso na contratação, caso estejam sabendo alguém que saiba programar.


Só por curiosidade..

A 1)

Pelo que entendi da pergunta seria isso.

2)
Sim.. pois ao guardar a referencia a matriz ao inves de copiar seu valor para o atributo, qualquer alteração na matriz original modificara também a matriz na classe.

Passei perto?

Facebook @MarkyHitchhiker +Mark WP: MarkyTech's

Projects:
Android Roadmap - Aprenda Android do inicio (Java é o unico pre-requisito)
Towel ( ObjectTableModel & Swing & Utils )
Tower Defense Game - Java2D [Open-Source] [How-to-play]
EVGD: Programação de jogos (links) Ponto V! - Desenvolvimento de jogos para indies, curiosos e profissionais

DefaultTableModel?! PARE! Não faça isso! Faça melhor!

Dicas: Faça perguntas inteligentes! ; MigLayout ; GridBagLayout (Joke)

Develop games is fantastic, with words you can make worlds!!!

DON'T PANIC!
MarkyHitchhiker's Blog!
[WWW] [MSN]
Bruno Laturner
GUJ Expert
[Avatar]

Membro desde: 18/02/2008 16:17:53
Mensagens: 3002
Offline

E perguntaria algo do tipo:

Estamos montando com sets e gets vários objetos de tipo Pessoa ao mesmo tempo que os adicionamos a uma lista, porém todos as pessoas dessa lista acabam sendo a mesma pessoa do último adicionado. O que pode estar acontecendo?

Dica: É um problema de mutabilidade.

A resposta acima foi achada em menos de 5 minutos no google.
The prisoner falls in love with his chains. --E.W. Dijkstra
[WWW]
victorwss
JWizard
[Avatar]

Membro desde: 18/12/2007 14:46:00
Mensagens: 2409
Localização: São Paulo - SP
Offline

Eu acho essencial testar o conhecimento do candidato. Pois gente pagando de bonzão que não sabe programar e só faz lero-lero tem aos montes.

Na prova, seria interessante colocar, além de perguntas que testam os conhecimentos, algumas perguntas que pedem coisas sem sentido ou sobre alguma coisa que não existe, para avaliar que tipo de resposta o candidato dá.

Victor Williams Stafusa da Silva

Bacharel em Ciência da Computação - UFMT // Especialista em Desenvolvimento Java - CEFET/MT // Doutorando em Ciência da Computação - IME-USP
SCJP 6.0 - 19/12/2007 - PASS - 88% // SCWCD 5 - 17/05/2008 - PASS - 79% // SCJA - 09/09/2008 - PASS - 96% // SCSNI - 30/06/2009 - PASS - 68% // SCBCD 5 - 31/05/2010 - PASS - 95%
Próximos: SCJD (encalhado com o projeto), SCEA parte I (estudando). Algum dia desses: SCMAD, OCA, SCEA e SCDJWS.

Computação: uma ciência holística e esotérica!
E então veio Deus a terra e disse aos homens: Não dividireis por zero.
XML is a giant step in no direction at all. (Erik Naggum)
Arquitetura de sistemas: Eu prefiro ser essa metamorfose ambulante do que ter aquela velha opinião formada sobre tudo.
Diga não as drogas: Não use java.util.Vector.
Cuidado: Este usuário pode ter temperamento agressivo.

Always code as if the person who will maintain your code is a maniac serial killer that knows where you live.
I am the maniac serial killer that knows where you live who will maintain your code.


É impossível falar de CMMI (Capability Maturity Model Integration) sem saber o que é CIMM (Capability Im-Maturity Model).


Se você escreve "concerteza", "concerteza" você andou matando aulas de português.
[MSN]
F?io Henrique
Debugger
[Avatar]

Membro desde: 08/02/2009 11:11:33
Mensagens: 57
Localização: Rio de Janeiro
Offline

ViniGodoy wrote:Aqui aplicamos prova + entrevista.


Tô careca de ver Certificado que não sabe nada sobre Arquitetura de Sistemas... Persistência... tratamento de interface Web...

Não ajuda muito fica esmiuçando se o cara lembra o comando tal ou sintaxe tal..

Para resolver problemas... o candidato tem que ter discernimento, inteligência..


Por exemplo: esse problema com o Enum.. alguns gostam de utilizar o padrão: Polimorfismo:

Justamente para não encher o programa de ifs (procedural)...

Como tratar condicionais com base no tipo: Polimorfismo... dai o cara pode nem usar enum exaustamente... mesmo sendo um profissional que poderia acrescentar a equipe... não vai passar no teste...

De um aspecto comum, não há apenas uma forma de resolver o problema...

Acho que uma boa conversa, indo em detalhes, ajuda.

O problema ai, é que tem gente que não gosta de "argumentar", principamente com um candidato.

This message was edited 3 times. Last update was at 25/03/2009 12:56:49


Java until hell freezes over
1 ano de Java
Procurando Projeto
[Email]
Marcio Duran
GUJ Master
[Avatar]

Membro desde: 23/01/2008 11:14:35
Mensagens: 1905
Offline

victorwss wrote:Eu acho essencial testar o conhecimento do candidato. Pois gente pagando de bonzão que não sabe programar e só faz lero-lero tem aos montes.

Na prova, seria interessante colocar, além de perguntas que testam os conhecimentos, algumas perguntas que pedem coisas sem sentido ou sobre alguma coisa que não existe, para avaliar que tipo de resposta o candidato dá.


- Quem é apto a dar qualquer prova ?

Consultor Open Source
Comunidade JavaLivros
Twitter Comunidade JavaLivros
Novo Blog do MiddleHeaven
[WWW]
ironpoa
Thread.start()
[Avatar]

Membro desde: 25/07/2006 14:43:52
Mensagens: 45
Localização: Porto Alegre
Offline

victorwss wrote:Eu acho essencial testar o conhecimento do candidato. Pois gente pagando de bonzão que não sabe programar e só faz lero-lero tem aos montes.

Na prova, seria interessante colocar, além de perguntas que testam os conhecimentos, algumas perguntas que pedem coisas sem sentido ou sobre alguma coisa que não existe, para avaliar que tipo de resposta o candidato dá.


Reposta:
Isso non ecziste!

http://www.twitter.com/bruno_zaccolo
Maracuja
GUJ Ranger
[Avatar]

Membro desde: 28/03/2006 10:18:44
Mensagens: 940
Localização: Behind the screen
Offline

Só fazendo um comentário aqui, nada melhor para selecionar um desenvolvedor, ver se ele realmente sabe desenvolver algo.. como? Acho interessante pedir que ele desenvolva um projeto, ai dependendo do perfil que vc procura, peça um projeto específico, por exemplo:

- Fazer um projeto WEB utilizando JSF que faça uma Pesquisa utilizando os Serviços estilos REST providos pelo yahoo, mostrar os resultado na tela, disponibilizar um botão que exporte os resultados para um arquivo texto. De uns dois dias para que ele desenvolva o projetinho em casa.

Bom ai vai da sua imaginação.

Peça para te entregarem o projeto, talvez com um arquivo de buid do ANT para o projeto, todo o Javadoc e assim em diante. Depois vc ainda pode qustionar o desenvolvedor a respeito das escolhas feitas para o projeto, por que fez em camadas ou não e outras coisas deste tipo.

Espero que ajude.

[]'s

"Nunca deixarei de reclamar, mas espero reclamar de coisas melhores a cada dia..." Um amigo muito sabio
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team