mercoledì 29 agosto 2012

Interviste agli sviluppatori - Approccio primo codice


Una delle sfide che ho visto persone che incontrano durante l'esecuzione dei progetti è che spesso finiscono con l'avere le persone nella loro squadra (molte volte vagliati da alcuni esperti) che non sono bravo a scrivere codice di qualità. Ci potrebbero essere molti argomenti che il codice scritto non è l'unica cosa che quando si lavora in un'organizzazione IT, ma ho osservato da vicino e costruito la mia teoria.
La maggior parte dei progetti che si eseguono o applicazioni che si costruisce non ci richiede di scrivere codice da zero. Il che significa, o qualcuno ha già scritto un po 'di codice (si intende anche il progetto esiste già) e stiamo estendendo le specifiche di progettazione, oppure semplicemente mantenendo solo quanto è necessario per mantenere i nostri utenti finali felice. Sviluppo del software, non è creato!
Sono sicuro che alcuni dei lettori avrebbe lavorato sul verde campo progetti e che non sarebbero d'accordo a quanto sopra detto. Io stesso, hanno lavorato su diversi progetti di green field, ma questi progetti sono molto rare da trovare. Il più delle volte, i progetti che sono sul punto di andare in pensione tendono a produrre green field progetti o progetti che si rivolgono a una serie distinta di requisiti che devono essere utilizzati per uno scopo specifico risultano essere green field progetti. Ma questo numero è piccolo. O metterlo in altre parole, il risultato ottenuto da questi progetti è inferiore.
Credetemi, le competenze necessarie per la progettazione di un verde campo di progetto sono gli stessi tenuti a mantenere una versione di un progetto "live". Ecco dove la cattura è. Progetti di manutenzione non sono più facili da sviluppare. La scrittura di codice all'interno dei confini del design creato da qualcuno è più complesso di definire i confini e la scrittura di codice al loro interno. Oh, certo che se non si desidera che il codice sia mantenibile, leggibile, scalabile e quindi non dobbiamo preoccupare di qualità del codice in un progetto di manutenzione.
Sviluppo del software, non è creato! E questa evoluzione richiede agli sviluppatori di essere in grado di scrivere codice, mentre svolgono altre attività di monitoraggio, rendicontazione e gratificante. E anche se voi oi vostri membri del team sono impegnati in qualsiasi attività non-sviluppo, essendo in grado di scrivere codice è il modo più semplice per affinare le tue abilità analitiche .
Quindi, con questa filosofia, preferisco i candidati che non necessariamente eseguire l'operazione di sviluppo su base regolare, ma in grado di scrivere codice, se la necessità di essere. Ora, non c'è bisogno di essere padroni del codice. Hai bisogno di essere logici-cracker e il "can-do" atteggiamento- man.
Quando intervistare un candidato di solito verificare le sue capacità di comunicazione e attitudine, tecnica e capacità d'analisi, se gli viene richiesto di scrivere codice, presentazione, leadership e capacità di assunzione di rischi per i ruoli senior e .... (Può essere un HR può aggiungere più qualità schermati).Ma tutti i ruoli è necessario che il candidato nella sana logica. Quindi, per la prova logica, preferisco dare un programma molto semplice per scrivere in qualsiasi lingua di loro scelta. L'inglese è anche una delle lingue!  Credetemi vedo respingimenti 40% in questa fase di colloquio. I candidati con competenze di nicchia a volte non sono in grado di pensare attraverso la soluzione. Forse è lo stress, o può essere, è che non si aspettavano una domanda così semplice. Per chiedere a qualcuno di scrivere il codice, non si sta verificando il loro sviluppo-quoziente. Invece si verifica se sono in grado di applicare la logica in problemi di scala minore o maggiore .
Come dire, una questione dei miei preferiti è,
Con semplici equazioni matematiche, scrivere un programma che cambierà due numeri
Ci sono diverse soluzioni a questo problema. Ma quando qualcuno utilizza più di 2 variabili, ti lasciano altra scelta che di respingere. Con 3 variabili, anche un 10-grade studente sarebbe in grado di scambiare 2 numeri. Che questa affermazione si riferisce al problema sta applicando la matematica che abbiamo imparato molto tempo fa.
Un altro semplice programma che io in genere chiesto loro di scrivere è,
Mentre si scorre 1 a 100, per ogni numero dispari di stampa "Pollici" e anche per stampare i numeri di "Up". Per un numero primo, stampare "ThumbsUp"
Un altro,
Se per ogni 3 passi che prendo avanti, prendo uno passo indietro. Quando ho incrociato un punto che si trova a 100 passi avanti a me?
E 'ancora una volta la matematica - nessuna conoscenza linguaggio di programmazione. E se si sta parlando di un candidato che conosce un linguaggio di programmazione, è meglio chiedere loro di scrivere un semplice programma di dire fattoriale, o la serie di Fibonacci. Non stiamo guardando risposte perfette qui. Stiamo esaminando il modo in cui analizzare un problema, il loro approccio, la loro disponibilità a fare qualcosa che non hanno fatto da tempo.
Quando discussione sulla progettazione del software ci sono ampi di domande disponibili su Internet e quasi tutti i candidati sarebbe andato attraverso di loro. Ma un problema in tempo reale può essere un googly alle menti più brillanti. Anche io ho affrontato un googly in una discussione che ho avuto qualche tempo fa. Ancora una volta, uno dei miei preferiti è puzzle di progettazione,
Abbiamo l'obbligo di costruire un tic-tac-toe gioco per 2 giocatori, X e O , che si alternano segnando gli spazi in una griglia 3 × 3. Il giocatore X di solito va per primo. Il giocatore che riesce a mettere tre punti rispettive in una riga orizzontale, verticale o diagonale vince la partita.
Se si dovesse progettare questo gioco (non si sviluppano), identificare le classi che si potrebbero creare?
La maggior parte dei candidati, qui, interpretano male la domanda. Iniziano a descrivere le interfacce ed ereditarietà avrebbero usato, o potrebbe iniziare con un'applicazione Windows e definire gli elementi dell'interfaccia utente come griglia, pulsanti, ecc Tutto è dato come risposta, ma i nomi delle classi.
Problema dichiarazioni potrebbero essere molte. Puzzle potrebbe essere infinita. Quando si stanno assumendo qualcuno, avere l'uomo che si poteva sedere oltre a te e sfida la logica e quoziente. Non uno che mantiene apprezzare la tua intelligenza!


Nessun commento:

Posta un commento

Nota. Solo i membri di questo blog possono postare un commento.