aguarde...

1 de julho de 2020

25 perguntas e respostas mais comuns sobre entrevistas com desenvolvedores da Web [2020]

25 perguntas e respostas mais comuns sobre entrevistas com desenvolvedores da Web [2020]

Você definiu o alarme para 14:45.

A entrevista com o desenvolvedor da Web está agendada para as 15h.

Você está esperando pacientemente e nervosamente, a tensão cavando mais fundo no seu peito, as mãos tremendo sem qualquer razão tangível, para o seu celular tocar. Você está se perguntando quais perguntas da entrevista de desenvolvimento da web o entrevistador irá disparar para você. Sua mente está se irritando. Tensão subindo entalhe por entalhe. “Estou realmente pronto para essa entrevista de codificação?” – você começa a se bater.

Você verifica seu telefone – são 15:05. Nenhuma chamada perdida. Nada.

Você ansiosamente verifica novamente o telefone – 15h15 … ainda nada.

Você já está 30 minutos sob pressão, suando e gemendo silenciosamente – seu coração dispara. A síndrome do impostor latente surge das profundezas. Você começa a enlouquecer … se perguntando se deu ou não o número de telefone errado … ou se eles podem ter se esquecido de você.

Sua mente está liderando uma batalha furiosa para superar suas ansiosas linhas de pensamento. Você, cheio de uma esperança desesperada, pega seu telefone com sua pata suada e olha para ele pela última vez … e então … ele toca.

Você pega e diz “Olá”, tentando esconder as notas trêmulas em sua voz, o tremor ansioso de seus lábios e dedos, enquanto luta contra o tremor excruciante dentro de sua mente. Você se apresenta e, em seguida … tipos de perguntas para os desenvolvedores da Web lançados contra você, pegando você desprevenido, que você mal consegue dar uma resposta adequada.

Você percebe que está completamente ferrado. A ansiedade avassaladora está se aprofundando cada vez mais em você. Você sente que tem um supino de 200 kg no peito que não pode levantar. A vertigem aparece e você esquece de repente. Você esquece sua localização, a pessoa com quem está falando … tudo. Mãos tão suadas que você simplesmente não consegue segurar o telefone sem que ele deslize pelos dedos.

Você sabe que as chances de causar uma boa impressão são tão baixas que você teria mais sorte se apostasse em baratas de corrida.

Para evitar isso, você precisa de uma preparação forte para a próxima entrevista de codificação. Você precisa ter uma noção das perguntas da entrevista para os desenvolvedores da Web que estão sendo solicitados. Isso aumentará sua confiança e diminuirá a ansiedade antes da entrevista por telefone ou no local.

Neste artigo, falarei sobre os princípios por trás do processo de entrevista ao desenvolvedor – as perguntas mais comuns sobre desenvolvedores da Web que você pode esperar dos entrevistadores e como respondê-las de uma maneira fascinante que colocará uma expressão de WOW em seus rostos (mesmo que eles quer arrancar a cabeça, reorganizar o rosto ou apenas limpar os sapatos ;-)).

Uma entrevista de desenvolvedor de software é uma negociação

Para começar, você precisa perceber que o processo de entrevistas com desenvolvedores da Web é mais como uma negociação. Você provavelmente aprendeu quando criança que precisa ser impecável durante as entrevistas e responder a todas as perguntas com precisão para causar uma boa impressão e ser contratado.

Isso não poderia estar mais longe da verdade (vindo de alguém que foi contratado enviando uma mensagem fria diretamente ao empregador – nenhum processo de entrevista oficial nem tradicional).

Sim, é claro, você precisa causar uma boa impressão. Mas se você acha que causar uma boa impressão se resume a encarar seu entrevistador sem jeito, congelado, enquanto responde a todas as perguntas da entrevista do desenvolvedor como um robô … você está muito enganado, meu amigo.

Você precisa se comunicar livremente com seu futuro empregador e, ao mesmo tempo, exala confiança, conhecimento, curiosidade e, o mais importante, entusiasmo.

Aqui estão as principais coisas que os empregadores procuram ao contratar pessoas:

Você precisa ter uma personalidade adequada, ou seja, precisa se comunicar facilmente com sua equipe, sem qualquer problema. Você precisa fazer perguntas claras e concisas e, ao mesmo tempo, fornecer respostas completas e detalhadas.

Obviamente, você também precisa possuir qualificações básicas para o trabalho para o qual está se candidatando. No entanto, muitas pessoas parecem dar muita atenção a essa (o que é perfeitamente correto), mas é apenas ¼ de toda a equação.

Cultura adequada – isso se vincula à sua personalidade. Você deve ser capaz de sincronizar com sua equipe e desenvolver uma cultura na qual todos gostem de trabalhar.

E, finalmente, tenha uma paixão ardente e entusiasmo pelo seu trabalho. Você ficará surpreso com o quão útil pode ser o entusiasmo.

Por exemplo, você pode não ter um currículo tão bom quanto o cara na sala ao lado que também está sendo entrevistado … mas se você demonstrar um entusiasmo ardente e vontade de sair do seu caminho, poderá vencer outros candidatos e ganhar o emprego. Claro, isso nem sempre pode ser o caso. Ainda assim, é muito mais provável que um empregador o contrate como uma pessoa hiper entusiasmada do que como um funcionário comum.

Tudo bem, vamos dar uma olhada em algumas das perguntas (e respostas) mais comuns sobre entrevistas com desenvolvedores da web que você pode encontrar. Primeiro, começaremos com perguntas comportamentais de engenheiro de software profissional e depois passaremos para perguntas mais técnicas.

Seja você um desenvolvedor de software front-end, back-end ou full-stack, essas perguntas comuns da entrevista em ciência da computação o ajudarão na sua preparação para a próxima entrevista de codificação.

NOTA: Algumas das questões comportamentais também podem ser observadas em entrevistas de web design. Portanto, se você é um web designer, este artigo o preparará para a próxima entrevista de web design.

O que levou você a codificar? Ou Por que você está interessado em uma carreira como desenvolvedor de software?

A maioria dos entrevistadores começa com perguntas introdutórias. Basta seguir o bom senso ao responder a essas perguntas da entrevista do engenheiro de software. Tente ser o mais transparente possível. Diga a eles o que realmente despertou seu interesse em codificação e por que você se candidatou a esse trabalho.

Qual a sua experiência com codificação até agora?

Se você está se candidatando a um emprego de desenvolvedor web de nível básico, os entrevistadores não esperam anos de experiência (eles podem até pular essa pergunta), pois você provavelmente acabou de se formar ou terminar um campo de treinamento de codificação. No entanto, se você estiver se candidatando a um cargo de engenheiro de software sênior, precisará de anos de experiência para fazer backup de seu aplicativo para esse trabalho de desenvolvimento da web.

Você tem alguma experiência com metodologias ágeis?

Você precisa se familiarizar com estruturas Agile, como Kanban e Scrum, porque atualmente as empresas estão adotando práticas ágeis e se afastando das metodologias Waterfall. Os entrevistadores também podem fazer perguntas sobre o processo SDLC (Ciclo de vida de desenvolvimento de software) .

Com quais idiomas específicos você está trabalhando?

Tão simples como isso. Você pode se concentrar nos idiomas específicos que seu trabalho de desenvolvimento da Web exigirá que você use com mais frequência.

Ultimamente, ter experiência com várias linguagens como C ++, Java e Python definitivamente aumentará os olhos do seu entrevistador com espanto.

Qual é a sua linguagem mais forte?

Seja transparente e dê uma explicação completa. Às vezes, o entrevistador pode acompanhar: “Você fica empolgado ao usar esses idiomas?” mas raramente. Obviamente, responda com Sim e explique por que você está animado.

Você está interessado em desenvolver suas habilidades?

É mais uma pergunta de entrevista de habilidade suave. Engenharia de software é um trabalho em que você sempre precisa prosperar e aprimorar suas habilidades. Os empregadores precisam saber que seus desenvolvedores estão na vanguarda usando as tecnologias mais recentes e aprimorando constantemente suas habilidades. Portanto, a resposta para a pergunta da entrevista com o desenvolvedor de software seria obviamente “Sim” – mas expanda ainda mais dizendo a eles o que mais lhe interessa quando se trata de aprender novas habilidades de codificação.

Quais são os seus tipos favoritos de projetos para trabalhar?

Fale sobre projetos semelhantes aos projetos em que você estará trabalhando na posição em que está se candidatando. Caso contrário, seja genuíno (sempre) e diga a eles o que realmente desperta sua paixão pelo desenvolvimento de software.

Conte-me sobre o projeto de engenharia de software de que mais se orgulha. O que você fez que funcionou particularmente bem?

Aqui, particularmente, os entrevistadores querem ouvir sobre problemas graves, mas muitas pessoas da sua equipe não conseguiram resolver, mas você conseguiu. Algo importante a lembrar é não tentar impressionar o entrevistador – a balança cairá de seus olhos imediatamente. Em vez de causar uma boa impressão, você causará uma desesperada. Seja casual ao falar sobre o problema que ninguém foi capaz de resolver, exceto você. Você, portanto, exala confiança e conhecimento. Ser humilde na resposta desta pergunta da entrevista do desenvolvedor da Web é fundamental.

Conte-me sobre o projeto de desenvolvimento de software do qual você menos se orgulha. O que você faria de diferente?

Outra questão de entrevista de habilidade suave. A vida é aprender com seus erros. Seja o mais transparente possível e admita abertamente os erros que você fez no passado. Fale sobre as lições que você aprendeu. Basicamente, explique como você lidou com as piores falhas e ficou mais forte.

O que você sabe sobre a nossa companhia?

Pesquise muito antes da entrevista. Percorra todos os seus perfis de mídia social para encontrar pequenas informações que impressionariam seu entrevistador. Mostre paixão e entusiasmo pela empresa. O entusiasmo desempenha um papel enorme no processo de entrevista.

Algum projeto em particular na nossa empresa que você está animado?

Igual ao anterior – realize pesquisas e análises aprofundadas antes da entrevista. Mostre paixão e entusiasmo. Diga ao entrevistador por que você gostaria de trabalhar nesses projetos específicos. Eles podem, assim, ver a razão por trás desse entusiasmo e esgotar os pensamentos de tudo o que é um mero inseto.

Essas perguntas da entrevista de desenvolvimento da web podem acontecer por telefone ou no local.

As seguintes perguntas técnicas da entrevista geralmente acontecem no local, mas às vezes podem ocorrer remotamente. Se for remotamente, o entrevistador solicitará que você compartilhe sua tela para vigiar por cima do ombro enquanto estiver codificando e, ao mesmo tempo, respondendo a perguntas da entrevista de desenvolvimento de software.

Lembre-se de que as perguntas técnicas que você está sendo solicitado dependem muito da posição para a qual você está se candidatando. Tentaremos abordar algumas das perguntas mais comuns sobre entrevistas com desenvolvedores de software e fornecer respostas razoáveis ​​que você pode ajustar facilmente à sua situação.

Perguntas técnicas da entrevista

Como você organiza seus módulos e recursos de classe?

Existem várias maneiras de escrever seu código, e todas elas estão corretas. A empresa em que você deseja ingressar provavelmente possui um padrão definido para escrever código e talvez compare sua resposta a esse padrão. Geralmente, a maioria das empresas procura desenvolvedores que adotam a abordagem mais simples do código e tentam exterminar aqueles que elogiam a maneira sofisticada de codificação. Isso ocorre porque as empresas desejam facilmente manter e documentar seu código.

Conte-me sobre o AJAX (JavaScript) em detalhes. Você pode me dar um exemplo de quando você o usou pela última vez?

As perguntas da entrevista do desenvolvedor Java são bastante comuns. Quando os entrevistadores fazem perguntas “explicativas” a esses engenheiros de software, o ponto realmente não é explicar a definição, mas dizer como você a usará em seu código. Isso indica ao entrevistador que você pode realmente “pensar”. E também mostra a maneira como você aborda a codificação.

AJAX é a abreviação de JavaScript assíncrono e XML. O AJAX é uma nova técnica para criar aplicativos da Web melhores, mais rápidos e mais interativos com a ajuda de XML, HTML, CSS e JavaScript.

Como você explicaria as APIs para as partes interessadas não técnicas?

É o mensageiro entre produtos de software. Ele permite que os sistemas de software se comuniquem e sincronizem. Por exemplo, você pode usar, por exemplo, a API do Facebook para exibir suas postagens no Facebook em seu site. E permita que as pessoas compartilhem ou comentem suas postagens diretamente do seu site sem mudar para o Facebook.

Explique um requisito não funcional e um funcional?

Um requisito não funcional descreve o tipo de sistema (acessibilidade, capacidade de manutenção, segurança). Enquanto um requisito funcional descreve a funcionalidade específica desse sistema.

Qual é a diferença entre os testes de caixa preta e caixa branca?

O teste da caixa preta é usado apenas para estabelecer uma saída correta, dada uma entrada. Por outro lado, o teste de caixa branca também abrange a implementação dessa função específica – ele testa se sua implementação está correta ou não.

Você pode descrever a arquitetura MVC (Model-View-Controller)?

Ele separa os dados da interface do usuário. A arquitetura MVC é usada principalmente para aplicativos GUI. A camada do modelo contém os dados, a camada de visualização envia os dados para o usuário e o controlador é aquele que faz alterações no modelo com base na entrada do usuário.

O que é uma função recursiva?

Uma função que se chama direta ou indiretamente. A recursão continua até atingir um conjunto de parâmetros que retornam um valor em vez de chamar a função recursivamente. Uma função recursiva pode resolver problemas específicos rapidamente.

Por favor, explique a notação big-O nos termos mais simples.

A notação big-O indica a rapidez com que um algoritmo é. Isso é muito importante se você estiver avaliando os algoritmos de outras pessoas ou o seu.

A notação Big-O, também conhecida como símbolo de Landau, informa como o tempo de execução ou o espaço necessário para uma função aumenta à medida que a entrada aumenta. O que significa que a velocidade do algoritmo não é medida em segundos, mas no crescimento do número de operações.

Como o algoritmo A * funciona?

É um algoritmo de computador amplamente utilizado na busca de caminhos e na travessia de gráficos. Ele trabalha com uma função heurística que estima o custo de ir do nó A para o B. Os nós em cada etapa são agrupados em uma fila prioritária.

Ele usa a fórmula f (n) = g (n) + h (n) para adicionar todos os nós adjacentes ao nó inicial na fila junto com suas estimativas de custo. g (n) é o custo real do nó inicial ao nó n, enquanto h (n) é a função heurística . A cada etapa, o nó com o menor custo estimado f (n) é expandido ainda mais. E um caminho é concluído quando o nó final é o que se expande.

Qual é a sua experiência com programação orientada a objetos (OOP)?

Você pode consultar este guia bem explicado sobre OOP no freeCodeCamp. Ele divide o conceito em detalhes.

E suas habilidades em SQL?

Embora os bancos de dados possam não estar no centro do seu trabalho, você precisa entender como os dados são estruturados. Qualquer experiência prática em SQL que você possa contar definitivamente adicionará pontos extras à sua entrevista de aplicativo da web.

Escreva uma função para calcular o número enésimo de Fibonacci.

O seguinte bloco de código é emprestado do Geeksforgeeks . Dá um bom exemplo.

Em C ++:

// Série Fibonacci usando recursão

#include <bits / stdc ++. h>

usando espaço para nome std;

int fib (int n)

{

se (n <= 1)

return n;

retornar fib (n-1) + fib (n-2);

}

int main ()

{

int n = 9;

cout << fib (n);

getchar ();

retornar 0;

}

// Este código é contribuído

(Créditos a Akanksha Rai)

Inverter uma string string reversa (str: String)

Um entrevistador solicitando que você reverta uma string não significa que ele solicitaria que você implementasse reversed () no seu código de produção. Eles apenas querem ver a abordagem usada para resolver problemas.

A maioria dos grandes problemas de tecnologia, sem dúvida, fará perguntas sobre algoritmos, especialmente as empresas FAANG.

O seguinte bloco de código é emprestado do Geeksforgeeks . Dá o exemplo perfeito.

// Um ​​programa C ++ simples para reverter uma string

#include <bits / stdc ++. h>

usando espaço para nome std;

// Função para reverter uma string

void reverseStr (string & str)

{

int n = comprimento ();

// Trocar caractere a partir de dois

// cantos

for (int i = 0; i <n / 2; i ++)

swap (str [i], str [n – i – 1]);

}

// Programa de driver

int main ()

{

string str = “geeksforgeeks”;

reverseStr (str);

cout << str;

retornar 0;

}

No final das contas, as empresas estão procurando pessoas inteligentes, mais do que tudo. As perguntas do algoritmo são um excelente proxy que pode eliminar muitos candidatos “burros”.

Uma atribuição de codificação:

Essa é realmente uma ótima pergunta para os engenheiros de software que a Microsoft costumava fazer aos entrevistados.

Você tem uma lista de N + 1 números inteiros entre 1 e N. Você sabe que há pelo menos uma duplicata, mas pode haver mais. Por exemplo, se N = 3, sua lista pode ser 3, 1, 1, 3 ou 1, 3, 2, 2. Imprima um número que aparece na lista mais de uma vez. (Ou seja, no primeiro exemplo, você pode imprimir ‘1’ ou ‘3’ – não é necessário imprimir os dois.)

A abordagem mais óbvia é comparar todos os números da lista com outros números até encontrar uma duplicata com as complexidades de tempo O (n²) e O (1) espaço.

Ok, digamos que a lista é muito grande, então você precisa de algo que seja mais rápido que O (n²).

Eu poderia apenas usar uma matriz booleana e usar os valores inteiros como índices com complexidade de tempo O (n) para percorrer a lista e complexidade do espaço O (n) para a matriz / hash.

Ok, digamos que a lista de números seja bastante grande, portanto, você deve evitar criar uma cópia dela. Talvez você tenha 8 GB de RAM e a lista ocupa 6 GB.

Eu poderia classificar os números e comparar pares adjacentes. Isso levaria tempo O (n * log n) e espaço O (1) se eu usar uma classificação no local como mergesort.

E se você quiser algo mais rápido que O (n²) e não puder usar muito espaço extra, mas também não conseguir manipular a lista original. Por exemplo, talvez a lista esteja em um CD somente leitura.

(Quase todo candidato precisa de uma ou duas dicas neste momento.)

Eu acho que posso procurar binário por um número duplicado. Por exemplo, passo a lista e conto o número de números inteiros entre 1 e N / 2. Se a contagem for maior que o número possível de números inteiros nesse intervalo, sei que há uma duplicata nesse intervalo. Caso contrário, uma duplicata deve existir no intervalo de N / 2 + 1 a N. Depois de saber em que metade do intervalo está a duplicata, posso recorrer e pesquisar binário nessa metade e continuar repetindo o processo até que eu tenha encontrou um número duplicado. A complexidade do tempo é O (n * log n) e a complexidade do espaço é O (1).

Portanto, isso é o suficiente para este post – as perguntas e respostas mais comuns da entrevista do desenvolvedor de software. Se você é um desenvolvedor web júnior ou um engenheiro de software sênior, espero que tenha conseguido encontrar essas perguntas e respostas da entrevista úteis. Você pode passar pelo post novamente para aumentar ainda mais sua confiança.

E lembre-se: o desempenho da sua entrevista de desenvolvimento na Web não significa nada para suas habilidades de engenharia de software. Se você estragar tudo nas primeiras vezes – não é grande coisa. Apenas avance para a próxima entrevista de desenvolvimento de software. Eventualmente, você conseguirá uma posição na empresa dos seus sonhos e todas as entrevistas aos desenvolvedores pelas quais passou valerão a pena.

Posted in Blog
Write a comment