Test di codifica pre-screening - Quanto è ragionevole? [chiuso]

20

Modifica

Dopo una buona dose di riflessione e auto-riflessione sull'argomento, mi sono reso conto che la maggior parte delle questioni sollevate in questa domanda proveniva solo da una prospettiva personale, piuttosto che professionale. Quindi i moderatori hanno messo questa domanda in sospeso a causa della natura altamente personale e soggettiva del problema di cui ho cercato di parlare. Stavo pensando di riformulare la domanda, ma non sono riuscito a trovare un modo per manifestare la domanda in modo più obiettivo, quindi può essere l'argomento di una discussione in cui è possibile eseguire il backup delle risposte con una sorta di evidenza o riferimento.

Per il bene di coloro che sono ancora interessati, sto cercando di dare un riassunto della discussione emersa da questa domanda:

  • un pre-colloquio di 4 ore, test di programmazione fuori sede non è usuale, ma
  • molte persone hanno sottolineato che per alcune società per le quali dovresti intervistare molto più a lungo di tutto questo
  • è una nostra decisione personale se facciamo un test o no, e possiamo valutarlo sulla base delle nostre circostanze e dei benefici percepiti dall'assunzione per l'azienda
  • tutte le società sono diverse, come lo sono le persone, e può essere perfettamente ragionevole per un'azienda impiegare un test offsite più lungo prima dell'intervista, se questo è ciò che si adatta alle loro esigenze o circostanze

Volevo che la mia domanda iniziale fosse su come ragionevole aspettarsi 4 ore da me, e su come etico dare un problema così la soluzione (non il codice, ma il design) può essere eventualmente utilizzato per l'azienda. Come ora posso vedere entrambe queste domande possono (al massimo) essere esplorate in una discussione sul forum, piuttosto che usare uno strumento di community di tipo domanda-risposta come stackexchange.

Tuttavia, ho trovato tutte le tue risposte preziose e grazie per la condivisione.

ORIGINAL POST

Sto intervistando per diverse posizioni e la maggior parte di esse include una fase di pre-screening in cui devo presentare un test di codifica prima dell'intervista telefonica o dell'intervista in loco. Mi sono praticamente abituato a questa idea, e trovo abbastanza ragionevole che le aziende si aspettino che io faccia così, in modo che possano verificare il tipo di lavoro che posso produrre da solo.

In generale, la mia esperienza è che questi tipi di esercizi di codifica sono per lo più piccoli compiti di programmazione. Fai qualche logica, magari implementa un piccolo algoritmo, apri un file e leggi / scrivi dati, cose del genere. Anche il compito più semplice può essere implementato con una buona separazione della logica, componenti testabili, ecc. Per vedere come il candidato sta codificando, in generale quanto bene è preparato per il tipo di lavoro che un'azienda vuole compilare.

Recentemente mi sono imbattuto in una società che mi ha inviato un test di codifica con una descrizione lunga tutta la pagina del loro esercizio, chiedendomi di risolvere un problema reale della loro attività (non voglio dire specifiche per proteggere l'azienda, ma il test era praticamente su quello che fanno). Hanno descritto un sistema piuttosto complesso da implementare, inclusi dati reali, e alla fine hanno concluso che il test di codifica non dovrebbe richiedere più di 4 ore .

È ragionevole che un'azienda si aspetti che io spenda 4 ore di lavoro sul loro incarico fittizio nel mio tempo libero, anche prima che mi salutino? (il reclutatore mi ha inviato il test di codifica)

Non fraintendermi, sono motivato a trovare un nuovo lavoro e nuove sfide, ma la maggior parte delle aziende si aspetta che io dedichi massimo 1-2 ore a un'attività del genere, e tali compiti sono sempre stati molto meno complicati.

Quello che sono venuto a concludere con questa società è che:

1) La mia motivazione non è buona e probabilmente stanno cercando qualcun altro

2) Non rispettano i loro futuri impiegati che si aspettano test di codifica così lunghi da fare anche senza dire ciao a loro

3) Vogliono solo dare uno dei problemi su cui lavorano e vedere se c'è un giovane entusiasta che lo risolverà gratuitamente (ancora una volta, non fraintendermi Non sono un teorico della cospirazione ma ho sentito storie del genere ...)

Quanto pensi sia ragionevole per un'azienda prevedere che i candidati passino il tempo con i loro test di codifica fittizi senza parlare con loro? Qual è la tua esperienza in generale?

    
posta Aston 31.07.2013 - 16:22
fonte

5 risposte

24

Permettetemi di prendere la parte della compagnia per un momento, dal momento che le altre risposte non hanno finora. Sarebbe quasi impossibile costruire una base di codice utilizzabile da un conglomerato di richieste di test di codifica della durata di 4 ore da parte di persone le cui qualifiche sono completamente sconosciute. La creazione di una specifica sufficientemente dettagliata, la verifica delle risposte e l'integrazione con il resto del codice richiederebbero più di 4 ore. Per non parlare dei progetti software di livello aziendale più utili richiedono migliaia di ore di lavoro. Il pensiero di creare un'impresa dividendolo in incrementi di 4 ore con settimane di tempo di consegna è francamente ridicolo.

Dare un vero problema alla vita aziendale è uno dei modi migliori per determinare se qualcuno sarà bravo a risolvere i problemi della vita reale dell'azienda. Lo faccio spesso nelle interviste (anche se chiedo i principi generali di progettazione e non le 4 ore di codice), e ogni volta è stato un problema che ho già risolto. Se non l'avessi già risolto, il test perderebbe quasi tutto il valore probatorio.

La validità di un test di 4 ore è una decisione personale. Mi è sempre stato insegnato a trattare il lavoro a tempo pieno come un lavoro a tempo pieno. Quando sei disoccupato o sottoccupato e trascorri 8 ore al giorno in cerca di lavoro, un test di codifica della durata di 4 ore non è nulla. Ho speso molto più tempo rispetto a compiti come spazzolare le lingue arrugginite, scrivere programmi di portfolio e personalizzare i curriculum per posizioni specifiche.

D'altro canto, alcuni dei migliori lavoratori sono già impiegati in modo redditizio e cercano solo casualmente opportunità migliori. È improbabile che le persone in quella situazione passino attraverso il rigamarole di un test di 4 ore, a meno che l'opportunità non sia stellare. Tuttavia, questo è il problema dell'azienda, non il tuo.

Per quanto riguarda il discernimento su cosa significhi l'atteggiamento della compagnia nei confronti dei propri dipendenti, non credo che si possa davvero dire qualcosa in ogni caso, a parte il fatto che sono probabilmente stanchi di trattare con candidati non qualificati, in misura disposto a buttar fuori parte del bene con il cattivo.

    
risposta data 31.07.2013 - 17:39
fonte
11

No, non tipico , perché stai risolvendo i loro problemi gratuitamente? (4 ore)

1 ora è tipico per un test di programmazione. In passato il nostro test di programmazione era composto da 4 domande. Le prime 3 domande hanno richiesto 1/2 ora, l'ultima 1/2 ora. Abbiamo anche sottoposto il test alle assunzioni esistenti in loco per assicurarci che fossimo nei tempi previsti e il test fosse equo e adeguato in modo conforme.

Le prime domande riguardavano il tipo "Fizz Buzz" per eliminare le persone che non possono programmare. Sono diventati progressivamente più difficili. L'ultima domanda era un esercizio di risoluzione dei problemi. In generale abbiamo cercato di limitare la quantità di codice scritto a poche centinaia di righe (totale) e non richiedere trucchi intelligenti. Abbiamo anche valutato le persone sulla gestione degli errori, lo stile, la sintassi, l'organizzazione, ecc. Le domande non erano legate alla nostra attività, ma piuttosto alle abilità e alla tecnologia su cui è stata scritta la piattaforma attuale.

In genere, i grandi candidati finivano in meno tempo di quanto era stato assegnato. A volte le persone hanno richiesto un tempo extra che ci è stato concesso a causa dello stress richiesto per fare un quiz, ma abbiamo limitato tutti a un certo limite. Il quiz si trovava nell'attuale ambiente di sviluppo e le persone avevano accesso a Internet per informazioni di riferimento. Abbiamo anche superato le aspettative del quiz per ogni candidato.

In una sola volta abbiamo discusso di incorporare la nostra base di codice (mondo reale) nel quiz ma alla fine abbiamo scartato ciò a causa di preoccupazioni che il codice copiato / rubato / etc (il nostro capo era un po 'paranoico). Alla fine siamo andati con un quiz.sln separato in un computer di sviluppo isolato.

Infine, abbiamo scoperto che era difficile trovare un test che fosse equo, ma né troppo difficile né troppo facile. Abbiamo sempre chiesto ai nostri candidati circa il quiz dopo averlo preso e ottenuto il loro feedback per perfezionarlo per futuri candidati.

    
risposta data 31.07.2013 - 16:42
fonte
8

Trovo che i test di codifica durante l'intervista siano comunque carichi di tosh. Nessuno codifica nulla se non la più semplice routine sotto pressione senza il solito ambiente e strumenti, quindi i risultati che ottieni sono dubbi al meglio.

Quello che ho trovato per essere davvero un buon test dell'abilità di un programmatore è di dargli qualche codice di progetto e chiedergli di rivederlo, funziona molto bene se il codice ha diversi errori evidenti, diversi problemi di codice ovvio e alcuni pratiche discutibili. Un buon programmatore ti dirà tutti loro e si impegnerà con te nella discussione sul perché alcuni codici non sono "sbagliati", ma potrebbero essere fatti meglio per facilitare la manutenzione. Un povero programmatore troverà un bug e si fermerà.

Qualsiasi lavoro che si aspetta che tu faccia un test che impiega più di mezz'ora non ha ancora impiegato così a lungo un test valido e mirato che fornisce loro più di una vaga idea delle tue capacità. (la maggior parte delle aziende trova molto difficile passare il tempo a lavorare sulla configurazione pre-intervista).

Se mi fosse stato dato un test come lo avresti fatto, avrei scritto la risposta in pseudo-codice. Questo dovrebbe essere sufficiente per dimostrare la mia comprensione della codifica e del design, senza passare attraverso l'intera fase di compilazione, compilazione e test di un normale progetto di lavoro.

    
risposta data 31.07.2013 - 17:35
fonte
3

Potresti non avere 4 ore, ma sicuramente qualcuno più interessato alla loro compagnia lo farà. Sono stato essenzialmente assunto in base a un compito simile che un'azienda mi ha chiesto di fare in anticipo sull'attività da solo. Apparentemente, scrivere codice pulito e comprensibile, casi di test approfonditi e documentazione progettuale comprensibile e coerente è un'anomalia. In realtà vedere qualcuno farlo fa esplodere le persone. Ad ogni modo, tutti quelli con cui ho parlato durante l'intervista mi hanno lodato per quello che ho fatto e ho avuto la sensazione di non aver impressionato nessuno nell'intervista perché avevano già deciso. Era semplicemente una questione di me non dare loro una ragione per dire di no facendo qualcosa di stupido.

Quindi, mentre sono d'accordo, 4 ore sono un investimento di tempo abbastanza grande, significa anche che il compito è di dimensioni sufficienti che hai l'opportunità di mostrare davvero di cosa sei capace. Il tuo lavoro molto bene può parlare più di quanto potresti mai in una situazione di intervista reale.

Come nota a margine: ho provato una cosa simile ultimamente ma usando un problema molto più piccolo e non sono stato soddisfatto dei risultati. Piccoli problemi sono banali per dimostrare abbastanza della conoscenza della persona. Inoltre, problemi banali tendono a richiedere alla persona di riconoscere qualche trucco / dettaglio necessario per risolvere il problema. Quindi, c'è un certo equilibrio tra l'assunzione di troppo tempo di una persona rispetto a non ottenere benefici reali perché il compito è banale. Penserei che un compito di 4 ore è probabilmente la giusta quantità di tempo per essere abbastanza complesso da consentire ai candidati di dimostrare le loro abilità e non essere così lungo che nessuno si preoccuperebbe.

    
risposta data 31.07.2013 - 22:19
fonte
1

Ho fatto un test di codifica della durata di 6 ore a un certo punto. Quando ho fatto questo test ho avuto abbastanza fiducia che sarei stato assunto - mentre si è avverato, non ero soddisfatto del follow-on.

Ovviamente avere un sacco di datori di lavoro che chiedono quattro ore è eccessivo. Ciò che la persona stava cercando nel test che ho preso è stato il mio stile di codifica: sono stato assunto perché il mio era "il più vicino" al suo. In questo contesto, guarda il problema da questa prospettiva: in primo luogo, è un problema interessante che la soluzione sia utile per te in ogni caso? Dopo tutto, potresti imparare qualcosa di prezioso.

In secondo luogo, se riesci a "passare" il test vuol dire che sei assunto? Se questo non è abbastanza ovvio, allora devi decidere se ci sono altri motivi per farlo comunque.

In terzo luogo, potrebbero stimare che ci vogliono "4 ore", ma potresti scoprirlo in modo diverso. Sanno davvero quanto ci vorrà? Molto probabilmente la risposta è no. Pertanto, continueranno a testare le persone con scadenze di 4 ore fino a quando non si renderanno conto che non si adatteranno in quattro ore. In quel caso stai perdendo tempo. L'approccio migliore è quello di diventare aggressivi con il gestore assumente, e capire se è necessario fermarsi a quattro ore e dare loro ciò che si ha, o continuare fino a quando non è fatto e dire loro quanto tempo ci è voluto. In breve, potrebbe esserci un test del personaggio racchiuso in questo, e il semplice tentativo di accettarlo alle loro condizioni potrebbe rivelare inesperienza.

    
risposta data 31.07.2013 - 21:58
fonte

Leggi altre domande sui tag