Come posso testare le competenze PHP in un colloquio? [chiuso]

57

La mia azienda ha bisogno di assumere uno sviluppatore PHP, ma nessuno ha conoscenze di PHP nella mia azienda e troviamo difficile testare le competenze di PHP. Se fosse uno sviluppatore C / Java, gli chiederei di scrivere una rapida implementazione del Game of Life, ma PHP è una lingua completamente diversa.

Ho visto questo test con interesse:

link

Qualcun altro ha più suggerimenti?

    
posta Mascarpone 10.11.2011 - 00:07
fonte

3 risposte

70

Codice

  • Chiedi al candidato di scrivere il codice
  • Chiedi al candidato di leggere il codice

Se chiedi al candidato di scrivere il codice, assicurati che:

  • Il codice non è banale ma piccolo
  • Consenti l'accesso al manuale e a Internet

Se chiedi al candidato di leggere il codice, assicurati che:

  • Il codice ha alcuni errori banali
  • Il codice ha alcuni errori non banali
  • Il codice funziona bene, ma può essere facilmente ottimizzato

Puoi usare tre o più parti di codice diverse, iniziare da una più semplice e avanzare alla successiva solo se vedi che il candidato fa fronte con facilità. Getta in qualche ricorsione, per ravvivare le cose.

Risorse

Richiedi un elenco dettagliato delle risorse PHP che il candidato utilizza. Libri, blog, forum, riviste, ecc. Ecco come i miei attuali datori di lavoro hanno scoperto StackOverflow .

Se il candidato menziona StackOverflow o Programmatori, NON devi chiedere o provare a scoprire il loro nome utente. Se volevano pubblicizzare la propria reputazione, avrebbero incluso un link Careers 2.0 sul proprio curriculum.

Strutture

Ogni sviluppatore PHP dovrebbe conoscere i framework PHP più popolari:

ed essere fluente almeno in uno di essi. Puoi avere alcuni esempi di codice pronti per ciascuno e chiedere al candidato di leggerli e spiegarli, dopo che ti hanno detto con quale sono più familiari.

Debug e amp; Profiling

Ho sempre pensato che agli sviluppatori PHP mancassero capacità di debug e di profiling (forse solo gli sviluppatori PHP con cui ho lavorato). Se durante la discussione scoprite che il candidato utilizza attivamente xdebug , non preoccupatevi del resto dell'intervista e assumeteli. ;)

Disinfezione degli input

Questo è importante. Puoi iniziare con una discussione sul perché è importante e poi chiedere i metodi più comuni per raggiungerlo. Questa discussione ti aiuterà su cosa chiedere.

Alcuni suggerimenti:

PHP snafus

Puoi trovare molti PHP snafus in questa discussione eccellente . Se stai intervistando per una posizione di alto livello, dovresti assolutamente chiederne alcuni. Alcuni esempi:

Gestione di PHP di valori numerici nelle stringhe:

"01a4" != "001a4" // true
"01e4" == "001e4" // also true

Codice PHP valido :

System.out.print("hello");

In PHP, una stringa vale quanto un puntatore a funzione:

$x = "foo";
function foo(){ echo "wtf"; }
$x(); # "wtf"   

Test dell'unità

Devo aggiungere altro?

Conclusione

Un buon sviluppatore PHP dovrebbe combinare una varietà di abilità e amp; talenti:

  • Una buona conoscenza di HTTP
  • Una buona conoscenza della configurazione di Apache (anche se si utilizza un server Web diverso nella propria azienda)
  • Almeno una conoscenza di base di JavaScript
  • Ottima conoscenza di HTML / CSS

L'elenco potrebbe continuare all'infinito. Assicurati di adattare l'intervista alle esigenze specifiche dell'apertura del lavoro, non vuoi assumere solo un buon sviluppatore, ma un buon sviluppatore che è bravo in quello che hai immediatamente bisogno di lui / lei.

    
risposta data 10.11.2011 - 04:01
fonte
43

Il test a cui ti sei collegato è interessante e la risposta di Yannis Rizos è ottima, ma penso che sia anche importante è questo:

Se hai bisogno di un buon sviluppatore, non cercare uno sviluppatore PHP. Cerca un buon sviluppatore che conosca PHP. Ciò significa che almeno la metà dell'intervista dovrebbe porre domande che non hanno molto a che fare con la sintassi PHP o le funzioni PHP.

Chiedigli cosa è MVC, cos'è AJAX, come funziona HTTP, come funziona REST, come funzionano i join SQL, alcune strutture dati, alcuni concetti di base sulle prestazioni (come misurare, come migliorare), basi di test, nozioni di base sulla sicurezza (XSS , XSRF, iniezioni, come difendersi), conoscenze di base della programmazione artigianale applicate ai domini tipici di PHP: web, networking, trasformazioni di dati, ecc.

Se è bravo in questo, passa a chiedergli di scrivere un codice semplice, scegli qualche compito facile che non dovrebbe richiedere molto tempo, come trovare parole con la maggior parte delle vocali in fila nel testo o invertire ogni parola nel testo, o moltiplicando due matrici. Puoi anche chiedergli di implementare il gioco della vita in PHP, se ti piace:)

Se lo supera, allora puoi passare a domande più complesse su PHP, ma non mettere troppo peso in questo. Può leggere la maggior parte di esso nel manuale e ciò che non può leggere, imparerà abbastanza velocemente se è bravo. PHP è costruito per essere semplice, quindi se è un buon programmatore e ha una certa conoscenza di PHP, probabilmente sarà in grado di aggiornarlo. Se sa come programmare in generale, quindi imparare a programmare in PHP è più facile del contrario - conoscere la minutia della sintassi PHP non è importante se non si capiscono cosa sono i test unitari o come eliminare i problemi XSS.

    
risposta data 08.08.2012 - 09:05
fonte
12

La risposta di Yannis Rizos è buona, so che non avrei superato il test e potrei usa quella risposta come una risorsa per determinare dove concentrarsi per migliorare le mie costolette di PHP, penso che varrebbe la pena di trovare un compagno di programmazione che conosce PHP per partecipare al processo di intervista. Tutte le domande nella risposta precedente sono buone, ma senza alcune conoscenze di dominio sarà difficile valutare la qualità delle risposte.

Detto questo, a seconda di cosa hai bisogno in quanto altri hanno affermato che la facilità di programmazione generale e il team fit sono probabilmente più importanti della conoscenza specifica della lingua.

    
risposta data 10.11.2011 - 15:06
fonte

Leggi altre domande sui tag