Come valuteresti il ​​profilo Github di un programmatore? [chiuso]


54

Molte persone nella comunità open source affermano di considerare fortemente il profilo Github di un candidato durante l'assunzione.

Sono attivo su Github, con alcuni miei progetti e alcuni contributi ad altri. Ma guardando il mio profilo come se fossi un datore di lavoro, vedo molto rumore: progetti che ho clonato ma a cui non ho mai contribuito, ecc. I progetti e le patch di cui sono orgoglioso non si distinguono.

Se valuti i profili Github delle persone, come lo fai? E come sviluppatore, dovrei fare diversamente - ad esempio, eliminare i repository clonati su cui non sto lavorando attivamente?


1
Mi piacerebbe vedere i progetti che la persona si è avviata e quelli open source a cui ha contribuito. Il codice sorgente è una prova sufficiente della progettazione, delle capacità di codifica. La passione di lavorare su un progetto al di fuori del normale lavoro quotidiano indicherebbe anche la loro linea di preferenza. Alcuni suggerimenti per almeno iniziare sulla discussione di lavoro.
Abi,

3
Perché biforcare progetti se non hai intenzione di contribuire ad esso? Questo sembra accadere molto su GitHub. È per assicurarsi che il codice sorgente non scompaia quando l'autore originale decide di eliminare il repository?
Htbaa,

5
@Htbaa - a volte buco qualcosa in modo da poter dare un'occhiata al codice sorgente, pensando che potrei contribuire. A volte finisco per contribuire; altri no.
Nathan Long,

Risposte:


51

Ho usato i profili GitHub, i flussi di Twitter e i blog come indicatori di qualità nelle interviste di programmazione / selezione dei candidati. Tutti generano segnali diversi a modo loro.

9 candidati su 10 non hanno mai inviato una singola patch a un singolo progetto open source. Anche l'aggiornamento della documentazione non funzionante ti mette in un livello superiore di sviluppatore. Mostra che hai abbastanza familiarità con alcuni pacchetti open source per sapere cosa c'è che non va, ti preoccupi abbastanza per inviare una patch e i manutentori di quel pacchetto pensano che il tuo lavoro sia abbastanza buono per essere incluso. Come generalizzazione, mostra che prendi l'iniziativa di lasciare le cose sporche meglio di come le hai trovate.

Sembra davvero semplice, ma ancora 9 sviluppatori su 10 non si preoccupano mai di fare questo passo così importante.

Quindi una singola patch accettata ha un bell'aspetto. Una lunga storia di 2-3 semplici patch per trimestre è ancora migliore. Ancora meglio di quello sarebbe contribuire con qualcosa di interessante.

  1. Contributi sostanziali a importanti progetti Open Source (massimo 0,1% -1% dei candidati)
  2. Storia estesa di piccoli contributi a qualsiasi progetto (superiore al 5% dei candidati)
  3. Una singola patch di una linea per un pacchetto relativamente sconosciuto (10% superiore dei candidati)

Sulla stessa nota, gli sviluppatori che twittano sul bere e andare a vedere film tutto il tempo tendono a fare assunzioni mediocri. Un flusso di tweet in cui ogni terzo messaggio riguarda la tecnologia punta verso il tipo di sviluppatore di cani da ciarpame rabbioso che si prende cura della sua arte e persegue incessantemente soluzioni.

Anche il blog è un ottimo indicatore di qualità, ma per lo stile di comunicazione piuttosto che per il valore tecnico. Quanti programmatori si preoccupano di scrivere l'articolo n. 1 del blog? Lo stesso tipo di cutoff dell'1% / 5% / 10% si applica qui.


5
"Quindi una singola patch accettata ha un bell'aspetto. Una lunga storia di 2-3 patch semplici per trimestre è persino migliore." Dove vai dal profilo di qualcuno per vedere richieste pull accettate su progetti biforcati?
Nathan Long,

Nathan Long, immagino che se vai dai collaboratori, saresti in grado di vedere il suo nome?
MIdhun Krishna,

Sono arrivato a questa domanda, dato che hanno reso la ricerca più potente (non sono sicuro che fosse possibile prima) puoi fare una ricerca come questa: github.com/…
Garry Shutler,

2
"Sulla stessa nota, gli sviluppatori che twittano sul bere e andare a vedere film tutto il tempo tendono a fare assunzioni mediocri."
whatsisname

10

Come sviluppatore, non farei nulla di diverso nell'account Github. Non è un tuo problema che l'account Github non possa essere valutato rapidamente. E a rigor di termini non è nemmeno il problema di Github - è pensato per lo sviluppo di software collaborativo, non per la valutazione degli sviluppatori.

Dovrebbero esserci strumenti speciali per la valutazione degli utenti, lavorando con i dati di Github. Per ora, puoi utilizzare siti di terze parti. Ad esempio c'è http://coderwall.com - una rapida occhiata al profilo mostra se lo sviluppatore ha mai inviato una patch, se qualcun altro ha modificato il suo progetto, quante lingue usa ...

Un'altra opzione sarebbe quella di generare automaticamente tale riepilogo sulla tua homepage usando l'API Github: un elenco personalizzato di progetti con un numero di fork e watcher, l'ultima volta che sono stati aggiornati, ecc.


6
"Git non è pensato per la valutazione degli sviluppatori." Dillo a Andreessen Horowitz che ha appena investito $ 100 milioni in GitHub perché " Quando chiedo a tutti cosa usano per il reclutamento degli ingegneri, e tutti usano GitHub ".
Dico

8

Fai attenzione quando valuti i candidati in base a un profilo GitHub. GitHub non è un CV. Ci sono molti grandi ingegneri che non hanno profili appariscenti, per molte ragioni: potrebbero aver lavorato per società a codice chiuso o potrebbero dedicare più tempo ad altre attività come la famiglia, gli hobby, ecc.

Anche se un contributo a un progetto open source potrebbe essere un vantaggio per un candidato (come menzionato da @marshally), dovresti valutare e assumere alla vecchia maniera, parlando.

Alcuni riferimenti su cui mi sono imbattuto subito dopo aver letto questa discussione:


2
amen. Il tipo che ha sborsato un centinaio di progetti e ha inviato 1000 patch di documentazione non funzionanti non è il tipo che vuoi assumere, non avrebbe mai fatto nulla di utile. L'unico vero criterio è il vecchio stile che richiede tempo per parlare e capire qualcuno. Non importa quanto la cultura pop della nostra industria voglia trattare gli sviluppatori come robot, siamo ancora persone (beh, la maggior parte di noi)
gbjbaanb,

1
Non devi solo tenere conto delle statistiche del profilo GitHub. Puoi effettivamente guardare il codice per determinare se sono buoni programmatori.
Siyuan Ren,

5

Penso che puoi, devi solo prenderti un po 'di tempo extra per vedere se è effettivamente attivo su Github o no, guardando il suo flusso di attività.

Puoi vedere come le spinte, i problemi, ecc., Che sono un grande indicatore del fatto che è effettivamente attivo e sta lavorando a qualcosa, piuttosto che solo a scherzare.

Se qualcuno sta cercando di valutarti, dovrebbe guardare la tua "vera" immagine, il codice scadente e anche il buon codice. Ho intervistato di recente e l'intervistatore mi ha chiesto di aprire il mio account github, poi ha sfogliato uno dei miei repository, ha dato un'occhiata a un codice scadente che ho scritto un anno fa su una lingua che stavo imparando.

Quindi, mi ha chiesto, come puoi migliorare questo? Ho risposto correttamente a tutte le sue risposte, perché sapevo come migliorarlo, ma non mi importava davvero di sistemare quel progetto, perché era solo un progetto per me, da imparare.

Lo stesso vale con l'account stackoverflow.com. È più ovvio su SO poiché hai reputazione ecc.


4

Personalmente non vedo il valore guardando il loro profilo in sé. Come giustamente hai detto, tende ad esserci un rapporto di rumore abbastanza grande da non valerne la pena vagliarlo.

Di recente ho fatto domanda e sono stato escluso per il mio primo lavoro di sviluppo e ho pensato che il processo che usavano fosse molto giusto. Piuttosto che chiedere di profili e simili si sono concentrati sui progetti che ho scelto di elencare nel mio CV.

Ci sono davvero solo alcune cose che devi raccogliere da un candidato, le principali sono che possono svilupparsi, sono motivate e come spuntano. Tutto ciò può essere ottenuto da una pre-intervista o dal primo turno di discussione, questo potrebbe essere fatto telefonicamente o 1 ora di intervista in loco.

L'idea è di lasciare che il candidato parli e scoprire dove si trova la sua passione. Ho scoperto che questo stile più rilassato mi ha fatto aprire molto più che inviare il mio profilo per uno qualsiasi dei servizi che utilizzo in relazione allo sviluppo.

È stato bello non essere lanciato prima in un'intervista tecnologica. Sembrava che avessero l'atteggiamento giusto di trovare una buona "squadra" adatta e quindi valutare le abilità.


3
Concordo sul fatto che la personalità e la passione siano importanti, ma molte persone hanno scritto su quanto sia difficile determinare, come hai detto, "possono svilupparsi". Sembra essere una saggezza convenzionale (almeno, nel mondo di Ruby, dove lavoro) che leggere il codice di qualcuno sia il modo migliore per vedere cosa possono fare prima di un'intervista. Per andare ancora più in profondità, li porteresti dentro e accoppierai il programma con loro, il che mostra sia la loro personalità che la loro risoluzione dei problemi. Quindi non è né / o. Penso che il profilo di qualcuno possa essere uno strumento utile; la domanda, ancora una volta, è come valutarla.
Nathan Long,
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.