O que os candidatos desejam para entrevistas de redação de código?

Olá, Habrovsk. Na véspera do início do curso Java QA Engineer, estamos compartilhando com você a continuação deste material
.




Nas minhas primeiras entrevistas, eu não sabia disso. Mas os desenvolvedores não apenas me observaram - eles esperavam. Eles esperavam que eu agisse de acordo com o seguinte algoritmo:

Refinar a tarefa

  • Pergunte: “O que você quer dizer com palavra palíndromo?”
  • Isso responde à pergunta: o candidato começará a resolver o problema imediatamente - sem perceber que suas condições técnicas não estão completamente claras? Ou pense um pouco e esclareça os requisitos? ”

“Queremos dizer uma sequência que lê o mesmo da esquerda para a direita e da direita para a esquerda. Sua decisão deve ser sensível a maiúsculas e minúsculas: r pequeno não é idêntico a r grande. "

Comece com exemplos

  • Pergunte: “As palavras“ renda ”e“ cabana ”são dadas como exemplos. E frases como "A rosa caiu na pata de Azora?" Que tal uma cadeia vazia ou cadeia de caracteres únicos?
  • Isso responde à pergunta: o candidato levará em conta um número suficiente de casos limítrofes? Quão preciso e atento será?



Antes de iniciar a descrição do código, familiarize brevemente o entrevistador com o algoritmo


Como o candidato aborda a solução do problema? Ele fala seus pensamentos em voz alta para que o entrevistador os ouça?

Por exemplo, string s = "alla" .

Podemos usar o método auxiliar para a String Java, charAt (int i). Digite o índice da linha no método e ele exibirá o caractere no índice:

 s.charAt(0) == 'a' s.charAt(1) == 'l' s.charAt(2) == 'l' s.charAt(3) == 'a' 

Para descobrir o comprimento de uma string, você pode usar o método length() :

s.length == 4

Para descobrir o último caractere, você pode usar:

 int len = s.length s.charAt(len - 1) 

Começamos a contagem a partir de 0, então o último caractere será "comprimento menos 1".

Vamos chamar o primeiro caractere de "primeiro" e o último de "último".

  • Se o primeiro caractere s.charAt (first) não corresponder a s.charAt (last), esse não será um palíndromo. Saída falsa.
  • Se o primeiro caractere s.charAt (first) corresponder a s.charAt (last), procederemos à avaliação do próximo conjunto de caracteres, mudando um caractere de “first” e de “last”. Se tudo corresponder, imprima true.
  • Após verificar o algoritmo com o entrevistador, você pode começar a escrever o código:

 public boolean isPalindrome(String s) { int first = 0; int last = s.length() - 1; while (first < last) { if (s.charAt(first) != s.charAt(last)) { return false; } first++; last--; } return true; } 

Depurando e testando


  • Faça os casos de teste iniciais e tente imaginar: o que acontece se você os inserir no código.
  • Os entrevistadores verificam sua atenção ao depurar. ( Você percebe erros no código nativo sem avisar de fora? ).
  • Os entrevistadores darão dicas se você conseguir causar uma boa impressão neles. ( Se dermos dicas ao candidato, ele as usará? Ele está pronto para ouvir as opiniões dos outros? Ele pode trabalhar com pessoas em posições mais altas? ).

Mostre seu código para outras pessoas e colete seus comentários


Mostrei minha solução para o problema palíndromo ao meu amigo desenvolvedor. Ele fez uma careta: “Por que você usou as variáveis ​​primeiro e último? E por que você usou o loop de loop se você pode se dar bem com o loop for? Tudo poderia ser mais curto, mais elegante e mais rápido:

 public boolean isPalindrome(String s) { int len = s.length; for (int i = 0; i < len / 2; i++) { if ( s.charAt(i) != s.charAt(len - 1 - i)) { return false; } } return true; } 

O que vem a seguir


O domínio da linguagem de programação durante a noite não funcionará. Portanto, é melhor seguir este algoritmo:

  • Encontre tarefas básicas de programação online.
  • Tente resolvê-los com papel e caneta.
  • Se você não conseguir resolvê-los, consulte a documentação oficial da linguagem de programação e veja quais métodos internos podem ajudá-lo.
  • Formule sua própria decisão antes de procurar a de outra pessoa. Se você mesmo coletar informações e estudá-las, haverá uma chance de que essas informações permaneçam permanentemente em sua cabeça.
  • Não organize sessões de alimentação. Então você acabou de salvar as informações na memória de curto prazo.
  • Pratique corridas curtas, 15 minutos por dia. Portanto, as informações serão transferidas para uma memória de longo prazo, e você pode se lembrar mesmo com extremo estresse durante a entrevista.
  • Não se exponha a todo esse tormento apenas para passar no teste no quadro. Mire mais alto! Defina a tarefa de se tornar um programador mais profissional!

Source: https://habr.com/ru/post/pt481210/


All Articles