Domanda per l'intervista allo sviluppatore di software - Fiera o Ingiusta [chiusa]

10

Ho appena telefonato un'intervista con un'azienda per una posizione di sviluppatore software laureato e mi è stata posta la seguente domanda. Devo aggiungere che la società in questione non è un fornitore di database.

  1. Come funziona un ottimizzatore di query?

  2. Se un database si comporta male come useresti la performance registra per scoprire il problema.

Ho chiesto se fanno domande del genere a tutti gli sviluppatori di software candidati (laureati o esperti) in una prima intervista telefonica. Hanno risposto che gli piace testare la conoscenza dei loro candidati sullo sviluppo del database.

Voglio scrivere alla compagnia per dire che queste domande sono irragionevoli da chiedere a un'intervista di uno sviluppatore di software e chiedere che la mia intervista sia finita.

Vorrei verificare la ragionevolezza delle seguenti ipotesi

a) Queste domande non possono essere classificate come domande sullo sviluppo del database.
b) Penso che le domande siano appropriate per un'intervista al DBA ma totalmente irragionevole per un intervista con lo sviluppatore di software (esperto o meno).
c) La prima domanda riguarda solo un fornitore di database.
d) La seconda domanda non è corretta in genere gli sviluppatori di software non gestiscono i registri delle prestazioni del database poiché questo è il lavoro del DBA.

Forse alcuni di voi saranno così gentili da commentare le mie ipotesi o potrebbero avere altri suggerimenti, prima di scrivere alla compagnia.

    
posta 2 revs, 2 users 100%user607018 09.12.2011 - 07:35
fonte

22 risposte

85

Se fossi un intervistatore (che a volte sono) e ho ricevuto una lettera da un candidato che si lamentava che le domande erano ingiuste e volevano un ripensamento, vorrei ringraziare le mie stelle fortunate che abbiamo schivato quel proiettile e immediatamente spostato l'applicazione alla pila "scarto". Recitare in questo modo ti mostra solo di essere un lamentoso e di non avere l'attitudine "can do" che cerchi.

a. le domande erano ragionevoli per chiedere l'argomento dello sviluppo del database.
b. falsa. Qualunque cosa abbia a che fare con lo sviluppo del software è un gioco leale da chiedere. Tieni presente che ottenere una risposta errata non ti squalifica automaticamente per la posizione (o altre posizioni in azienda); potrebbe solo aiutarti a classificarti come qualcuno che non sarebbe il più adatto per un lavoro orientato al database.
c. falsa.
d. falsa. Prima di tutto, potrebbe non esserci DBA dedicato; in secondo luogo, uno sviluppatore di software deve essere consapevole di una vasta gamma di problemi che potrebbero influire sulle prestazioni (e accuratezza) e avere almeno una comprensione di alto livello della gestione del database.

Considera questo come una lezione che ci sono cose che ancora non conosci. Ora sai cosa studiare per la prossima volta.

    
risposta data 07.02.2011 - 21:36
fonte
17

Penso che sia una domanda giusta (e sembra una di quelle che Google probabilmente chiede). :) Il punto della domanda sembra NON testare veramente la tua conoscenza dettagliata delle query del database e simili, ma altro per vedere come ti avvicineresti e risolverei un problema. La capacità di eseguire un'attività che hai già svolto prima è necessaria, ma la capacità di pensare in piedi e affrontare un nuovo problema è un'abilità vitale.

Quando viene presentata una domanda del genere, se mi manca la conoscenza specifica del database dato, penso che inizierebbe una risposta equa, "Beh, non ho molta esperienza con quella tecnologia in specifici , ma in generale guarderei attraverso i log delle prestazioni per trovare le operazioni che vengono eseguite più frequentemente e tentare di classificarle in base al tempo di elaborazione, in modo da valutare quali operazioni sono le più costose e potrebbero essere dei buoni candidati per l'ottimizzazione. "

Non hai bisogno di conoscenze tecniche specifiche per la risposta sopra, ma mostra al tuo intervistatore che sei pronto a risolvere un nuovo problema.

    
risposta data 07.02.2011 - 21:39
fonte
16

Se non è giusto o meno equo, assumono quindi fanno le regole e possono chiedere ciò che vogliono (ok non tutto, ma quasi tutto;))

E se vuoi ancora il lavoro, non penso che ti farai un favore se li scriverai.

    
risposta data 07.02.2011 - 21:28
fonte
16

Una strategia molto comune nelle interviste di lavoro è quella di porre una domanda che va oltre il livello della posizione in cui viene intervistato e vedere come si insinua un candidato. Con le domande poste potresti ragionevolmente aspettarti di rispondere a qualcosa del tipo:

Well, my knowledge of databases is rudimentary but I think it goes something like this...

O anche:

Sorry that's well outside my expertise, I'd need to check on the details of performance logs with a DBA

In generale, mi aspetterei che i candidati di livello base abbiano almeno una conoscenza di base di come funzionano i database e hanno anche un atteggiamento "Non so ma cercherò di imparare".

Se avessi fatto un tentativo onesto e avessero terminato immediatamente la telefonata, avresti una vera ragione per sentirti sodo, ma come direi che dovresti imparare come apparire sicuro mentre ammetti che non lo fai conosci le cose.

    
risposta data 07.02.2011 - 21:39
fonte
12

Conosco intervistatori che non considerano un'intervista completa a meno che non riescano a trovare alcune domande tecniche semi-rilavanti a cui il candidato non può rispondere. L'obiettivo è vedere come il candidato si occupa di quel tipo di domanda.

Ammettendo che non lo sanno? Buono. Fare un giro / BS per una risposta? La porta.

    
risposta data 08.02.2011 - 02:14
fonte
9

IMO, sviluppatori di software e ruoli DBA non sono ben categorizzati in molte aziende. In genere, è necessario conoscere almeno alcune parti dei database se si è sviluppatori software. Quindi, le domande mi sembrano giuste, purché siano non chiesti per un più fresco.

    
risposta data 07.02.2011 - 21:34
fonte
8

Penso che sia giusto. Non lavoro presso un fornitore di database ma sapere come leggere i piani di query (e i registri delle prestazioni, in misura minore) è MOLTO importante. Sapere come funziona anche Query Optimizer.

In risposta ai tuoi punti elenco:

a) Huh? Certo, sono legati allo sviluppo del database e se stai scrivendo il codice e il tuo programma deve richiedere i dati, allora è rilevante.

b) Non proprio. Un DBA conosce meglio le risposte, ma uno sviluppatore buono dovrebbe conoscere anche una risposta. Non mi aspetterei una risposta molto dettagliata come da un DBA, ma mi aspetterei qualcosa. E se uno sviluppatore non lo sa, potrei semplicemente accettare come "chiederei al DBA di insegnarmi" se lo sviluppo era ancora relativamente nuovo per il lavoro sui database.

c) No, non lo è. È pertinente per tutti coloro che sono preoccupati per le prestazioni delle loro query di database. Se non ti interessa la velocità di esecuzione delle query, puoi ignorarlo. I tuoi clienti, che hanno prestazioni sempre peggiori sui loro siti web, d'altra parte, potrebbero non essere d'accordo.

d) Forse. Non tutti gli sviluppatori vedono i registri delle prestazioni, ma se c'è un problema ci si può aspettare che un DBA invii una e-mail alle parti pertinenti e spieghi il problema se non si sa come interpretarlo. Per lo meno, uno sviluppatore dovrebbe essere in grado di esaminare un piano di query e vedere i problemi di base (Full Table Scan = > Bad, Quick Index Scan = > Good).

Dato che sei appena uscito da scuola e potresti non aver coperto questa roba nelle tue lezioni, potresti rispondere dicendo "Vorrei parlare con uno sviluppatore o un DBA più anziano e chiedere assistenza per capire questo". Gli intervistatori potrebbero accettarlo dal momento che mostra come minimo che sei disposto a imparare cose nuove, poiché non hai ancora avuto l'esperienza per scoprirle. L'altra opzione è di andare e impararli da soli.

Buona fortuna per la prossima intervista!

    
risposta data 07.02.2011 - 23:28
fonte
7

Hanno perfettamente il diritto di chiedere ciò che vogliono. Potresti non aver coperto questi argomenti nel tuo curriculum universitario ma ciò non significa che gli altri intervistati non abbiano o abbiano sufficiente interesse per l'argomento ad andare oltre il curriculum. Stanno cercando il meglio. Spero che tu almeno abbia cercato di rispondere alle domande e non si sia messo sulla difensiva. Se fossi loro e ricevessi una lettera lamentosa da te, verrai inserito nella lista nera.

    
risposta data 07.02.2011 - 21:35
fonte
7

Lo sviluppo del software è una professione multidisciplinare. Non penso che ti verrà richiesto alcun chilometraggio per chiedere il rinnovo dell'intervista. "Ragionevole" in questo contesto è se una determinata azienda ti eliminerebbe dalla considerazione solo sulla base della tua mancanza di abilità DBA. Chiedere la domanda è perfettamente ragionevole.

Più progredisci nella tua carriera, più ne avrai bisogno. Se ti stai chiedendo perché uno sviluppatore di software dovrebbe preoccuparsi dell'ottimizzazione delle query, considera la progettazione dell'applicazione. I nuovi progetti spesso implicano discussioni sulla modellazione dei dati. Ciò porterà a discussioni sulla normalizzazione, che portano al lavoro di progettazione del database. I buoni principi di progettazione scendono fino all'implementazione. Disegni cattivi / inefficaci a livello architettonico hanno conseguenze che sono spesso costose da rimediare.

    
risposta data 07.02.2011 - 21:31
fonte
5

Il concetto di "fiera" non ha importanza qui. Questo è un colloquio di lavoro.

Non possono rifiutarti in base al colore della tua pelle, alla religione, all'etnia o ad altre cose simili. Ma possono rifiutarti per qualsiasi altro motivo, una ragione stupida come il colore delle scarpe che hai indossato durante l'intervista. E potresti mai sapere la vera ragione.

È importante essere resistenti durante l'intervista. Capisco l'inclinazione a sovra-analizzare, e l'ho fatto anch'io abbastanza spesso. Ma la cosa migliore da fare è accettare che la vita non sia corretta, e mantenere abbastanza interviste nella pipeline che non devi impiccare tutte le tue speranze su nessuno di loro.

    
risposta data 08.02.2011 - 04:57
fonte
5

Come altri hanno già detto, le domande sono completamente valide. Tuttavia, sarebbe strano se l'intervistatore decidesse se assumerti interamente sulla base di tali domande. Forse volevano ascoltarti ragionare su un argomento che potresti non conoscere, e questa è una tecnica di intervista valida.

Se I stava assumendo, non ti escluderei se dicessi "Mi dispiace, non so molto sugli ottimizzatori di query, ma posso imparare". Se ti ti escluderei se avessi iniziato a lamentarti delle domande, però.

    
risposta data 08.02.2011 - 14:32
fonte
5

Amico, lascia che ti dica: non c'è modo di aggirare i Database come sviluppatori di software. Ogni singolo progetto che ho coinvolto finora ha richiesto almeno la metà del tempo di sviluppo. La progettazione di DB è parte integrante dello sviluppo del software e più ne sai, meglio puoi risolvere il problema. Inoltre, non essere confuso dal tipo di domande e il contesto è molto. Il più delle volte, i datori di lavoro vogliono solo vedere se sei in grado di pensare in piedi per risolvere il problema a portata di mano o se hai la sicurezza di dire almeno qualcosa di sensato sull'argomento. Con il conseguimento del diploma, si rendono conto che in realtà dovranno trascorrere del tempo insegnandoti tutte queste cose, ma vogliono sapere se ne varrà la pena e il tempo. Rimani nitido e modesto!

    
risposta data 08.02.2011 - 15:19
fonte
5

I want to write to the company to say that these questions are unreasonable to ask at a software developer interview and to request that my interview be done over.

Che cosa pensi che succederà nel mondo se invii quella lettera? Immaginate che diranno "Hmm, questo candidato ha un punto: dovremmo riaverlo e chiedergli domande più semplici"? Ti garantisco che non lo faranno. In realtà, quello che faranno è passare la lettera e ridere.

Supera il tuo senso di diritto. Stai uscendo nel mondo reale.

Come pensi che le domande sui database siano ingiuste? Pensi che i programmatori non abbiano bisogno di conoscere i database, ma apparentemente questa azienda lo fa. Ecco perché stanno facendo le domande! Gli intervistatori non fanno domande solo per il gusto di farlo. Fanno domande per scoprire se sai le cose di cui hanno bisogno. Se non sai di cosa hanno bisogno, allora non sei la persona giusta per il lavoro.

Se non vuoi conoscere i database, va bene, ma non lamentarti se alcune aziende non vogliono assumerti. Non ti è dovuto un lavoro.

    
risposta data 13.02.2011 - 05:41
fonte
4

In che modo queste domande non sono giuste? Gli sviluppatori lavorano con i database. Non credi che dovrebbero almeno avere familiarità con i fattori che sono coinvolti nel rendere le query dei database efficienti e veloci? Non tutte le aziende dispongono di DBA interni ... e anche se lo fanno, questo non si assume la responsabilità di scrivere query efficaci dallo sviluppatore.

    
risposta data 07.02.2011 - 23:07
fonte
4

Se fanno le domande a tutti i candidati, allora sono giusti e finiti.

Non importa se tu senti che le domande sono appropriate alla posizione che conta solo se il potenziale datore di lavoro ritiene che sia appropriato - e se lo chiedono allora è probabile che lo facciano (sia perché rifletti le abilità richieste o perché hanno scoperto che le risposte che ricevono dicono loro cose interessanti sull'intervistato).

Infine, sembra che tu abbia delle strane idee sui limiti del mandato di uno sviluppatore - non ho mai (per quanto riesca a ricordare in una carriera di 25 anni) lavorare con un DBA dedicato ...

    
risposta data 08.02.2011 - 13:28
fonte
4

Guardando le domande, penso che questa potrebbe essere la mia azienda - chiediamo questo tipo di domande a OGNI candidato come parte di un colloquio telefonico. Sempre. Ci dà uno standard da cui lavorare.

La maggior parte delle risposte sopra lo riassumono abbastanza bene ...

a) Vogliamo persone con un'ampia esperienza e non persone che possono fare solo alcune cose.

b) Le domande sono lì per aiutarci a sondare le tue conoscenze, potresti non conoscere completamente la risposta (o del tutto) le domande sono un punto di partenza per ampliare le tue conoscenze ed esperienze.

c) Ricorda che l'intervista è a nostro vantaggio E TUO ... dai tipi di domande dovresti essere in grado di avere un'idea del ruolo e della compagnia e se ci adattiamo a te e tu ti adatti a noi .. .

d) è un lavoro, se non riesci a superare l'intervista, cresci, smetti di lamentarti e prova meglio alla prossima intervista.

    
risposta data 09.12.2011 - 06:46
fonte
3

Sembra che non abbiano un DBA, quindi volevano che anche tu riempissi quel ruolo. Questo è normale per le piccole aziende.

    
risposta data 07.02.2011 - 21:31
fonte
3

Non vedo assolutamente nulla di sbagliato in questo. Perché non dovrebbe uno sviluppatore, soprattutto se finiscono a lavorare nel database, non essere a conoscenza di tali elementi?

Uno sviluppatore di software non dovrebbe essere a conoscenza del software di ottimizzazione o di come accedere ai log degli eventi delle applicazioni per capire un problema di prestazioni? In tal caso, perché non lo stesso per qualcuno che è uno sviluppatore di database? Perché non possono essere uno nella stessa?

Se intervistassi qualcuno per una posizione di sviluppo del software che includesse anche lo sviluppo del database, hai ragione, mi assicurerò che siano a conoscenza non solo di quello che stanno facendo, ma che possono aumentare le prestazioni del loro codice o codice esistente come database può essere un enorme collo di bottiglia.

Invece di sviluppare un atteggiamento, forse una migliore linea di condotta sarebbe stata "Non conosco la risposta, ma ecco cosa farei per trovarla".

    
risposta data 07.02.2011 - 21:35
fonte
3

Come altri hanno sottolineato, in un'intervista praticamente qualsiasi tipo di domanda è equo, purché non tocchi un'area legalmente protetta (ad es. età, razza, sesso, ecc.) e non è insolito chiedi agli intervistatori di farti delle domande solo per vedere come reagisci alla domanda e come andresti nel cercare di trovare una soluzione alla domanda. Inoltre, dal momento che sembra che tu sia un neolaureato, sono un po 'limitati riguardo alla possibilità di chiederti della tua esperienza lavorativa e di quale tipo di problemi hai risolto in un ambiente di produzione. Pertanto, se l'azienda fa un sacco di lavoro orientato al database, le domande poste potrebbero anche essere rilevanti per ciò che la posizione che stai intervistando farebbe.

Riguardo alle tue ipotesi:

a) Those questions cannot be fairly classified as database development questions.

Forse, forse no. Se stai facendo lo sviluppo del database, utilizzerai un ottimizzatore di query e pianifichi di tanto in tanto per assicurarti che non vi siano problemi evidenti con le tue query. Se la società ha amministratori di database o esperti in grado di esaminare le query, potrebbe non avere il tempo di esaminare tutto e inoltre non vorrebbe esaminare ogni query mal codificata. Allo stesso modo, non è inusuale che gli sviluppatori siano responsabili della manutenzione del loro ambiente di sviluppo, includendo qualsiasi database e che i DBA gestiscano il lato della produzione.

b) I think the questions are appropriate for a DBA interview but wholly unreasonable for a software developer interview (experienced or not).

Probabilmente sarebbero appropriati per un colloquio con il DBA; ma a prescindere, sono anche argomenti a cui uno sviluppatore dovrebbe avere familiarità se solo al livello di essere in grado di riconoscere dove potrebbe essere un problema e di eseguire autonomamente alcuni problemi di base. Come ho detto prima, se la società ha risorse limitate, vorranno assicurarsi che non sprecare tempo alla gente con qualcosa che potrebbe essere un problema di base.

c) The first question is only relevant to a database vendor.

I dettagli specifici possono essere specifici del fornitore, ma i concetti generali possono essere applicati ovunque e talvolta sono in grado di mostrarti che i concetti generali sono tutto ciò di cui hai bisogno. Se non vuoi essere bloccato in un singolo stack di sviluppo (cioè LAMP ) allora avrai bisogno essere in grado di mostrare durante le interviste che capisci i concetti fondamentali e sei a tuo agio nel passare a diversi stack di sviluppo.

d) The second question is not fair because software developers typically don't deal with database performance logs as that is the job of the DBA.

Questo è generalmente vero, ma se parte del tuo lavoro è scrivere un software per un dato database che deve essere altamente reattivo allora avrai bisogno di fare del tuo meglio per scrivere quelle query in modo che collega che è un esperto in una determinata area non è impantanato con domande scritte male. Anche se potresti non aver bisogno di conoscere i dettagli più fini di ciò che i registri ti dicono, potrebbe essere necessario identificare problemi ovvi.

Speriamo che tutto questo aiuti!

    
risposta data 08.02.2011 - 15:02
fonte
2

Solo perché sei uno sviluppatore di softare non significa che tu debba solo conoscere gli argomenti dello sviluppatore di software. Avere una vasta gamma di conoscenze dalla gestione dei server alle tecnologie di database è in realtà un'abilità molto utile da avere come sviluppatore. Non avrei problemi a chiedere questo tipo di domande ai candidati. Se non li prendono bene, bene, questo non li supera dalla lista (non mi aspetto che sappiano tutto), ma se sono in grado di rispondere, questo mi dimostra che lo sviluppatore è molto più di solo il tipico programmatore di abilità, e quelli sono una razza rara.

    
risposta data 07.02.2011 - 21:31
fonte
2

Ho anche una controversia simile con un potenziale datore di lavoro che mi ha fatto una domanda su un tombino. Ti chiedo, che cosa ha a che fare la forma di un tombino con la programmazione!

    
risposta data 07.02.2011 - 21:33
fonte
0

Risposte del modulo Beh, non sono sicuro, ma cercherò di farlo andando a e sono anche buoni. Nessuno pensa che tu sappia tutto ma essere in grado di cercare qualcosa è un'abilità chiave

    
risposta data 08.02.2011 - 16:57
fonte

Leggi altre domande sui tag