Quais são as boas perguntas para determinar se o candidato é realmente um desenvolvedor profissional de JavaScript (lado do navegador)?
Perguntas que podem distinguir se alguém não é um programador ad-hoc JavaScript, mas está realmente desenvolvendo JavaScript profissional, orientado a objetos, reutilizável e sustentável.
Forneça respostas , para que programadores intermediários e ad-hoc de JavaScript possam entrevistar alguém mais experiente, apresentando respostas para poucas dessas perguntas avançadas. Por favor, evite perguntas abertas .
Mantenha uma pergunta / resposta da entrevista por resposta do SO para obter uma melhor experiência de leitura e uma preparação mais fácil da entrevista.
javascript
WooYek
fonte
fonte
Respostas:
Como o JavaScript é uma linguagem tão pequena, mas com uma complexidade incrível, você deve poder fazer perguntas relativamente básicas e descobrir se elas são realmente boas com base em suas respostas. Por exemplo, minha primeira pergunta padrão para avaliar o restante da entrevista é:
Programadores iniciantes em JS podem ter uma resposta básica sobre habitantes locais e globais. Os caras intermediários da JS definitivamente devem ter essa resposta e provavelmente devem mencionar o escopo no nível da função. Qualquer pessoa que se autodenomine um programador JS "avançado" deve estar preparado para falar sobre locais, globais implícitos,
window
objeto, escopo de função, levantamento de declaração e cadeias de escopo. Além disso, eu adoraria ouvir sobre[[DontDelete]]
, içar precedência (parâmetros vsvar
vsfunction
) eundefined
.Outra boa pergunta é pedir que eles escrevam uma
sum()
função que aceite qualquer número de argumentos e retorne sua soma. Em seguida, peça que eles usem essa função (sem modificação) para somar todos os valores em uma matriz. Eles devem escrever uma função que se parece com isso:E eles devem invocá-lo em sua matriz como este (o contexto
apply
pode ser o que for, eu costumo usarnull
nesse caso):Se eles têm essas respostas, provavelmente sabem o JavaScript. Você deve então perguntar a eles sobre coisas não específicas de JS, como testes, fluxos de trabalho, controle de versão etc. para descobrir se eles são um bom programador .
fonte
Programação JS básica
Scope of variable
Associative Array
? Como usamos?OOPS JS
Difference between Classic Inheritance and Prototypical Inheritance
difference between private variable, public variable and static variable
? Como conseguimos isso em JS?add/remove properties to object
em tempo de execução?inheritance
?extend built-in objects
?extending array is bad idea
?DOM e JS
Difference between browser detection and feature detection
DOM Event Propagation
Event Delegation
Event bubbling V/s Event Capturing
Diversos
Graceful Degradation V/s Progressive Enhancement
fonte
Pergunte sobre "isso". Esta é uma boa pergunta que pode ser um verdadeiro teste do desenvolvedor JavaScript.
fonte
(Suponho que você queira dizer JavaScript no navegador)
Pergunte a ele por que, apesar de seu conhecimento infinito de JavaScript, ainda é uma boa idéia usar estruturas existentes, como jQuery, Mootools, Prototype etc.
Resposta: Bons codificadores, ótimos codificadores reutilizam. Milhares de horas de trabalho foram despejadas nessas bibliotecas para abstrair os recursos do DOM, longe das implementações específicas do navegador. Não há razão para passar por todos os diferentes DOM do navegador apenas para reinventar as correções.
fonte
Pergunte a eles como eles garantem que suas páginas continuem sendo utilizáveis quando o usuário tiver o JavaScript desativado ou o JavaScript não estiver disponível.
Não existe uma resposta verdadeira, mas você está buscando uma resposta falando sobre algumas estratégias para o aprimoramento progressivo .
fonte
Pergunte como fechamentos acidentais podem causar vazamento de memória no IE.
fonte
Pergunte "Qual estrutura de teste de unidade você usa? E por quê?"
Você pode decidir se realmente é necessário usar uma estrutura de teste, mas a conversa pode dizer muito sobre o quão especialista é a pessoa.
fonte
programadores intermediários devem ter domínio técnico de suas ferramentas.
se ele passou nas perguntas técnicas de tela do telefone acima, faça-o esboçar algo estúpido no local, como um abreviador de URL do Ajax. depois grelhe-o em seu portfólio. nenhum portfólio incrível = desenvolvedor intermediário neste domínio e não o cara que você quer encarregar do seu brilhante e novo projeto.
fonte