Distopia assustadora de entrevistas para programadores

Experimentos



Meu telefone tocou.



“Olá, aqui é Jared.



- Olá. Estou ligando para você sobre uma entrevista por telefone na Giant Search and Advertising Company [obviamente, aqui é o Google - aprox. faixa].



- Sim! Eu estava ansioso pela sua ligação!



- OK. Você pode escrever um algoritmo para encontrar o maior valor K-th em uma árvore binária?



Eu calei a boca. Desconecte-se completamente. Nunca entrei em tal situação. Um documento do Google em branco me encara e o cursor pisca em câmera lenta. Estou esboçando algo como a primeira passagem.



- Você pode escrever um caso de teste para este algoritmo?



Certo. Eu poderia, se não estivesse completamente drogado e meu ego interior não estivesse derretendo sob a fúria ardente de um sonho morrendo diante dos meus olhos. É a isso que todo o meu trabalho árduo nos últimos meses se resumiu? Por volta de janeiro de 2019, decidi que era hora de encontrar um novo emprego. Como se os deuses da engenharia de software tivessem abençoado esse pensamento, e um recrutador da Giant Search and Advertising Company me contatou no LinkedIn para uma entrevista por telefone. Isso era espetacular!



Esta não é a primeira vez que isso acontece. Como um jovem e brilhante engenheiro que acabara de se formar no ensino médio, comecei recentemente meu primeiro emprego e estava indo muito bem nele. Mas então meu mundo virou de cabeça para baixo. Trabalhei em um bug particularmente desagradável e fiz o que qualquer engenheiro de software que se preze faria antes de tentar resolvê-lo sozinho: google. Assim que pressionei Enter com minha consulta direta correspondente na caixa de pesquisa, a tela ficou preta e fui jogado no console.



Você fala a nossa língua ... Quer resolver um problema?

1. Sim

2. Não, obrigado


Quase engasguei com o café Costco morno. Eu queria pular e gritar para meus colegas virem e assistir. Mas, de repente, fiquei preocupado por ter falhas e, nesse caso, eu me encontraria em uma situação muito delicada. Temendo que meu espírito estivesse prestes a voar para fora do meu corpo, pressionei 1.



Você recebe uma matriz nums contendo n + 1 inteiros, onde cada inteiro está entre 1 e n (inclusive). Prove que pelo menos um número é repetido. Vamos supor que haja apenas uma duplicata. Encontre.



Você tem 24 horas!


Tive um pequeno ataque cardíaco. Quando consegui me reanimar com outra dose de café Costco, percebi que poderia resolver o problema. Eu já tinha um plano. Então eu fiz. Assim que pressionei o botão "Enviar", eles me deram outra solução. Isso foi repetido cinco vezes e cada vez mais difícil. Quando postei a última resposta, vi outra mensagem:



Parabéns! Este código é muito bom! Quer entrevistar a Giant Search and Advertising Company?


Isso é tudo. Todo o meu mundo profissional mudou. Uma das organizações mais poderosas do mundo se infiltrou em meu cérebro de 22 anos e reescreveu o registro. Nenhum dos objetivos de carreira anteriores importava mais. Antes disso, felizmente não sabia que uma empresa tão importante poderia me contratar. Mas é óbvio que de alguma forma sou digno de atenção.



A entrevista por telefone foi como um pesadelo. Pediram-me para programar o jogo Life de Conway em 45 minutos. Na verdade, me saí muito bem. Eu escrevi todo o programa e testei. No dia seguinte, fui recusado. Interiormente, estava deprimido e confuso. O que exatamente eu fiz de errado? Todos os testes não significaram nada? Por que tive que escrever um algoritmo tão complexo em tão pouco tempo?



Depois de minha primeira experiência de resolução de problemas neste nível, decidi que deveria melhorar minhas habilidades. A entrevista ocorreu em abril deste ano. Elaborei um currículo de três meses e comecei a trabalhar. Todas as manhãs eu fazia três tarefas práticas antes de ir para o trabalho. À noite, depois de correr e fazer um lanche, ainda trabalhava. Em três meses, resolvi 114 problemas práticos no total. Matrizes, Backtracking, Pesquisa binária, Árvores binárias, Primeira pesquisa de amplitude, Primeira pesquisa de profundidade, Programação dinâmica, Gráficos, Algoritmos gananciosos, Hashing, Listas vinculadas, Probabilidades, Classificação, Pilhas e Árvores de prefixo são alguns dos tópicos que estudei. ... Como poderia falhar com tal preparação?



Falhas



Uma entrevista com a Giant Search and Advertising Company terminou em chamas. Não consegui resolver o problema. Mas isso foi apenas o começo da loucura. No início, abordei estrategicamente quais empresas entrar em contato. Eu precisava não apenas de um trabalho “bom”, mas “correto”.



A próxima era uma empresa de automóveis autônomos. Recebi uma resposta quase imediatamente após enviar o aplicativo e configurar um editor de código. O entrevistador, irritado e com um sotaque muito forte, me pediu para codificar um algoritmo de filtragem de imagens muito complexo. Eu escrevi. "Parece muito bom!" - ele disse. No dia seguinte, recebi uma carta de rejeição estereotipada.



Em seguida, houve uma empresa de pesquisa que pediu uma tarefa de casa de três frases. Fiz o melhor que pude e escrevi um sistema de processamento de imagem multi-thread muito complexo. Recebi um educado "Não" do recrutador e, quando solicitado a explicar, fui informado de que minha implementação era "muito ineficaz".



Depois disso, houve uma empresa de processamento de pagamentos. Tive uma ótima conversa por telefone com a recrutadora e ela admirou o quão bem meu currículo correspondia à descrição do cargo. No dia seguinte, recebi um e-mail dela informando que eles não conseguiram encontrar um emprego para o meu conjunto de habilidades.



Outro exemplo foi com a Giant Social Media Platform Company: “Jared! Obrigado pela sua aplicação! Achamos que você será perfeito para trabalhar em nossa empresa! Enviei sua inscrição diretamente para o gerente de contratação em seu escritório regional! " Oito minutos depois, recebi uma carta de rejeição estereotipada afirmando que minhas habilidades não eram adequadas para a posição.



Incontáveis ​​recrutadores externos me contataram. Todas as conversas terminaram em nada. Talvez o que eu mais gostei foi uma empresa de processamento de som. A recrutadora me contatou e disse que após revisar meu currículo, a equipe ficou muito animada e ansiosa para falar comigo, então ela entrará em contato com o gerente de RH. Uma semana se passou, perguntei a ela como ela estava. A recrutadora disse que entrou em contato com o gerente de RH - e ele não acha que minhas habilidades sejam adequadas para o trabalho. Aceitei ... porém, como teste, enviei meu currículo para outro emprego - e fui imediatamente contatado por outro recrutador. Fiquei surpreso ao ver que ligaram imediatamente. Tenho que admitir, desta vez não me saí bem. No dia seguinte, recebi uma recusa formulada pelo correio.



Finalmente, cheguei à fase de entrevista no escritório da Giant Social Media Company. Respondi a uma série de perguntas de codificação com várias pessoas em quatro entrevistas diferentes - todas elas correta e satisfatoriamente. No caminho, recebi várias perguntas confusas e difíceis como "Conte-nos sobre quando ...". Foi revigorante, pois pela primeira vez, enquanto procurava um emprego, me perguntaram sobre minha experiência e conhecimento como engenheiro em geral. Isso foi seguido por uma entrevista final sobre o projeto do sistema. O entrevistador rapidamente me deu um pequeno sistema para desenvolver. Comecei a falar sobre minha decisão e, ao longo do caminho, fui questionado. Finalmente, chegamos ao ponto em que ele disse: "Ok, digamos que temos uma arquitetura de microsserviço ... você pode projetá-la ...?" Eu disse imediatamenteque não tenho experiência com microsserviços. Ele me olhou interrogativamente e perguntou: "Não tem experiência?" Eu confirmei. Eu tentei articular meu conjunto de habilidades e experiência nas áreas de desenvolvimento embarcado e móvel de forma clara. Ele ficou em silêncio como um homem que percebe que cometeu um erro. Excelente! Passei quatro meses me preparando para esta entrevista, passei quase todo o meu tempo livre me preparando, resolvendo problemas práticos e ensaiando como apresentar minha experiência em habilidades de comunicação, e ele não se preocupou em gastar 10 minutos lendo meu currículo.Passei quatro meses me preparando para esta entrevista, passei quase todo o meu tempo livre me preparando, resolvendo problemas práticos e ensaiando como apresentar minha experiência em habilidades de comunicação, e ele não se preocupou em gastar 10 minutos lendo meu currículo.Passei quatro meses me preparando para esta entrevista, passei quase todo o meu tempo livre me preparando, resolvendo problemas práticos e ensaiando como apresentar minha experiência em habilidades de comunicação, e ele não se preocupou em gastar 10 minutos lendo meu currículo.





Eu poderia continuar a lamentar as muitas decepções que experimentei nesta difícil busca de emprego. Havia muito. Sempre me esforcei para ser completamente honesto comigo mesmo e com os outros sobre minhas habilidades. Eu não estava me candidatando a um emprego que exigisse anos de experiência que eu não tinha, ou que não tivesse habilidades. Claro, eu queria voltar para a web da programação incorporada, mas tinha dois anos de experiência como engenheiro da web, além de minha outra experiência como desenvolvedor de aplicativos móveis e pesquisador de algoritmos de aprendizado de máquina. Reconheço plenamente que tenho inúmeras oportunidades de crescimento e autoaperfeiçoamento. Mas, por outro lado, estou bastante confiante de que possuo as habilidades que me permitirão começar um novo trabalho muito rapidamente. Na minha opinião,a programação é uma forma de arte destilada definida pelo aprendizado e novas experiências. Nenhum engenheiro de software vai parar de desenvolver pelo resto da carreira. Pelo menos espero que não: aqueles que o fizerem muito rapidamente serão deixados de lado. Então, o que realmente está acontecendo aqui? Depois de passar por esse processo sombrio por tanto tempo, decidi decompor e analisar minhas observações e então ponderá-las para obter uma imagem mais clara.Decidi decompor e analisar minhas observações e então ponderá-las para obter uma imagem mais clara.Decidi decompor e analisar minhas observações e então ponderá-las para obter uma imagem mais clara.



  1. . , , -, . - — , . , , -. , , . , . .  — .



    • :

    • — , .

    • — , .

    • — . , : , .

    • — , . , . . . . - , -, .


    , , - . , , - .
  2. , — , , .



    • ? . , , , , . , . , ? . , .

    • ? , , . , . « ». . , , .  — , , . , , , , , . , , ?

    • . , . , . LinkedIn . , . , . , , , , «» .

    • , . . , . , . . .  — () , . . : « . ? : «, ». « ? ?» : « . ». . ,  — ?

    • , . , . , . , A. . ! ! . , . . ! ! - , , . : , , A : , - .

    • . 45 . . , . «», 50 , , . , 15 , . . , , . . 45 ?

    • . , Google. , . : « » « ». . , . , , , . , , « , , ». , , , . , «» , , , «» . , . - , . , . , . , , , , . ! ?
  3. , ? , . , , « ». ?! , ? , , . ? , ? . , , . , . , , , , . , .


Tenho certeza de que poderia ter continuado com o mesmo espírito. Tenho cerca de mais oito pontos em minhas anotações. Mas, por enquanto, o artigo parece mais uma diatribe do que uma postagem de blog. Espero ter conseguido compartilhar algumas das dificuldades que passei nos últimos sete meses. No final, tenho sentimentos ambivalentes. Meu atual empregador acabou de despedir meu escritório inteiro, deixando-me desempregada e sozinha para escrever sobre como odeio tudo isso. Não tenho certeza se quero passar por esse processo novamente. Pensei muito na minha experiência e cheguei a algumas conclusões simples:



  • , — 85 000 Java- , , . Python, . embedded C C++ , . Flutter . Clojure, . C#. , -. .

  • Não entendo por que não tenho permissão para escrever software - há uma inconsistência fundamental entre as afirmações públicas de que as empresas estão procurando desesperadamente por engenheiros de software e a realidade brutal de selecionar candidatos. Esses desafios de codificação sob intensa pressão de fazer ou morrer parecem ser mais um mecanismo de trote do que uma valiosa ferramenta de avaliação. Usá-los é como atirar em candidatos à polícia antes de perguntar o que eles sabem sobre a lei.

  • Não sei o que parece do outro lado  - o fato é que o processo criticado pode ser a única maneira que as empresas podem separar bons e maus candidatos. Nunca fiz parte de uma equipe de contratação e tenho certeza de que não sei muito.


Concluindo, tenho algumas idéias:



  •  — , . , , . . , , ( ) , . , . , . , . , . , , , — , .

  •  — -. , : -. , . , . ? , ? , ? . , . , Agile. , . , . Java Python, Python, ? , , , . , - , .

  • — . , . . , -, . , , , :



    .



    . :






All Articles