Quando essere un genio tecnico non è abbastanza per essere uno sviluppatore di successo? [chiuso]

18

C'è stata molta discussione intorno all'eccellente domanda " L'alta reputazione di Stack Overflow aiuta a ottenere un buon lavoro? ". Ho immediatamente concordato con JoshK che sostanzialmente ha detto " No " (Spiegherò perché), ma Joel sintetizzato in con molti fatti convincenti che mi hanno reso anche su di lui.

La mia domanda è quali altre abilità (oltre a essere un genio tecnico) richiedi da uno sviluppatore? Per ottenere il lavoro o mantenerlo .

Credo che essere un genio non sia abbastanza. Ho incontrato molti geni tecnici in varie aziende per cui ho lavorato e mi ha impressionato molto, ma purtroppo in molti casi sono stati semplicemente licenziati dopo pochi mesi o messi in torri d'avorio (principalmente a causa di un ammutinamento interno da parte di altri sviluppatori). Ho visto molti problemi personali come risultato di ciò che capisco.

Ecco perché sono un grande fan delle domande non tecniche per le posizioni tecniche. Mi piace sapere in che modo il candidato interagirà con gli altri (compresi i dipendenti non tecnici), quanta considerazione avrà per il business, se lavorerà per il risultato desiderato e così via.

Vorrei sapere cosa ti serve dai tuoi sviluppatori e PERCHÉ è importante (dopotutto, tu assumi qualcuno per scrivere codice, vero? Perché vuoi che lui essere assertivo?) . Idealmente, mi piacerebbe che ti presentassi una domanda di esempio da porre durante le interviste a sostegno della tua risposta.

    
posta Community 22.11.2010 - 12:53
fonte

9 risposte

22

Ottime capacità di comunicazione.

Se i tuoi colleghi non sono in grado di leggere il tuo cervello direttamente, dovrai essere in grado di dirgli cosa ne pensi. Preferibilmente sia verbalmente che scritti.

EDIT: un modo per vederli durante il colloquio può essere chiedendo loro quale sia il loro framework preferito per fare X e quindi dire che devono lavorare su un progetto in cui X potrebbe essere usato , ma è una decisione politica usare la tecnologia Y (che è chiaramente più vecchia e ha alcune limitazioni che X risolve).

Se questo finisce in una discussione sul perché la decisione politica è sbagliata, hai una strong indicazione che questa persona non sta andando bene con le decisioni pragmatiche.

    
risposta data 22.11.2010 - 13:06
fonte
15

Lavoro di squadra / comunicazione:

  • per essere in grado di spiegare le tue soluzioni oi tuoi problemi
  • essere in grado di lavorare con altre persone senza farle stare male (in alcun modo) - farle sentire lavorare con te è piacevole

Senza queste abilità, non puoi lavorare in team, e se non puoi, non sarai in grado di entrare in una società che lo richiede (e quasi tutti richiedono lavoro di squadra, naturalmente). Potresti ancora essere un freelance e lavorare su progetti a cui altre persone non devono lavorare, ma devi comunque comunicare con persone di altre società.

Anche per l'apprendimento, se non puoi comunicare con molte persone diverse, come sul web, allora potresti non essere in grado di fare meglio nella vita reale e nella società (qualunque sia il lavoro) è un handicap.

Modifica > Nell'intervista, il lavoro di squadra / socializzazione / comunicazione è davvero facile da controllare, potrebbe essere la cosa più semplice. Devi solo fare alcune domande, non tecniche, domande facili da rispondere o semplicemente domande su ciò che il candidato pensa a qualcosa o cosa piace o non piace al candidato in un dominio o in un altro. Fallo parlare. Vedrai.

    
risposta data 22.11.2010 - 13:04
fonte
15

La persistenza è un'abilità che non vedo menzionata molto. Ed è un'abilità: la capacità di farti lavorare attraverso un problema, anche se non riesci a vedere la fine. Molte persone non lo fanno; lavorano solo sulla quantità di moto, o semplicemente fanno il minimo per cavarsela. Sfortunatamente, non c'è modo di dire se una persona ha questa caratteristica parlando con loro. Hai davvero bisogno di essere in grado di parlare con gli altri che hanno lavorato con la persona. I riferimenti possono farlo, ma quell'opzione non è sempre disponibile.

    
risposta data 22.11.2010 - 14:49
fonte
12

Questi sono più tratti che abilità, ma probabilmente suggerirei che valga ancora la pena trovarli in qualcuno per diventare uno sviluppatore di successo:

La versatilità sarebbe un'altra caratteristica che avrei messo lì. A volte uno sviluppatore potrebbe dover ricoprire ruoli al di fuori dello sviluppo puro, ad es. analista, architetto o tester aziendale. So che ho avuto varie parti su progetti in cui sto facendo qualcosa di diverso dal progettare o scrivere codice e questo dovrebbe essere qualcosa da vedere in un altro. Non tutti possono accettare di assumere quegli altri ruoli. Chiedi quali tipi di situazioni ha avuto lo sviluppatore in passato in cui dovevano occupare un altro ruolo e in che modo si è rivelato.

L'umiltà sarebbe un altro che probabilmente metterei come requisito. L'ego può causare molti problemi in alcuni luoghi e non tutti possono accettare che ci possa essere qualcuno migliore di qualcosa di quello che sono. Se qualcun altro ha un'idea migliore, lascia che sia ciò che viene fatto. Potresti avere un campione del codice dello sviluppatore che chiedi loro di criticare e vedere quanto possono correggersi o meno.

Pride sarebbe un altro da mettere lì. Questo è in qualche modo in contrasto con la qualità precedente, ma se qualcuno non ha un senso di orgoglio nel suo lavoro che tipo di qualità pensi che sia? Non essere soddisfatto è leggermente diverso qui come probabilmente molti sviluppatori possono essere perfezionisti. Chiedi a quale progetto del passato si sentono più orgogliosi?

L'automotivazione sarebbe anche un'abilità importante da vedere. Cosa li guida? Quanto bene possono articolare questo? "Spazio ufficio" ha questa riga di Peter Gibbons:

Eight, Bob. So that means that when I make a mistake, I have eight different people coming by to tell me about it. That's my only real motivation is not to be hassled, that and the fear of losing my job. But you know, Bob, that will only make someone work just hard enough not to get fired.

È qualcosa su cui sospetto che molti sviluppatori e non sviluppatori possano identificarsi. Perché stai facendo il lavoro che fai? Questa può essere una buona domanda, ma cerca la sincerità e l'autenticità della risposta poiché a volte possono capitare delle risposte inscenate che è necessario individuare.

Curiosità sarebbe l'ultima nella mia lista da aggiungere. Il desiderio di vedere come funziona qualcosa, di apprendere nuove tecnologie e di uscire dalla propria zona di comfort, sono altri indicatori per questo che possono essere trovati in sviluppatori di successo. Un breve racconto su come uno si può sviluppare può essere un modo per vedere questa caratteristica, sebbene un altro sia quello di chiedere loro qualcosa che non hanno visto e vedere se hanno un "Beh, potrebbe essere interessante da esplorare" o un " Oh fratello, non ancora, "tipo di sguardo.

    
risposta data 22.11.2010 - 19:47
fonte
7

1) La comunicazione è probabilmente l'abilità più importante per chiunque, compresi i tipi di ingegneria del software. Quelle capacità comunicative sono ugualmente importanti per trattare con manager e clienti così come lo sono per trattare con i colleghi.

2) Il lavoro di squadra è un'abilità leggermente diversa che dipende molto dal primo. Essenzialmente, ho bisogno di determinare se la persona che sto cercando di assumere andrà a beneficio della squadra nel suo insieme, o ci saranno alcuni conflitti di personalità che potenzialmente sto assumendo. Nessuno può predire il futuro, ma non puoi ignorare i segnali di pericolo nel colloquio.

Una tattica che uso nel processo dell'intervista è chiedere alla persona di descrivere uno dei problemi tecnici più impegnativi (di cui possono parlare) e come li hanno risolti. Mentre parlano del loro processo di ragionamento e di come hanno scoperto il problema, puoi avere un'idea migliore di come possono comunicare su cose potenzialmente complicate. Se cercano un ulteriore aiuto nel processo, lo vedo come un vantaggio. Nessuno di noi è perfetto tecnologo. Se il problema che hanno scelto è diventato uno scontro di personalità (che è successo solo una volta), puoi passare o sondare un po 'più a fondo.

In molti modi il processo di intervista è come andare ad un appuntamento al buio. Entrambe le persone stanno facendo il loro lato migliore, cercando di capire se vogliono passare più tempo con l'altra parte. Più riesci a far fluire l'intervista come una conversazione, più rilassato sarà l'intervistato; e di conseguenza vedrai meglio se sono adatti.

    
risposta data 22.11.2010 - 14:21
fonte
6

Anche se è una qualità che può essere più applicabile al team che ai singoli sviluppatori, penso che ci sia molto dietro il detto: "I grandi ingegneri spediscono".

È qualcosa che sarebbe difficile da dimostrare in un'intervista per la maggior parte della gente, ma se stavo intervistando un candidato che, ad esempio, aveva creato e spedito una sostanziale applicazione open source, una libreria o un framework e poteva parlare in modo eloquente del qualcosa in più che serve per finire un progetto non banale, dovrei dare a quella persona una gamba sopra la sua competizione.

Al contrario, se un potenziale candidato mi ha indirizzato verso il suo account Github e ho visto che era pieno di progetti incompleti, buggati, trascurati o mal documentati, avrei una buona ragione per ignorare la sua candidatura.

"Il caffè è per i closer", come un uomo ha detto in un film una volta.

    
risposta data 22.11.2010 - 16:23
fonte
4

Le capacità comunicative e di lavoro di squadra sono importanti, ma vorrei aggiungere che essere in grado di comprendere le esigenze del cliente e acquisire conoscenza del dominio aziendale sono state anche molto importanti nella mia esperienza.

    
risposta data 22.11.2010 - 16:55
fonte
2

Sono d'accordo sul fatto che le comunicazioni siano di primaria importanza, ma ho sperimentato un fallimento in un eccellente programmatore che non avrebbe mostrato agli altri ingegneri l'uso dei suoi processi. Sono stato in grado di duplicare i suoi processi e mostrarli agli altri, ma senza il suo aiuto. È stato licenziato perché non voleva insegnare.

    
risposta data 22.11.2010 - 19:57
fonte
1

Non è mai abbastanza.

Senso comune. Problem Solving. Interesse per la tecnologia nel suo complesso. Atteggiamento di fare le cose nel modo giusto. Persistenza. Gioco di squadra / Comunicazione.

Valuta ogni abilità su 1-5. Se hai un minimo di 3 e in media 20+. Avrai una buona vita come sviluppatore. 25+ sarà uno sviluppatore di successo. Meno di 10 e hai bisogno di pensare seriamente a una carriera nello sviluppo del software.

    
risposta data 22.11.2010 - 18:47
fonte

Leggi altre domande sui tag