¿Cuáles son buenas preguntas para determinar si el solicitante es realmente un desarrollador profesional de JavaScript (lado del navegador)?
Preguntas que pueden distinguir si alguien no es un programador de JavaScript ad-hoc, pero realmente está haciendo un desarrollo profesional de JavaScript, orientado a objetos, reutilizable y mantenible.
Proporcione respuestas , de modo que un programador de JavaScript intermedio y ad-hoc pueda entrevistar a alguien más experimentado, y se le ocurrirán respuestas a muy pocas de esas preguntas avanzadas. Por favor, evite las preguntas abiertas .
Por favor, mantenga una pregunta de la entrevista / respuesta por respuesta SO para una mejor experiencia de lectura y preparación de la entrevista más fácil.
javascript
WooYek
fuente
fuente
Respuestas:
Debido a que JavaScript es un lenguaje tan pequeño, pero con una complejidad increíble, debería poder hacer preguntas relativamente básicas y descubrir si realmente son tan buenas en función de sus respuestas. Por ejemplo, mi primera pregunta estándar para evaluar el resto de la entrevista es:
Los programadores novatos de JS pueden tener una respuesta básica sobre locales vs globales. Los chicos de JS intermedios definitivamente deberían tener esa respuesta, y probablemente deberían mencionar el alcance del nivel de función. Cualquiera que se llame a sí mismo un programador JS "avanzado" debe estar preparado para hablar sobre locales, globales implícitos, el
window
objeto, el alcance de la función, el levantamiento de declaraciones y las cadenas de alcance. Además, me encantaría saber sobre la[[DontDelete]]
elevación de la precedencia (parámetros vsvar
vsfunction
) yundefined
.Otra buena pregunta es pedirles que escriban una
sum()
función que acepte cualquier número de argumentos y devuelva su suma. Luego, pídales que usen esa función (sin modificación) para sumar todos los valores en una matriz. Deberían escribir una función que se vea así:Y deberían invocarlo en su matriz de esta manera (el contexto
apply
puede ser lo que sea, generalmente usonull
en ese caso):Si tienen esas respuestas, probablemente conozcan su JavaScript. Luego, debe preguntarles acerca de cosas no específicas de JS, como pruebas, flujos de trabajo, control de versiones, etc., para averiguar si son un buen programador .
fuente
Programación básica de JS
Scope of variable
Associative Array
? ¿Cómo lo usamos?OOPS JS
Difference between Classic Inheritance and Prototypical Inheritance
difference between private variable, public variable and static variable
? ¿Cómo logramos esto en JS?add/remove properties to object
en tiempo de ejecución?inheritance
?extend built-in objects
?extending array is bad idea
?DOM y JS
Difference between browser detection and feature detection
DOM Event Propagation
Event Delegation
Event bubbling V/s Event Capturing
Misceláneos
Graceful Degradation V/s Progressive Enhancement
fuente
Pregunte sobre "esto". Esta es una buena pregunta que puede ser una verdadera prueba del desarrollador de JavaScript.
fuente
(Supongo que te refieres a JavaScript del lado del navegador)
Pregúntele por qué, a pesar de su conocimiento infinito de JavaScript, sigue siendo una buena idea usar marcos existentes como jQuery, Mootools, Prototype, etc.
Respuesta: Código de codificadores buenos, reutilización de codificadores geniales. Se han invertido miles de horas hombre en estas bibliotecas para abstraer las capacidades DOM lejos de las implementaciones específicas del navegador. No hay razón para pasar por todos los diferentes dolores de cabeza DOM del navegador solo para reinventar las soluciones.
fuente
Pregúnteles cómo se aseguran de que sus páginas sigan siendo utilizables cuando el usuario tiene JavaScript desactivado o JavaScript no está disponible.
No hay una respuesta verdadera, pero está buscando una respuesta que habla sobre algunas estrategias para la mejora progresiva .
fuente
Pregunte cómo los cierres accidentales pueden causar pérdidas de memoria en IE.
fuente
Pregunte "¿Qué marco de prueba de unidad utiliza? ¿Y por qué?"
Puede decidir si realmente es necesario usar un marco de prueba, pero la conversación puede decirle mucho sobre cuán experta es la persona.
fuente
Los programadores intermedios deben tener dominio técnico de sus herramientas.
Si ha superado las preguntas técnicas de la pantalla del teléfono técnico anteriores, haz que dibuje algo estúpido en el acto, como un acortador de URL de Ajax. luego asarlo a la parrilla en su cartera. ninguna cartera asombrosa = desarrollador intermedio en este dominio y no el tipo que desea a cargo de su nuevo y brillante proyecto.
fuente