Come posso testare le abilità PHP in un'intervista? [chiuso]


58

La mia azienda deve assumere uno sviluppatore PHP, ma nessuno ha conoscenze PHP nella mia azienda e abbiamo difficoltà a testare le competenze PHP. Se fosse uno sviluppatore C / Java gli chiederei di scrivere una rapida implementazione di Game of Life, ma PHP è un linguaggio completamente diverso.

Ho visto questo test con interesse:

http://vladalexa.com/scripts/php/test/test_php_skill.html

Qualcun altro ha più suggerimenti?


3
Test interessante, non copre l'iniezione di SQL, ma che certamente coprirei. Immagino che quel test sia un buon modo per testare la loro capacità di determinare la loro familiarità con il modo in cui PHP tratta le variabili e non molto altro.
Ben Brocka,

6
Qualunque cosa tu faccia, non porre domande riguardanti l'ortografia dei nomi delle funzioni standard. La denominazione della funzione PHP è così incoerente.
Chris C,


16
Mi preoccuperei meno delle loro costolette di PHP e di più se potessero programmare, lavorare con il team, capire la sicurezza del web, ecc.
Peter Loron,

12
Se nessuno della tua azienda conosce bene PHP, il modo migliore per te è utilizzare un servizio di test delle competenze. http://tests4geeks.com/test/php-mysql - Mi piace questo. E poi, se il risultato sarà buono, puoi chiedergli di scrivere del codice PHP. Ad esempio, ci sono studenti e materie nel database. Chiedigli di scrivere il modulo HTML, in cui il regista modifica i segni nella tabella (Gli studenti sono nella colonna di sinistra, I soggetti sono nella riga superiore, I segni sono all'intersezione).
Joseph,

Risposte:


71

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 presenta alcuni errori non banali
  • Il codice funziona bene, ma può essere facilmente ottimizzato

Puoi usare tre o più pezzi di codice diversi, iniziare da quello più semplice e passare a quello successivo solo se vedi che il candidato affronta facilmente. Getta un po 'di ricorsione, per rendere le cose più piccanti.

risorse

Richiedi un elenco dettagliato delle risorse PHP utilizzate dal candidato. Libri, blog, forum, riviste, ecc. È così che i miei attuali datori di lavoro hanno scoperto StackOverflow .

Se il candidato menziona StackOverflow o Programmatori, NON dovresti chiedere o provare a scoprire il loro nome utente. Se avessero voluto pubblicizzare la loro reputazione avrebbero incluso un link Careers 2.0 nel loro curriculum.

Frameworks

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

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

Debug e profilazione

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

Sanificazione in ingresso

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

Alcuni suggerimenti:

PHP Snafus

Puoi trovare molti snafus in PHP in questa eccellente discussione . Se stai intervistando per una posizione senior, dovresti sicuramente chiedere ad alcuni di questi. Qualche esempio:

Gestione PHP di valori numerici nelle stringhe:

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

Codice PHP valido :

System.out.print("hello");

In PHP, una stringa è valida come un puntatore a funzione:

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

Test unitari

Devo aggiungere altro?

Conclusione

Un buon sviluppatore di PHP dovrebbe combinare una varietà di abilità e 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
  • Una grande conoscenza di HTML / CSS

La lista potrebbe continuare all'infinito. Assicurati di adattare il colloquio alle esigenze specifiche dell'apertura del lavoro, non vuoi assumere solo un buon sviluppatore ma un buon sviluppatore che è bravo in quello che devi fare immediatamente.


22
Buona risposta in generale, ma non sono d'accordo sulla parte "framework" e sulla parte "performance di base". Che tu conosca un determinato framework o no, non dice molto sulle tue qualità di programmatore. Informazioni sulla parte delle prestazioni: se stai ottimizzando a questo livello, probabilmente non dovresti usare PHP in primo luogo. Faccio scelte tra le alternative che elenchi dozzine di volte ogni giorno, ma sempre in base alla leggibilità e funzionalità, non alle prestazioni. La risposta corretta a queste domande sulle prestazioni è "non importa la maggior parte delle volte".
Martedì

1
@YannisRizos: Anche se molto probabilmente rende più facile l'integrazione in un team, stai assumendo che nella società del PO utilizzino uno di questi framework popolari, ma se non lo sapessero, nessuno dei framework dimostrerebbe nulla. Forse intendevi questa parte come un modo per testare la sua capacità di lavorare con un framework piuttosto che con quei framework? (Indica il caso: nell'azienda per cui lavoro utilizziamo un framework sviluppato internamente)
Purefan,

2
@Petah Non ha alcun senso, soprattutto nella fase dell'intervista e eviterei di lavorare in un'azienda che chiede alle persone di rivelare informazioni del genere durante l'intervista. L'intero ragionamento "nascondere qualcosa" è perverso, imho, non mi interessa che il mio datore di lavoro sappia come trascorro il mio tempo libero, e questo è tutto. Se sono interessato a pubblicizzare il mio account Programmers per conto mio, questa è una storia diversa ...
yannis,

1
@Petah Beh, spero onestamente che i futuri datori di lavoro non provino a conoscere la mia personalità attraverso le attività dei miei programmatori (che vorrebbero trascorrere il 25% -35% del loro tempo con un mod nazista malvagio;)
yannis,

1
Non sono d'accordo con la cosa quadro. Una buona pratica moderna consiste nell'utilizzare i componenti applicabili dai framework utilizzando il compositore richiesto anziché utilizzare un intero framework. In effetti, lo stesso si può dire anche nel mondo JS ..
John Hunt,

44

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

Se hai bisogno di un buon sviluppatore non cercare lo sviluppatore PHP. Cerca un buon sviluppatore che conosca PHP. Ciò significa che almeno la metà del colloquio dovresti porre domande che non hanno molto a che fare con la sintassi PHP o le funzioni PHP.

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

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

Se lo supera, puoi procedere a domande PHP più complicate, ma non dare troppo peso a questo. Può leggere la maggior parte di esso nel manuale, e ciò che non sa leggere, imparerà abbastanza rapidamente se è bravo. PHP è progettato per essere semplice, quindi se è un buon programmatore e ha una conoscenza pratica di PHP, probabilmente sarà in grado di recuperare. Se sa come programmare in generale, quindi imparare a programmare in PHP è più semplice del contrario: conoscere la minuzia della sintassi di PHP non è importante se non capisci a cosa servono i test unitari o come sbarazzarsi dei problemi XSS.


13

Mentre la risposta di Yannis Rizos è buona - so che non supererei quel test e potrei usare quella risposta come risorsa per determinare dove concentrarmi per migliorare le mie costolette di PHP, penso che varrebbe la pena trovare una programmazione amico che conosce PHP per partecipare al processo di intervista. Tutte le domande della risposta precedente sono buone, ma senza una certa conoscenza del dominio sarà difficile valutare la qualità delle risposte.

Detto questo, a seconda di ciò di cui hai bisogno, come altri hanno affermato che la facilità di programmazione generale e l'adattamento del team sono probabilmente più importanti della conoscenza specifica della lingua.


5
+1 per I think it would be worth your while to find a programming buddy who knows PHP to sit in on the interview process., ottimo suggerimento.
yannis,
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.