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?
Respostas:
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á.
fonte
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.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
fonte
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.
fonte
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.).
fonte
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.
fonte
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:
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.
fonte
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).
fonte
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.
fonte
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ê.
fonte
É 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
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.
fonte
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ê.
fonte