Estou tentando determinar algumas boas perguntas da entrevista para avaliar a capacidade das pessoas que entram para um trabalho em HTML / CSS, no entanto, esse tópico é extremamente amplo e não tenho certeza de que tipo de perguntas posso fazer para avaliar adequadamente o HTML / alguém. Conhecimento de CSS.
Que tipo de perguntas posso fazer para avaliar as habilidades de HTML / CSS de um candidato durante uma entrevista?
Idealmente, gostaria de fazer algumas perguntas e depois dar a elas um cenário da vida real para combater.
web-development
html
css
webnoob
fonte
fonte
Respostas:
HTML e CSS são difíceis de entrevistar por alguns motivos:
Eles são muito básicos, comparados, por exemplo, a uma linguagem de programação,
Eles dependem muito do contexto do trabalho. Exemplos:
Se você criar uma escala do Google, sites extremamente rápidos e otimizados, as pessoas que entrevistar para o trabalho não poderão ignorar o que são sprites CSS.
Se você criar sites válidos para XHTML W3C, deverá garantir que os candidatos saibam a diferença entre XHTML 1.0 e XHTML 1.1 ou para quais são os atributos obrigatórios
<img/>
etc.Se você criar sites terríveis e cheios de hacks, pergunte às pessoas que entrevistar sobre como elas irão fazer tal ou qual hack, como elas servem CSS diferente para diferentes navegadores, etc.
etc.
Se for um trabalho puro de HTML e CSS, a pessoa terá que trabalhar com designers, por um lado, e desenvolvedores, por outro. Eles precisam conhecer HTML e CSS, mas o que é muito mais valioso é a capacidade de interagir com essas pessoas e entender as necessidades dos designers, os requisitos dos desenvolvedores e as restrições de HTML e CSS.
Por exemplo, eles precisam saber como estruturar seu HTML de tal maneira que seria fácil para um desenvolvedor JavaScript adicionar interatividade posteriormente.
Você pode começar com algumas perguntas básicas:
Se a pessoa responder "Internet Explorer", pare a entrevista imediatamente: você não precisa de alguém assim.
Não eu estou brincando. A resposta é irrelevante. Em vez disso, você pode perguntar o seguinte:
Primário usando o Chrome, trabalho diariamente com as Ferramentas do desenvolvedor. Essas ferramentas me permitem:
Veja os pedidos feitos a partir de uma página,
Estude o tempo necessário para carregar uma página e os recursos relacionados, especialmente a pesquisa de DNS, os tempos de espera e recebimento,
Estude os cabeçalhos dos elementos enviados, bem como o indicador de cache,
Veja o DOM e estude como os seletores de CSS são aplicados,
Também uso o YSlow, que me serve como uma lista de verificação para otimização de um site que exige alta escalabilidade. O YSlow também é uma boa ferramenta para determinar se o servidor está configurado corretamente (enviando cabeçalhos corretos, etc.).
No Firefox, eu uso o Firebug, a ferramenta muito semelhante às Ferramentas do desenvolvedor do Chrome. As ferramentas de desenvolvedor também estão disponíveis em novas versões do Internet Explorer e também permitem que eu mude para as visualizações de compatibilidade do IE7 ao IE10. Esse último recurso é muito útil, pois sem ele, eu seria obrigado a instalar várias máquinas virtuais apenas para testes herdados ou a usar muito mais frequentemente os serviços pagos, como o Litmus .
Aqui, você deseja que a pessoa possa explicar que
<dl/>
é para dicionários, associando uma chave<dt/>
, com um ou vários valores<dd/>
,. Embora o uso primário dessa tag tenha sido puramente relacionado à semântica, na prática foi amplamente utilizado para substituir tabelas, um bom exemplo sendo o PHPBB3. Isso é bom quando as tabelas estão atrasando a renderização da página, mas deve ser usada com cautela: não apenas as tabelas ainda são adequadas em muitos casos para melhor descrever os dados, mas também pode haver outros meios, como os comuns listas, para descrever o conteúdo sem usar<dl/>
.O layout fixo possui larguras predefinidas dos elementos. Os elementos de um layout fluido dependem da largura da página.
O layout fixo facilita o design da página, especialmente quando há muitos gráficos de largura total. Mesmo sem gráficos, ainda é mais fácil, porque você se importa apenas com um caso preciso. Por exemplo, sendo Programmers.SE um site de layout fixo, a coluna que exibe as perguntas e as respostas sempre tem o mesmo tamanho. Se um layout fluido fosse usado para esta coluna, isso criaria um problema: em telas pequenas, o texto seria ilegível, porque as linhas seriam muito curtas, enquanto em telas grandes as linhas seriam extremamente grandes, portanto o texto seria ilegível também.
O problema com o layout fixo é que ele funciona bem para algumas resoluções mais usadas, mas falha mais ou menos em todo o resto. Torna-se especialmente importante desde a adoção de monitores amplos e muito grandes e o crescente uso da Internet em dispositivos móveis pequenos.
O layout fluido ajuda nisso, mas o design é mais difícil de fazer para esse site. Em alguns cenários de projetos mal gerenciados, isso pode levar a invasões de HTML e CSS, páginas grandes, baixa manutenção e, durante o desenvolvimento, custos mais altos e prazos perdidos.
Você pode limitar a largura de uma zona de texto usando a
max-width
propriedadeO trecho de código possui uma falha para misturar a lógica da apresentação dentro do HTML. A lógica de apresentação deve ser colocada no CSS por vários motivos:
Após algumas perguntas básicas como essa, você pode fazer outras mais complicadas:
Você faz isso usando pré-processadores CSS, como Sass ou LESS. Eles permitem definir cores, fontes e outras partes do estilo dentro de variáveis que você pode usar posteriormente em seus estilos.
As desvantagens dos pré-processadores CSS são:
Às vezes, eles precisam alterar o fluxo de trabalho de desenvolvimento e implantação para ter o código CSS atualizado no navegador,
Eles são conhecidos apenas por alguns desenvolvedores, o que torna mais difícil para uma nova pessoa ingressar ou manter o projeto posteriormente,
Não existem IDEs bons e rápidos para Sass ou LESS, e a integração nos IDEs mais populares é bastante decepcionante.
Como o HTTPS precisa que todos os recursos chamados também estejam no HTTPS (caso contrário, um aviso de segurança será exibido ao usuário em muitos casos), não é possível especificar o link como
http://cdn.example.com/image.png
. Para vincular corretamente à imagem,//cdn.example.com/image.png
deve ser usado; o navegador será anexado previamentehttp:
ouhttps:
dependendo do contexto.Se o HTTP 1.1 for usado, a página poderá estar em pedaços . Isso significa que as primeiras partes aparecerão mais rapidamente, dando a impressão de que o site é mais rápido do que na realidade. A codificação de transferência fragmentada é impossível no HTTP 1.0, o que significa que não há nada a fazer nesse caso.
Ser capaz de veicular o conteúdo em blocos requer, da perspectiva do HTML, reordenar os elementos, colocando os mais críticos na parte superior do arquivo (o que não significa que eles precisariam aparecer na parte superior da página). Por exemplo, em um site de comércio eletrônico, quando o usuário deseja ver os detalhes do produto, o primeiro pedaço pode conter os
<head/>
detalhes do produto. O próximo pedaço pode conter os elementos principais, como o logotipo do site, o menu principal, os direitos autorais etc. Por fim, o último pedaço pode conter a seção "Pessoas que compraram este também compraram", os comentários e as classificações do produto, o "Compartilhar no Facebook" etc.Por fim, você pode pedir ao candidato para trabalhar em um cenário do mundo real. Pode ser qualquer coisa, como a mais fácil abaixo, para os cenários complexos em que a pessoa precisa lidar com sprites de CSS ou outras técnicas avançadas de otimização, com inconsistências no navegador etc.
Na verdade, é bem simples, mas mostra se a pessoa tem o reflexo de pensar em altura. Um candidato inexperiente criará a
float:left
zona e aborder-left:solid 1px #ccc;
zona, mas esqueça de adicionar a borda à zona esquerda e estendê-la para que duas bordas fiquem no mesmo local.fonte
Aqui estão algumas perguntas que eu faria sobre CSS:
inline-block
e outros valores de exibição. Diferença entredisplay: none;
evisibility: hidden;
(esta é uma pergunta boa e fácil para pessoas novas em CSS)inline-block
vsfloat
para layouts.E algumas perguntas sobre HTML:
em
vsi
por exemplo)?Em geral, enfatizo mais o CSS, já que é a área que muitas pessoas acham difícil de entender e usar de maneira eficaz. Conheço muitos candidatos que colocam "CSS" em seus currículos, mas não conseguem responder a nenhuma pergunta sobre isso. A maioria das pessoas apenas diz "Não, não, eu sei que o CSS é bom o suficiente para lidar com isso, mas não o suficiente para falar sobre isso".
Às vezes, é uma boa ideia fornecer uma tarefa simples para o entrevistado concluir. Digamos, crie uma página simples com layout e estilo de bloco que suporte vários tamanhos de tela e ajuste de acordo. Deve levar cerca de uma hora ou duas e o candidato deve explicar o que está fazendo e por quê.
Boa sorte com entrevistas!
fonte
Se você realizar uma entrevista ao vivo, a melhor maneira é pedir ao desenvolvedor que escreva algum código html / css.
Exemplo (muito comum no desenvolvimento real). Peça ao desenvolvedor para escrever o código da página html / css com:
UPD: Por gentileza, peça ao desenvolvedor que escreva o código usando apenas divs (sem tabelas).
Deve parecer com:
Mas antes da entrevista ao vivo, sugiro que você teste os candidatos on-line. Como é mais fácil testar candidatos on-line e convidar para a entrevista apenas bons desenvolvedores qualificados, do que gastar seu tempo com todos os candidatos.
fonte
position:absolute
é permitido, etc.Participei de algumas entrevistas com web designers e o que fizemos foi imprimir um layout de blog muito simples em papel e depois pedir ao candidato que apenas anotasse algum HTML e / ou CSS na página por mais de 10 minutos, para fornecer nos uma idéia básica de como eles o codificariam. Isso nos permite saber se alguém realmente conhecia CSS ou não. Estávamos apenas procurando coisas básicas, como carros alegóricos versus tabelas, ou qualquer outra coisa, e explicamos que não precisava ser perfeito de forma alguma.
Toneladas de pessoas reivindicaram anos de experiência com CSS, mas quando pressionadas para escrevê-las, estavam escrevendo suposições malucas como "
layout: floating; direction: up;
" ou outras bobagens desse tipo. Mais de 1 "CSS Ninja" nem sequer conseguiu a sintaxe correta, a la "div(margin=5)
". Isso foi muito revelador para mim, ver quantas pessoas acabam de mentir em entrevistas. E é aparentemente mais fácil mentir sobre CSS do que sobre codificação direta. Você não sabia nada sobre CSS, mas pesquise no Google e seja capaz de lançar a terminologia adequada rapidamente. Você não pode fazer isso efetivamente com conceitos de nível superior, como OOP, por exemplo.fonte
Há um teste online no qual você deve listar as tags HTML ou as propriedades CSS em 5 minutos.
Embora esse não seja um teste completo, isso permite que você saiba se o candidato está familiarizado o suficiente com HTML / CSS.
Sobre a pergunta, você pode fazer um teste com código de exemplo e solicitar que ele detecte erros de sintaxe / estrutura.
Quanto ao cenário da vida real, tudo depende do que o candidato trabalhará na sua empresa. Se você deseja apenas um desenvolvedor front-end, pode solicitar um design de site sobre um tópico aleatório.
fonte
Um tipo de teste aplicável a linguagens de programação e linguagens de marcação é uma revisão de código. Crie uma pequena amostra (20 ou 30 linhas) com uma mistura de erros de sintaxe, erros lógicos, maiúsculas e minúsculas, estilo indiscutivelmente ruim ... Em seguida, peça ao candidato para identificar qualquer coisa que pareça suspeita.
É importante usar esse tipo de teste corretamente: como em qualquer pergunta da entrevista, a maneira como o candidato aborda a tarefa é importante, e não apenas os resultados.
Não vou postar meu teste, mas algumas dicas de como aplicar isso ao CSS:
em
epx
etc. Alguém que estudou a sintaxe para a entrevista provavelmente não vai entender muitos deles.fonte
Por experiência pessoal, trabalhando com outros desenvolvedores, acho que as perguntas sobre HTML e CSS não classificam as pessoas que sabem do que estão falando e as que sabem o que estão realmente fazendo.
Eu recomendaria um teste / protótipo simulado com base na experiência realista das necessidades da sua empresa.
fonte