Estoy tratando de determinar algunas buenas preguntas de entrevista para evaluar la capacidad de las personas que vienen para un trabajo de HTML / CSS, sin embargo, ese tema es extremadamente amplio, y no estoy seguro de qué tipo de preguntas puedo hacer para evaluar adecuadamente el HTML / Conocimiento de CSS.
¿Qué tipo de preguntas puedo hacer para evaluar las habilidades Html / CSS de un candidato durante una entrevista?
Idealmente me gustaría hacer algunas preguntas y luego darles un escenario de la vida real para combatir.
web-development
html
css
webnoob
fuente
fuente
Respuestas:
HTML y CSS son difíciles de entrevistar por varias razones:
Son demasiado básicos, comparados, por ejemplo, con un lenguaje de programación,
Dependen mucho del contexto del trabajo. Ejemplos:
Si crea una escala de Google, sitios web enormemente rápidos y optimizados, las personas que entrevista para el trabajo no pueden ignorar qué son los sprites CSS.
Si crea sitios web válidos XHTML W3C, debe asegurarse de que los candidatos sepan la diferencia entre XHTML 1.0 y XHTML 1.1, o cuáles son los atributos obligatorios
<img/>
, etc.Si crea sitios web terribles llenos de hacks, debe preguntar a las personas que entreviste cómo harán tal o cual hack, cómo sirven CSS diferentes para diferentes navegadores, etc.
etc.
Si es un trabajo puro de HTML y CSS, la persona tendrá que trabajar con diseñadores por un lado y desarrolladores por otro lado. Deben saber HTML y CSS, pero lo que es mucho más valioso es su capacidad para interactuar con esas personas y comprender las necesidades de los diseñadores, los requisitos de los desarrolladores y las limitaciones de HTML y CSS.
Por ejemplo, deben saber cómo estructurar su HTML de tal manera que sea fácil para un desarrollador de JavaScript agregar interactividad más adelante.
Es posible que desee comenzar con algunas preguntas básicas:
Si la persona responde "Internet Explorer", detenga la entrevista de inmediato: no necesita a alguien así.
No estoy bromeando. La respuesta es irrelevante. En cambio, puede preguntar lo siguiente:
Principal usando Chrome, trabajo a diario con las Herramientas para desarrolladores Esas herramientas me permiten:
Ver las solicitudes realizadas desde una página,
Estudie el tiempo que lleva cargar una página y los recursos relacionados, especialmente los tiempos de búsqueda, espera y recepción de DNS,
Estudie los encabezados de los elementos enviados, así como el indicador de caché,
Ver el DOM y estudiar cómo se aplican los selectores CSS,
También uso YSlow, que me sirve como una lista de verificación para la optimización de un sitio web que requiere una gran escalabilidad. YSlow también es una buena herramienta cuando se trata de determinar si el servidor está configurado correctamente (enviando encabezados correctos, etc.).
En Firefox, uso Firebug, la herramienta muy similar a las Herramientas para desarrolladores de Chrome. Las herramientas para desarrolladores también están disponibles en nuevas versiones de Internet Explorer, y también me permiten cambiar a las vistas de compatibilidad de IE7 a IE10. Esta última característica es muy útil, ya que sin ella, me vería obligado a instalar varias máquinas virtuales solo para pruebas heredadas, o para usar con mucha más frecuencia los servicios pagos como Litmus .
A continuación, desea que la persona sea capaz de explicar que
<dl/>
es para los diccionarios, que asocia una clave,<dt/>
con uno o varios valores,<dd/>
. Si bien el uso principal de esta etiqueta estaba puramente relacionado con la semántica, en la práctica se usó ampliamente para reemplazar tablas, un buen ejemplo es PHPBB3. Esto es algo bueno cuando las tablas retrasan el procesamiento de la página, pero debe usarse con precaución: no solo las tablas siguen siendo apropiadas en muchos casos para describir mejor los datos, sino que también puede haber otros medios, como el ordinario listas, para describir el contenido sin usar<dl/>
.El diseño fijo tiene anchos predefinidos de los elementos. Los elementos de un diseño fluido dependen del ancho de la página.
El diseño fijo facilita el diseño de la página, especialmente cuando hay muchos gráficos de ancho completo. Incluso sin gráficos, es aún más fácil, porque solo te importa un caso preciso. Por ejemplo, Programmers.SE es un sitio web de diseño fijo, la columna que muestra las preguntas y las respuestas siempre tiene el mismo tamaño. Si se usara un diseño fluido para esta columna, esto crearía un problema: en pantallas pequeñas, el texto sería ilegible, porque las líneas serían demasiado cortas, mientras que en pantallas grandes, las líneas serían extremadamente grandes, por lo que el texto sería ilegible también.
El problema con el diseño fijo es que funciona bien para algunas de las resoluciones más utilizadas, pero falla más o menos para todo lo demás. Se vuelve especialmente importante desde la adopción de monitores muy grandes y anchos, y el uso cada vez mayor de Internet en dispositivos móviles pequeños.
El diseño fluido ayuda con eso, pero el diseño es más difícil de hacer para dicho sitio web. En algunos escenarios en proyectos mal administrados, esto puede conducir a hacks de HTML y CSS, páginas grandes, poca capacidad de mantenimiento y, durante el desarrollo, a mayores costos y plazos incumplidos.
Puede limitar el ancho de una zona de texto mediante la
max-width
propiedad.El fragmento de código tiene una falla para mezclar la lógica de presentación dentro de HTML. La lógica de presentación debe ponerse en CSS por varias razones:
Después de algunas preguntas básicas como esa, puede hacer algunas más difíciles:
Lo haces usando preprocesadores CSS, como Sass o LESS. Permiten definir colores, fuentes y otras partes del estilo dentro de variables que puede usar más adelante en sus estilos.
Los inconvenientes de los preprocesadores CSS son que:
A veces requieren cambiar el flujo de trabajo de desarrollo e implementación, para tener el código CSS actualizado en el navegador,
Solo unos pocos desarrolladores los conocen, lo que dificulta que una nueva persona se una o mantenga el proyecto más adelante,
No hay IDE buenos y rápidos para Sass o LESS, y la integración dentro de los IDE más populares es bastante decepcionante.
Dado que HTTPS también necesita que todos los recursos llamados estén en HTTPS (de lo contrario, en muchos casos se mostrará una advertencia de seguridad al usuario), no es posible especificar el enlace como
http://cdn.example.com/image.png
. Para vincular correctamente a la imagen, se//cdn.example.com/image.png
debe utilizar; el navegador se antepondráhttp:
ohttps:
dependerá del contexto.Si se utiliza HTTP 1.1, la página puede estar fragmentada . Esto significa que las primeras partes aparecerán más rápido, dando la impresión de que el sitio web es más rápido de lo que es en realidad. La codificación de transferencia fragmentada es imposible en HTTP 1.0, lo que significa que no hay nada que hacer en este caso.
Ser capaz de servir el contenido fragmentado requiere desde la perspectiva HTML reordenar los elementos, colocando los más críticos en la parte superior del archivo (lo que no significa que tendrían que aparecer en la parte superior de la página). Por ejemplo, en un sitio web de comercio electrónico, cuando el usuario desea ver los detalles del producto, el primer fragmento puede contener los
<head/>
detalles del producto. El siguiente fragmento puede contener los elementos principales, como el logotipo del sitio web, el menú principal, los derechos de autor, etc. Finalmente, el último fragmento puede contener la sección "Las personas que compraron esto también compraron", los comentarios y calificaciones del producto, el "Compartir en Facebook", etc.Finalmente, puede pedirle al candidato que trabaje en un escenario del mundo real. Puede ser cualquier cosa, como la más fácil a continuación, en los escenarios complejos donde la persona tiene que lidiar con sprites CSS u otras técnicas avanzadas de optimización, con inconsistencias del navegador, etc.
En realidad, es bastante simple, pero muestra si la persona tiene el reflejo de pensar en las alturas. Un candidato inexperto creará la
float:left
zona y laborder-left:solid 1px #ccc;
zona, pero olvide agregar el borde a la zona izquierda y extenderlo para que dos bordes estén en el mismo lugar.fuente
Aquí hay algunas preguntas que haría sobre CSS:
inline-block
y otros valores de visualización. Diferencia entredisplay: none;
yvisibility: hidden;
(esta es una pregunta buena y fácil para las personas nuevas en CSS)inline-block
vsfloat
para diseños.Y algunas preguntas sobre HTML:
em
comparación con,i
por ejemplo)?En general, pongo más énfasis en CSS, ya que es el área que a muchas personas les resulta difícil de entender y usar de manera efectiva. Me encuentro con muchos candidatos que ponen "CSS" en sus CV pero no pueden responder ninguna pregunta al respecto. La mayoría de la gente simplemente dice "No, no, sé que CSS es lo suficientemente bueno como para lidiar con él, pero no lo suficiente como para hablar de ello".
A veces es una buena idea dar una tarea simple y completar al entrevistado. Digamos, diseñe una página simple con diseño y estilo de bloque que admita múltiples tamaños de pantalla y se ajuste en consecuencia. Debería tomar aproximadamente una hora o dos y el candidato debería explicar lo que está haciendo y por qué.
¡Buena suerte con las entrevistas!
fuente
Si realiza una entrevista en vivo, la mejor manera es pedirle al desarrollador que escriba un código html / css.
Ejemplo (muy común en desarrollo real). Solicite al desarrollador que escriba el código html / css de la página con:
UPD: de cource, solicite al desarrollador que escriba el código utilizando solo divs (sin tablas).
Debería verse así:
Pero antes de la entrevista en vivo, le sugiero que evalúe a los candidatos en línea. Debido a que es más fácil evaluar a los candidatos en línea e invitar a la entrevista solo a desarrolladores calificados, que gastar su tiempo en cada candidato.
fuente
position:absolute
está permitido, etc.Me senté en algunas entrevistas con diseñadores web, y lo que hicimos fue imprimir un diseño de Blog muy simple en papel, y luego le pedí al candidato que simplemente escribiera algo de HTML y / o CSS en la página durante más o menos 10 minutos, para dar una idea básica de cómo lo codificarían. Esto nos permite saber si alguien REALMENTE sabía CSS o no. Solo buscábamos cosas básicas como flotadores frente a tablas, o lo que sea, y explicamos que no tenía que ser perfecto de ninguna manera.
Toneladas de personas reclamaron años de experiencia con CSS, pero cuando se les presionó para que lo escribieran, estaban escribiendo en conjeturas salvajes como "
layout: floating; direction: up;
" u otras tonterías. Más de 1 "CSS Ninja" ni siquiera tenía la sintaxis correcta, a la "div(margin=5)
". Eso fue muy revelador para mí, ver cuántas personas simplemente mienten directamente en las entrevistas. Y es aparentemente más fácil mentir sobre CSS que sobre la codificación directa. No puede saber nada sobre CSS, pero busque en Google y sea capaz de lanzar la terminología adecuada con bastante rapidez. Realmente no puede hacerlo efectivamente con conceptos de nivel superior como OOP, por ejemplo.fuente
Hay una prueba en línea en la que debe enumerar las etiquetas HTML o las propiedades CSS en 5 minutos.
Aunque esta no es una prueba de prueba completa, puede hacerle saber si el candidato está suficientemente familiarizado con HTML / CSS.
Sobre la pregunta, puede hacer una prueba con un código de muestra y pedirle que detecte errores de sintaxis / estructura.
En cuanto al escenario de la vida real, todo depende de en qué trabajará el candidato en su empresa. Si solo desea un desarrollador front-end, puede solicitar un diseño de sitio web sobre un tema aleatorio.
fuente
Un tipo de prueba que es aplicable a los lenguajes de programación y los lenguajes de marcado es una revisión de código. Cree una pequeña muestra (20 o 30 líneas) con una mezcla de errores de sintaxis, errores lógicos, casos de esquina, posiblemente un mal estilo ... Luego, pídale al candidato que identifique cualquier cosa que los considere sospechosa.
Es importante usar este tipo de prueba correctamente: como con cualquier pregunta de entrevista, la forma en que el candidato aborda la tarea es importante, y no solo los resultados.
No voy a publicar mi prueba, pero algunos consejos sobre cómo aplicar esto a CSS:
em
ypx
etc. Alguien que estudió la sintaxis para la entrevista probablemente no captará muchos de estos.fuente
Por experiencia personal, trabajando con otros desarrolladores, creo que las preguntas sobre HTML y CSS no separarán a las personas que saben de lo que están hablando de las que saben lo que realmente están haciendo.
Recomiendo un simulacro de prueba / prototipo basado en la experiencia realista de las necesidades de su empresa.
fuente