Come posso valutare le conoscenze di un candidato su HTML / CSS durante un'intervista? [chiuso]


44

Sto cercando di determinare alcune buone domande di intervista per valutare la capacità delle persone che arrivano per un lavoro in HTML / CSS, tuttavia quell'argomento è estremamente ampio e non sono sicuro che tipo di domande posso porre per valutare correttamente l'HTML di qualcuno / Conoscenza CSS.

Che tipo di domande posso porre per valutare le capacità Html / CSS di un candidato durante un colloquio?

Idealmente vorrei fare alcune domande e poi dare loro uno scenario di vita reale per combattere.


2
Puoi mostrarmi il tuo lavoro? Sarebbe bello.
JeffO,

In effetti, ma chiunque può copiare e incollare il codice a casa per buoni esempi. Facendo loro rispondere alle domande sul posto ti consente di sapere cosa sanno da soli.
webnoob,

1
@ Rachel - Mille grazie per la modifica e la riapertura. Penso che sia una buona risorsa per questo sito.
webnoob,

10
Se non sai cosa chiedere, utilizza semplicemente alcuni test online (ad esempio http://tests4geeks.com/test/html-css ) per convalidare le competenze del candidato. Dopodiché puoi chiedergli di scrivere il codice di qualche pagina html. Ad esempio pagina con menu principale con molti sotto-elementi e piè di pagina in basso.
Joseph,

Chiedi loro cosa ne pensano di IE. Chiunque abbia dovuto fare qualcosa di non banale sa che è una PITA. ;) Seriamente potresti chiedere loro quali bug del browser hanno riscontrato.
Ben Thurley,

Risposte:


87

HTML e CSS sono difficili da intervistare per alcuni motivi:

  1. Sono troppo semplici, rispetto, ad esempio, a un linguaggio di programmazione,

  2. Dipendono molto dal contesto del lavoro. Esempi:

    • Se crei siti Web su scala Google, estremamente veloci e ottimizzati, le persone che intervisti per il lavoro non possono ignorare quali sono gli sprite CSS.

    • Se si creano siti Web validi XHTML W3C, è necessario assicurarsi che i candidati conoscano la differenza tra XHTML 1.0 e XHTML 1.1 o quali siano gli attributi obbligatori <img/>, ecc.

    • Se crei siti Web terribili pieni di hack, dovresti chiedere alle persone che intervisti su come faranno tali o tali hack, come serviranno CSS diversi per browser diversi, ecc.

    • eccetera.

  3. Se si tratta di un puro lavoro HTML e CSS, la persona dovrà lavorare con i designer da un lato e gli sviluppatori dall'altro. Devono conoscere HTML e CSS, ma ciò che è molto più prezioso è la loro capacità di interagire con quelle persone e di comprendere sia le esigenze dei progettisti, i requisiti degli sviluppatori, sia i vincoli di HTML e CSS.

    Ad esempio, devono sapere come strutturare il proprio HTML in modo tale che uno sviluppatore JavaScript possa aggiungere interattività in un secondo momento.


Potresti voler iniziare con alcune domande di base:

Qual è il tuo browser preferito?

Se la persona risponde a "Internet Explorer", interrompi immediatamente l'intervista: non hai bisogno di qualcuno del genere.

No sto scherzando. La risposta è irrilevante Invece, puoi chiedere quanto segue:

Parlami degli strumenti di debug che usi nel tuo browser preferito.

Usando Chrome principalmente, lavoro quotidianamente con gli strumenti per sviluppatori. Tali strumenti mi consentono di:

  • Visualizza le richieste fatte da una pagina,

  • Studia il tempo impiegato per caricare una pagina e le relative risorse, in particolare la ricerca DNS, i tempi di attesa e di ricezione,

  • Studia le intestazioni degli elementi inviati, nonché l'indicatore della cache,

  • Visualizza il DOM e studia come vengono applicati i selettori CSS,

Uso anche YSlow che mi serve da lista di controllo per l'ottimizzazione di un sito Web che richiede un'alta scalabilità. YSlow è anche un buon strumento per determinare se il server è configurato correttamente (invio di intestazioni corrette, ecc.).

In Firefox, utilizzo Firebug, lo strumento molto simile agli strumenti per sviluppatori di Chrome. Gli strumenti per sviluppatori sono disponibili anche nelle nuove versioni di Internet Explorer e mi consentono anche di passare da IE7 a viste di compatibilità IE10. Quest'ultima funzionalità è molto utile, poiché senza di essa, sarei costretto a installare diverse macchine virtuali solo per i test legacy o ad utilizzare molto più spesso i servizi a pagamento come Litmus .

Per favore, spiegami di che <dl/>tag si tratta? Qual era l'uso previsto per questo tag? Come viene utilizzato in pratica? Cosa ne pensi di questo uso prolungato?

Qui, si desidera che la persona che deve essere in grado di spiegare che <dl/>è per i dizionari, che associa una chiave, <dt/>con uno o più valori, <dd/>. Mentre l'uso principale di questo tag era puramente correlato alla semantica, in pratica è stato ampiamente utilizzato per sostituire le tabelle, un buon esempio è PHPBB3. Questa è una buona cosa quando le tabelle rallentano il rendering della pagina, ma devono essere usate con cautela: non solo le tabelle sono ancora appropriate in molti casi per descrivere meglio i dati, ma possono esserci anche altri mezzi, come l'ordinario elenchi, per descrivere il contenuto senza usare <dl/>.

Qual è la differenza tra layout fisso e fluido? Quali sono i pro ed i contro di ognuno?

Il layout fisso ha larghezze predefinite degli elementi. Gli elementi di un layout fluido dipendono dalla larghezza della pagina.

Il layout fisso semplifica la progettazione della pagina, soprattutto in presenza di grafica a tutta larghezza. Anche senza grafica, è ancora più facile, perché ti preoccupi solo di un caso preciso. Ad esempio, Programmers.SE è un sito Web a layout fisso, la colonna che visualizza le domande e le risposte ha sempre le stesse dimensioni. Se un layout fluido venisse utilizzato per questa colonna, ciò creerebbe un problema: su schermi di piccole dimensioni, il testo sarebbe illeggibile, poiché le linee sarebbero troppo corte, mentre su schermi di grandi dimensioni le linee sarebbero estremamente grandi, quindi il testo sarebbe anche illeggibile.

Il problema con il layout fisso è che funziona bene per alcune risoluzioni più utilizzate, ma fallisce più o meno per tutto il resto. Diventa particolarmente importante dall'adozione di monitor molto grandi e di grandi dimensioni e dal crescente utilizzo di Internet su piccoli dispositivi mobili.

Il layout fluido aiuta in questo, ma il design è più difficile da realizzare per tale sito Web. In alcuni scenari su progetti mal gestiti, ciò può portare a hacking HTML e CSS, pagine di grandi dimensioni, bassa manutenibilità e, durante lo sviluppo, a costi più elevati e scadenze non rispettate.

In una pagina con un layout fluido, come puoi evitare la situazione in cui una colonna di testo diventa troppo grande per rimanere leggibile?

È possibile limitare la larghezza di una zona di testo utilizzando la max-widthproprietà.

Cosa ne pensi di questo pezzo di codice <p color="Red" align="Center">Text here</p>:?

Il pezzo di codice ha un difetto nel mescolare la logica di presentazione all'interno dell'HTML. La logica di presentazione deve essere inserita nei CSS per diversi motivi:

  • Aiuta a separare preoccupazioni e codice pulito, il che significa manutenzione più economica in seguito,
  • Rende gli stili riutilizzabili da una pagina all'altra, il che (al di fuori dei problemi di manutenibilità) aiuta a garantire che tu stia utilizzando gli stessi stili su tutto il sito web,
  • Aiuta a ridurre la larghezza di banda, poiché i file CSS verranno memorizzati nella cache.

Dopo alcune domande di base come questa, potresti farne alcune più difficili:

Come evitare la duplicazione di colori o caratteri nei CSS, quando quei colori o caratteri vengono applicati a più elementi che non possono essere scelti come target da un singolo selettore? Ci sono degli svantaggi?

Puoi farlo utilizzando i preprocessori CSS, come Sass o LESS. Consentono di definire colori, caratteri e altre parti dello stile all'interno di variabili che è possibile utilizzare in seguito nei propri stili.

Gli svantaggi dei preprocessori CSS sono che:

  • A volte richiedono di modificare il flusso di lavoro di sviluppo e distribuzione, al fine di avere il codice CSS aggiornato nel browser,

  • Sono conosciuti solo da alcuni sviluppatori, il che rende più difficile per una nuova persona aderire o mantenere il progetto in seguito,

  • Non ci sono IDE validi e veloci per Sass o LESS e l'integrazione all'interno degli IDE più popolari è piuttosto deludente.

Fammi un esempio di un hrefvalore di un'immagine che si trova su CDN, dato che questa immagine viene visualizzata su un sito Web a cui è possibile accedere sia tramite HTTP che HTTPS.

Poiché HTTPS richiede che tutte le risorse chiamate siano anch'esse su HTTPS (altrimenti, in molti casi verrà visualizzato un avviso di sicurezza per l'utente), non è possibile specificare il collegamento come http://cdn.example.com/image.png. Per collegarsi correttamente all'immagine, //cdn.example.com/image.pngdeve essere utilizzato; il browser verrà quindi anteposto http:o in https:base al contesto.

Dato che la dimensione delle pagine e il numero di richieste su un sito Web non possono essere ottimizzati e il contenuto non può essere modificato né aggiungere AJAX, come si dà l'impressione all'utente che il sito Web sia più veloce? Cosa comporta dal punto di vista HTML?

Se si utilizza HTTP 1.1, la pagina potrebbe essere bloccata . Ciò significa che le prime parti appariranno più velocemente, dando l'impressione che il sito Web sia più veloce di quanto non sia nella realtà. La codifica di trasferimento Chunked è impossibile in HTTP 1.0, il che significa che in questo caso non c'è nulla da fare.

Essere in grado di servire il contenuto in blocchi richiede dal punto di vista HTML di riordinare gli elementi, mettendo quelli più critici nella parte superiore del file (il che non significa che dovrebbero apparire nella parte superiore della pagina). Ad esempio, su un sito Web di e-commerce, quando l'utente desidera visualizzare i dettagli del prodotto, il primo blocco può contenere i <head/>dettagli del prodotto. Il prossimo pezzo può contenere gli elementi primari come il logo del sito Web, il menu principale, il copyright, ecc. Infine, l'ultimo pezzo può contenere la sezione "Le persone che hanno acquistato anche questo acquistato", i commenti e le valutazioni del prodotto, il "Condividi su Facebook", ecc.


Infine, puoi chiedere al candidato di lavorare su uno scenario del mondo reale. Può essere qualsiasi cosa, come la più semplice di seguito, per gli scenari complessi in cui la persona ha a che fare con sprite CSS o altre tecniche di ottimizzazione avanzate, con incoerenze del browser, ecc.

Per favore, puoi creare una pagina XHTML con due zone: quella sinistra, con un elenco e quella destra, con il testo. Due zone sono separate da una linea verticale, che si estende dalla cima alla fine della pagina. Elenco e testo di dimensioni variabili, non puoi prevedere quale avrà l'altezza maggiore. Non puoi usare <table/>s.

In realtà, è piuttosto semplice ma mostra se la persona ha il riflesso di pensare alle altezze. Un candidato inesperto creerà la float:leftzona e la border-left:solid 1px #ccc;zona, ma dimentica di aggiungere il bordo alla zona sinistra e di estenderlo in modo che due bordi siano nello stesso posto.


5
Bene, ho davvero imparato alcune cose :).
Radu Murzea,

23
+1, se la persona risponde "Internet Explorer", interrompere immediatamente l'intervista.
The Muffin Man,

A 10K piace ... Lo adoro
Rama Rao M,

20

Ecco alcune domande che vorrei porre sui CSS:

  1. Modello di scatola CSS. Margini, imbottitura, ecc. Modello IE vs. modello W3C. Come si può passare tra i due? Quali sono i loro vantaggi e svantaggi?
  2. Posizionamento CSS. Cosa significa che un elemento è "nel flusso" e "fuori dal flusso"
  3. inline-blocke altri valori visualizzati. Differenza tra display: none;e visibility: hidden; (questa è una domanda buona e facile per le persone che non conoscono i CSS)
  4. inline-blockvs floatper i layout.
  5. Selettori.
  6. Ripristini CSS. Perché sono necessari e cosa realizzano?
  7. Media-query e design reattivo.
  8. Come organizzare gli stili e come ridurre il numero di selettori. MENO, Sass e altri pre-processori CSS. CSS orientato agli oggetti.

E alcune domande sull'HTML:

  1. Doctype e modalità browser.
  2. Perché alcuni tag sono più preferibili degli altri ( emrispetto iad esempio)?
  3. Quali sono i principi di base da seguire per mantenere gestibili e facili da mantenere HTML e CSS?

In generale, metto maggiormente l'accento sul CSS poiché è l'area che molte persone trovano difficile da comprendere e da usare in modo efficace. Incontro molti candidati che inseriscono "CSS" nei loro CV ma non sono in grado di rispondere ad alcuna domanda al riguardo. La maggior parte delle persone dice semplicemente "No-no, conosco i CSS abbastanza bene da gestirli ma non abbastanza da parlarne".

A volte è una buona idea dare semplicemente un compito e un intervistato da completare. Ad esempio, progettare una pagina semplice con layout e stile di blocco che supporti più dimensioni dello schermo e si adatti di conseguenza. Dovrebbero volerci circa un'ora o due e il candidato dovrebbe spiegare cosa sta facendo e perché.

Buona fortuna con l'intervista!


+1. Risposta eccellente, molto più completa, più breve e meglio organizzata della mia.
Arseni Mourzenko,

8

Se conduci un'intervista dal vivo, il modo migliore è chiedere allo sviluppatore di scrivere del codice html / css.

Esempio (molto comune nello sviluppo reale). Chiedi allo sviluppatore di scrivere il codice html / css della pagina con:

  1. Larghezza del fluido.
  2. Intestazione con altezza 100 px;
  3. Pulsante di accesso nell'angolo destro dell'intestazione
  4. Pannelli laterale sinistro e destro con larghezza 100px e altezza 200px;
  5. Pannello centrale per il testo dell'articolo.
  6. Piè di pagina, che sarà sempre in fondo. Anche se l'articolo ha 1 riga.

UPD: Di certo, chiedi allo sviluppatore di scrivere il codice usando solo div (senza tabelle).

Dovrebbe apparire come:

test css / html

Ma prima dell'intervista dal vivo, ti suggerirei di testare i candidati online. Perché è più facile testare i candidati online e invitare al colloquio solo sviluppatori abili, piuttosto che passare il tempo su ogni candidato.


1
Si noti che così com'è, i requisiti del test sono incompleti. Nella vita reale, lo sviluppatore saprà se è possibile utilizzare o meno il layout del tavolo, se position:absoluteè consentito, ecc.
Arseni Mourzenko,

4

Mi sono seduto su alcune interviste con il web designer e quello che abbiamo fatto è stato stampare un layout di Blog dall'aspetto molto semplice su carta e quindi chiedere al candidato di scrivere solo HTML e / o CSS sulla pagina per circa 10 minuti circa, per dare noi un'idea di base su come lo codificherebbero. Questo ci fa sapere se qualcuno REALMENTE conosceva CSS o no. Stavamo solo cercando cose di base come float vs table, o altro, e abbiamo spiegato che non doveva essere perfetto in alcun modo.

Tonnellate di persone hanno rivendicato anni di esperienza con i CSS, ma quando sono stati spinti a scriverlo, stavano scrivendo in supposizioni selvagge come " layout: floating; direction: up;" o altri simili jibberish. Più di 1 "CSS Ninja" non ha nemmeno capito bene la sintassi, alla " div(margin=5)". Questo mi ha aperto gli occhi, per vedere quante persone semplicemente mentono nelle interviste. Ed è apparentemente più facile mentire sul CSS che sulla codifica diretta. Non si può sapere qualcosa sui CSS, ma fare un po 'di googling ed essere in grado di gettare la terminologia corretta abbastanza rapidamente. Non puoi farlo in modo efficace con concetti di livello superiore come OOP, ad esempio.


2

Esiste un test online in cui è necessario elencare i tag HTML o le proprietà CSS in 5 minuti.

Sebbene questo non sia un test completo, può farti sapere se il candidato ha abbastanza familiarità con HTML / CSS.

A proposito della domanda, è possibile effettuare un test con il codice di esempio e chiedergli di rilevare errori di sintassi / struttura.

Per quanto riguarda lo scenario della vita reale, tutto dipende da cosa lavorerà il candidato nella tua azienda. Se vuoi solo un sviluppatore di front-end, puoi chiedere un design del sito Web su un argomento casuale.


1
Sono piuttosto irrilevanti e facilmente giocabili. Qualsiasi idiota può imparare queste liste a memoria in pochi giorni e superare l'esame.
tdammers,

Come ho detto, non è completo, ma il tuo commento potrebbe essere applicabile a qualsiasi test, a condizione che il candidato conosca il test in anticipo.
XGouchet,

infallibile * :-))
Cracker

Questi test sono orribili> Puoi semplicemente
battere

1
Devo dire che questo non è un test molto informativo ... Sto programmando HTML / CSS / JS da anni e non posso nominare tutti i tag. L'elenco dei tag che non utilizzo da anni è più lungo di quello in cui ho!
Rob Gibbons,

2

Un tipo di test applicabile ai linguaggi di programmazione e ai linguaggi di markup è una revisione del codice. Crea un piccolo campione (20 o 30 righe) con una combinazione di errori di sintassi, errori logici, casi angolari, stile discutibilmente cattivo ... Quindi chiedi al candidato di identificare qualsiasi cosa che li ritenga sospetti.

È importante utilizzare correttamente questo tipo di test: come per qualsiasi domanda di intervista, è importante il modo in cui il candidato affronta l'attività e non solo i risultati.

Non ho intenzione di pubblicare il mio test, ma alcuni suggerimenti su come applicare questo al CSS:

  • Errori di sintassi: mancano alcuni punti e virgola. Come bonus, puoi perderne alcuni opzionali (stile discutibile) e vedere se il candidato commenta.
  • Errori logici: inserire una proprietà con prefisso dopo quella non con prefisso. Ciò verifica anche la familiarità con CSS3 e può provocare una discussione sul modo in cui viene sviluppato lo standard.
  • Casi d'angolo: ad esempio un margine con 3 valori: rimarrai sorpreso da quante persone non sono consapevoli che è possibile. Se il candidato non commenta, puoi chiedere come viene interpretato per verificare che lo abbiano ignorato per conoscenza piuttosto che per ignoranza.
  • Un altro caso angolare: esercita i tuoi due o tre bug IE7 preferiti. Ciò distinguerà quelli con cicatrici da battaglia (che dovrebbero individuarne almeno una) dall'inesperto o solo dal Webkit.
  • Stile: specificità eccessiva, mancante eme così via px. Qualcuno che ha studiato la sintassi per l'intervista probabilmente non ne coglie molti.

0

Per esperienza personale, lavorando con altri sviluppatori, penso che le domande su HTML e CSS non risolveranno le persone che sanno di cosa stanno parlando da quelle che sanno cosa stanno effettivamente facendo.

Consiglierei un finto test / prototipo basato sull'esperienza realistica delle esigenze della tua azienda.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.