Eu continuo falhando as mãos em parte da entrevista, sugestões? [fechadas]

13

Então, eu tenho um par de software / site no meu portfólio. Eles ganham dinheiro, mas não muito.

Por isso, decidi adquirir alguma experiência profissional, principalmente para cargos de desenvolvimento júnior em Java / PHP.

O problema é que eu respondo todas as perguntas técnicas corretamente e agendamos um "teste" de codificação, a fase final da entrevista. Eu nunca consigo relaxar e pensar demais e acabar fazendo o teste muito lentamente. OU, às vezes, apenas bato em um quarteirão e acho muito difícil pensar de pé.

Eu não entendo isso porque outras coisas que eu escrevi estavam resolvendo problemas muito mais complexos, enquanto o "Teste" é brutalmente simples, como escrever e testar palíndromo.

Outras vezes, eles me fazem um teste de lógica com fluxos para operações matemáticas e, novamente, não poderei fazer isso no tempo que eles atribuírem.

Sei que posso escrever software / sites vendáveis ​​que podem gerar pequenas receitas e encontrar maneiras de resolver problemas, mas tenho grande dificuldade com simples testes de codificação em entrevistas.

Alguma sugestão?

joelonjobinterviews
fonte
Aparentemente, pelo menos você acha que os testes da entrevista podem ser simples, mas parece que você não está sozinho em ter problemas com esses testes: infoworld.com/d/application-development/…
Algum programador
2
Eu tenho que discordar deste link. Dada a diferença entre um desenvolvedor bom e um desenvolvedor ruim, você realmente quer arriscar amarrar alguns bons candidatos do que ser ruim.
Deadalnix #
7
@deadalnix Não concordo com o seu desacordo. :-) Já vi bons programadores reprovar em testes e programadores ruins passarem em testes que acho que o teste não é útil e geralmente é contraproducente. OMI, tudo o que eles fazem é fazer com que o entrevistador / RH se sinta bem.
Brian Knoblauch
2
@BJoachim e tudo: se você ler os primeiros parágrafos desse link, na verdade é um bom conselho para manter os testes relevantes e úteis: não diz que os testes são inúteis.
precisa saber é

Respostas:

18

Continue participando de entrevistas. Você encontrará, eventualmente, um lugar que fará perguntas mais favoráveis ​​aos seus pontos fortes. Você também ficará melhor e mais confortável com as entrevistas, o que só pode ajudar. Veja isso como um jogo, porque é realmente o que é. Continue jogando e, eventualmente, você ganhará.

Kevin Hsu
fonte
2
Não acho que seja questão de mérito / conteúdo das perguntas, apenas condições de respostas. Eu errei em escrever bool isPalindrome(string)porque deveria escrevê-lo no papel, em um prazo (de 15 minutos?). Dado um editor de texto e sem limite de tempo, acredito que poderia fazê-lo perfeitamente em menos de um minuto.
SF.
9
@SF: você tentou depois da entrevista? Quanto tempo demorou para você?
precisa
2
Continue praticando trabalhando em suas fraquezas. Nesse caso, encontre problemas pequenos e similares e trabalhe-os no papel. Pratique fazer com que algo funcione primeiro (mesmo que esteja errado) e depois repita. Dessa forma, você pode mostrar seu processo de pensamento como parte da entrevista. Parece que essa é a maior habilidade que você não tem (no momento), obtém uma entrega mínima agora e aprimora-a com o tempo. Muitas empresas como este :-)
Al Biglan
Só vi isso ligado ao slashdot; algo relacionado: infoworld.com/d/application-development/...
Kevin Hsu
Se o problema é que você não pode programar no papel, esse é um problema real na minha opinião. "isPalindrome" não deve precisar de chamadas de API ou recursos de idioma obscuros; você deve ser capaz de criar um programa compilável como esse sem benefícios de inteligência ou IDE.
Eoin Carroll
12

Isso é muito comum. A maioria dos programadores é capaz de programar efetivamente quando está na zona de conforto. Por exemplo, só posso trabalhar no Ubuntu, com o vim, se não tiver esse espaço de trabalho, não vou gostar de programação. Também exijo , em certa medida, o Google para pesquisa.

Tenho certeza de que você desenvolveu uma zona de conforto para a programação. Eu recomendaria, se acostumando com o ambiente em que alguém está atrás de você, aguardando a conclusão do código. A melhor maneira de se acostumar é continuar indo à entrevista.

Você pode pensar que não tem muito impacto e pode não ter. Mas, para alguns de nós, programar com ou sem música, usando um IDE ou um editor de texto simples, usando uma cadeira de madeira ou sentado em um sofá, uma sala escura ou uma sala iluminada ... fazem uma enorme diferença em nosso desenvolvimento Rapidez.

Observe que, depois de conseguir o emprego, geralmente você pode criar sua própria zona de conforto no espaço do escritório que eles oferecem.

EDIT : Esta pergunta me lembra a um vendedor, perguntando como me sentir confortável e melhor em ligações a frio. A melhor resposta é continuar fazendo ligações frias e refletir sobre cada ligação. Depois de um tempo, o vendedor aprimora suas habilidades e conforto. Eu acho que programador não é diferente quando assiste a entrevistas, afinal o ponto principal é vender-se ao entrevistador

Rick Rhodes
fonte
Quem é Sopha? A gêmea linda da Sophie?
uɐɪ
@ Rick: infelizmente, como entrevistador, não posso apenas aceitar a palavra de alguém de que ele é um programador eficaz. Eu preciso ver que eles podem realmente programar. Nem a experiência relatada, nem o GPA, nem as certificações nem os exemplos de código podem me dizer isso. Eu preciso ver os candidatos fazendo alguma programação.
kevin Cline
@kevincline Eu concordo, é por isso que recomendo que ele continue indo às entrevistas e se familiarizando com entrevistadores como você.
Rick Rhodes
6

Esta é apenas a minha sugestão, por que não tentar ser um empreendedor. Pode haver muitas pessoas que enfrentam o mesmo problema. Se você pode escrever sites com pequenas receitas, certamente pode ganhar muito com isso.

user841923
fonte
1
+1, e um espírito empreendedor pode ser visto como uma qualidade muito positiva.
maple_shaft
5

Você já identificou qual é o seu problema - solucionar problemas sob pressão (por exemplo, quando alguém está observando você). É por falta de confiança ou por não ter experiência suficiente ou por pressão?

Ir a muitas entrevistas para obter alguma experiência e prática pode ser uma boa ideia, mas também pode produzir contra-efeitos. Falhas constantes nas entrevistas podem abalar ainda mais sua confiança, portanto, tenha cuidado.

Eu sugiro que você tente a programação por pares para se sentir confortável para resolver problemas quando alguém estiver observando você. Além disso, tente descobrir o que está impedindo você de ser eficaz sob pressão (é o estresse do teste real, o estresse de trabalhar sob supervisão rigorosa, o estresse de trabalhar sob um limite de tempo específico etc.).

Christian P
fonte
1
Você também deve pesquisar alguns desses tipos de perguntas de teste. Imprima-os da maneira que você os obtém em uma entrevista e resolva-os. Sente-se em uma mesa e não no seu computador. Você precisa tentar recriar a pressão da entrevista.
Bill Leeper
3

Parece que você engasga sob pressão. Como você precisa fazer os exemplos programados como parte do processo de entrevista, precisará aprender como superar isso. Isso é tudo sobre como gerenciar o medo, não sobre a habilidade de programação.

Uma opção seria praticar a escrita de problemas de amostra e tempo você mesmo. Depois de saber que você pode fazê-los em menos de dez minutos, você pode ter medo de ser cronometrado menos.

Outra opção seria inventar uma técnica para acalmar seu medo e usá-la para se libertar. Aprender uma técnica de meditação pode ajudá-lo. Ou memorize a litania contra o medo (de Dune .) Aprenda algum tipo de truque para diminuir sua resposta ao medo.

Sean McMillan
fonte
3

Estou surpreso que ninguém tenha perguntado isso ainda, mas como você está abordando as tarefas de programação ?

Se você está simplesmente entrando no código, é provável que se perca e acabe cometendo erros simples e ficando confuso. Dê um passo de cada vez:

  1. Reunir requisitos : O que exatamente é o que o entrevistador está perguntando. Verifique se há zero perguntas no ar antes da codificação. Por exemplo, se confrontado com a velha pergunta "isPalindrome", pergunte coisas como "e se a sequência tiver caracteres especiais?" ou "as seqüências de comprimento ímpares como 'ada' contam como palíndromos?". Você precisa saber como esclarecer os requisitos antes de projetar um algoritmo.
  2. Crie seu algoritmo : divida-o em seções lógicas, se for necessário. Fale sobre isso. Talvez escreva um pseudocódigo se estiver no quadro branco. Acompanhe seu entrevistador por suas etapas. Tente executá-lo com algumas entradas diferentes (válidas e inválidas) para garantir que você obtenha os resultados desejados.
  3. Agora comece a codificar : a essa altura, você deve ter muita confiança no que está prestes a escrever. Essencialmente, você deve apenas seguir os movimentos com qualquer idioma com o qual esteja familiarizado. Nesse ponto, não importa realmente se há erros sintáticos, pois os entrevistadores que valem um centavo perdoam os de uma sessão de quadro branco (se você receber um PC / IDE para resolver o problema, essa é uma história diferente).

Realmente, ao lidar com problemas de codificação, um entrevistador não está procurando muito por um ótimo código. É mais para ver como você lida com um determinado problema. Mergulhar direto no código é uma coisa ruim, ponto final.

Você também descobrirá que, ao falar sobre o problema (coleta e design de requisitos), ficará um pouco mais confortável e menos propenso a cometer erros tolos durante a parte de codificação.

Demian Brecht
fonte
3

Projeto Euler

Parece-me que você está falhando no teste de fizzbuz . Algoritmos simples e entorpecentes que geralmente não servem a nenhum propósito prático, exceto para identificar se você entende os principais conceitos de programação.

Atualize seus princípios

O que eu recomendaria é que você retifique seus princípios.

http://projecteuler.net/

Inscreva-se e comece a praticar, você descobrirá que, seguindo esses exemplos, terá uma compreensão mais profunda dos principais conceitos de programação. Eu acho que você encontrará uma pergunta palíndromo lá, juntamente com sequências de fibonacci e outros conceitos matemáticos (soa familiar).

Justin Shield
fonte
2

Peça feedback na ou após a entrevista. Do que eles gostaram? Do que eles não gostaram? Você pode se surpreender com as respostas.

Pessoas diferentes procuram coisas diferentes, é claro, mas como você tenta resolver um problema geralmente é mais importante do que escrever uma solução 100% correta. Você pode estar preocupado com todas as coisas erradas.

A melhor maneira de melhorar qualquer coisa é praticar. Tente escrever uma lista de pequenos problemas. Em seguida, para cada item da lista, escreva um pequeno programa que resolva o problema. Comece com problemas muito fáceis, como o FizzBuzz , e aumente a dificuldade à medida que avança. Você pode resolver os problemas que viu em entrevistas anteriores? Encontre a maior substring que duas strings têm em comum? Calcular a fatoração primária de n !?

A idéia não é aprender a solução para todos os problemas que você possa encontrar, mas aprender a escrever pequenos programas rapidamente e também descobrir onde estão seus pontos fracos para que você possa melhorar. Muitos problemas são fáceis de resolver com a estrutura de dados correta, mas difíceis de outra maneira, portanto, verifique se você tem uma base sólida em estruturas de dados.

Caleb
fonte
2

Pratique e encontre alguém para ajudar a guiá-lo nos conceitos básicos de como superar isso. Pode levar algumas tentativas, mas pode ser surpreendente o que é descoberto se você puder obter algum feedback e praticar sobre isso. Um recrutador me orientou sobre como lidar com um problema no quadro branco uma vez que parece ser semelhante ao seu problema aqui.

Não estou sugerindo memorizar respostas, pois ele tem um plano do que fazer quando recebe um problema desse tipo e de como resolvê-lo. O que isso parece? Você já viu problemas semelhantes? O que algumas abordagens simples poderiam produzir em termos de um algoritmo? Pelo menos essa é a minha sugestão para você.

JB King
fonte
2

É comum que os desenvolvedores de software reprovem quando solicitados a fazer um teste de codificação ou a escrever um pequeno pedaço de código na entrevista. Como alguém já mencionou, isso ocorre porque a maioria de nós só pode codificar quando estamos em nossa "zona de conforto" e sentados em uma pequena sala, cercada por 2 a 5 entrevistadores, realmente não acrescenta muito conforto.

A resposta é tríplice:

  • praticar e praticar mais. tente por um mês fazer de 30 a 40 minutos de programação com papel e caneta e ficará surpreso com a facilidade com que isso se tornaria. Enquanto pratica - tente o tipo de tarefas de programação que você espera que seja solicitado nas sessões de codificação de entrevistas - por exemplo, implemente um singleton, inverta uma string etc. É ainda mais fácil com "ler esse trecho de código indesejado e descobrir o que está errado". "- tente imprimir e analise essas impressões por duas semanas e você aprimorará bastante essa habilidade.

  • Aprenda a controlar seu medo. se você acha que o teste é muito difícil e você pode concluir apenas 20% dele - faça 20%, não se preocupe com o resto. Pode ser que o teste seja excessivamente grande para o tempo previsto para fazê-lo (por exemplo, os caras na entrevista deveriam dar 20 minutos para terminá-lo, mas eles precisam encerrar a entrevista em 5 minutos por causa de alguma explosão na produção, etc.) . Também é possível que outros candidatos tenham conseguido concluir apenas 10% do teste; portanto, ao completar 20%, você ainda estará à frente dos outros candidatos.

  • Ao escrever um código na entrevista - não se preocupe em torná-lo perfeito em um primeiro passo. basta implementar um "caminho feliz, conhecido como cenário mais comum primeiro" e se preocupar com o tratamento de erros posteriormente. se o tempo estiver acabando - basta adicionar uma nota rápida na parte inferior da folha - descrevendo o que você faria para melhorar o código se tivesse mais tempo.

[tenho que correr, editar / melhorar minha resposta mais tarde]


fonte
1

Como muitas pessoas já disseram que eu pratico, é uma das coisas mais importantes. Se você já fez um problema semelhante, poderá encontrar a solução rapidamente.

Se estiver com dificuldades para encontrar problemas para tentar resolver por conta própria, tente usar a pesquisa do Google para programar perguntas da entrevista para o seu idioma ou escolha.

Além disso, você pode pegar livros projetados para ministrar cursos de nível inferior de CS. A maioria desses livros é preenchida com tarefas de programação pequenas e que podem ser feitas rapidamente em casa. Eles podem ser usados ​​para a prática.

gnash117
fonte
0

Eu também sou muito ruim em testes e sempre fui. Durante toda a minha vida, eu não conseguia entender por que uma aula de programação me deu testes para fazer com lápis e papel. Eu nunca fui bom nisso. No entanto, o que fiz foi explicar aos entrevistadores que eu tinha esse problema e sabia sobre ele. Também consegui entrevistar empresas que não me deram testes tolos.

Minha sugestão é dizer à empresa, antes de você entrar na entrevista, que você não faz isso com esses tipos de testes, no entanto, você está feliz com o X. (Descubra uma alternativa que faça sentido e você se sinta à vontade para fazer isso.) Por mim, ofereci-lhes o código e, uma vez, sugeri que eles me dessem um programa simples para escrever, e eu o levarei para o entrevista em 3 dias.

Dependendo de onde você está procurando emprego, isso pode ou não funcionar para você.

Prumo
fonte