Como o Tom Kyte contrata
Na semana passada, eu estava realizando entrevistas para um cargo de DBA Trainee na Solvo.
Acho que escolhi certo, mas queria ter lido antes no Blog do Tom Kyte como ele costuma fazer entrevistas para DBAs e Desenvolvedores Oracle. Seria mais divertido.
São apenas 3 perguntas. Eu acho que faço umas 100… O melhor é que a intenção não é saber se o candidato sabe ou não o resultado das perguntas, e sim, analisar a forma como ele pensa quando é confrontado com problemas.
Por exemplo, a pergunta 1 é muito simples para um Desenvolvedor ou mesmo DBA. A intenção é avaliar como o candidato reage a um problema que tem uma resposta óbvia demais.
A intenção das outras duas é saber se ele consegue resolve-las em apenas um comando, ou seja, adotar a solução mais direta e simples.
Ele nem tem esperança que respondam a terceira pergunta, quer apenas ver como lidam com a pressão. Se dizem para ele que a terceira é impossível de ser feita em um único SELECT, ele demonstra 3 formas de faze-lo.
E também, ele pede que o candidato avalie seu próprio conhecimento em SQL, e se dê uma nota entre 1 e 10. Ao término da entrevista, ele pergunta se o candidato quer se reavaliar.
Estas são as 3 perguntas:
Eu criei uma tabela:
CREATE TABLE T ( ....., MES number, ..... );
MES é sempre um número entre 1 e 12.
1) Quantas linhas a tabela tem?
2) Quantas linhas por MES existem na tabela? Eu quero saber quantas linhas tenho para o MES 1, quantas para o MES 2, etc.
3) Que MES tem mais linhas? E, por um bônus especial, por que esta questão é ambígua?
Adicionalmente, ele faz uma pergunta bônus. A pergunta bônus não é exatamente uma pergunta. Ele pede que o candidato vá ao quadro, desenhe o Oracle, e explique a ele como funciona. Adorei essa, ela sozinha já mostra o quanto o candidato a DBA sabe.
Opa.. Salve Portilho..
Se eu soubesse desta vaga teria me candidatado.. hehehe..!
Caraca.. 3 perguntas que confundem pakas heim….
Eu já iria questionar como que seria o controle do ano.. Linear ou Colunar..
Mas isto é mais para mostrar o quanto o candidato sabe como raciocinar e sempre observar tudo antes de responder a uma pergunta…
É… e as vezes o mais simples é o correto, apenas 12 linhas na tabela, uma por cada mês..
Abraços..
Sensacional.
Abraço á todos.
Oi Regis.
A intenção da tabela é que, entre N colunas, ela tem uma MES.
Por exemplo, o campo MES do aniversário dos funcionários.
Então não seriam necessariamente 12 linhas.
Abraço !
Fala Portilho…
Opa.. Por isto que estas 3 perguntas são confusas.. e geram ambiguidade..pois pode se tratar de uma tabela para armazenar qualquer informação.. tanto um relatório mensal.. um cadastro de funcionários.. etc.. O que eu quis dizer é que podemos imaginar N opções.. mas a resposta que pedem pode ser a mais simples e que por muitas vezes achamos que não é a certa pela simplicidade… ehehehehe…
Mas neste caso ele não queria uma resposta.. e sim saber se o profissional consegue analisar o que lhe é pedido e obter as informações necessárias para realizar a tarefa com qualidade e para a sua real necessidade…
Abraços..
Ahh….
E outra coisa.. eu já não teria passado na entrevista.. só pela resposta.. hauhauha..!
Abraços…
Exato…
Acho que a resposta é sempre indeterminada, pq o fato da segunda coluna ser um mes nao indica que a primeira é um dia /ano e etc… e a coluna MES pode significar qq coisa..!!
Abs
Marcelo Ramasine
Acho que o Marcelo seria contratado pelo Tom.
Mas mesmo que MES não seja um mês, ele disse que sempre será um número entre 1 e 12.
Puxa, adorei essa.
A resposta para todas perguntas poderia ser 0.
Boa Tarde Portilho.
Conheci o blog hoje, e gostei muito. Segue as minhas respostas para a entrevista retirada do blog do Tom Kyte.
Quantas linhas a tabela tem?
select count(*) from T
Quantas linhas por MES existem na tabela? Eu quero saber quantas linhas tenho para o MES 1, quantas para o MES 2, etc.
select mes ,count(mes) from t group by mes
Que MES tem mais linhas? E, por um bônus especial, por que esta questão é ambígua?
with TABTMP as (
select max(count(t1.mes)) as maximo from t t1 group by t1.mes
)
select mes ,count(mes) as count_mes from t, TABTMP group by mes, TABTMP.maximo
having count(mes) = TABTMP.maximo
Sera que era isso que era esperado de respostas? Foi assim que entendi. Entrevista para DBA, resposta em SQL. hehehehehe
Um abraço pessoal.
Oi Reinaldo.
Ótima resposta para a pergunta 3.
Está correta, mas será que você seria contratado? Não sabemos. rs…
Abraço !
Olá Portilho,
Realmente as perguntas são de uma forma ou outra um tanto bem diretas. Acredito que o entrevistador esteja esperando uma resposta indagativa, ou seja, uma resposta que questione a pergunta realizada de forma que se crie um cenário mais direto da situação ou do problema a ser resolvido. No mais, sendo o guru Thomas Kyte o próprio entrevistador, e se ele apenas me perguntasse o meu nome, eu já ficaria em dúvida para responder. 😉
Abraços …
Afinal Portilho, quais seriam as respostas esperadas por ti? Você iria dispor de tempo na entrevista para um candidato que lhe questionasse a ambiguidade das perguntas? A simplicidade em responder as perguntas com SQL é trivial demais, e me questionaria a duvidar do óbvio, como acontece naturalmente em nossa profissão. Não posso deixar de elogiar pelo excelente conteúdo do blog.
[]’s
Daniel A. D. Castro
Oi Grazielle, tudo bem?
A intenção das perguntar não é obter as respostas, e sim ver como o candidato pensa, exatamente o que você fez.
Mas sabe que já me esqueci do porque da ambiguidade? Eu devia ter escrito isto na época do Post…
Abraço !