it-swarm.dev

Wie würden Sie das Github-Profil eines Programmierers bewerten?

Viele Leute in der Open-Source-Community geben an, dass sie das Github-Profil eines Kandidaten bei der Einstellung stark berücksichtigen.

Ich bin auf Github aktiv, mit einigen eigenen Projekten und einigen Beiträgen zu anderen. Wenn ich aber mein eigenes Profil betrachte, als wäre ich ein Arbeitgeber, sehe ich viel Lärm: Projekte, die ich geklont, aber nie dazu beigetragen habe usw. Die Projekte und Patches, auf die ich stolz bin, fallen nicht auf.

Wie gehen Sie vor, wenn Sie die Github-Profile von Personen bewerten? Und sollte ich als Entwickler etwas anderes tun - zum Beispiel geklonte Repos löschen, an denen ich nicht aktiv arbeite?

54
Nathan Long

Ich habe GitHub-Profile, Twitter-Streams und Blogs als Qualitätsindikatoren für die Programmierung von Interviews/Kandidaten-Screenings verwendet. Sie alle erzeugen auf ihre Weise unterschiedliche Signale.

9 von 10 Bewerbern haben noch nie einen einzigen Patch für ein einzelnes Open Source-Projekt eingereicht. Selbst das Aktualisieren defekter Dokumentationen versetzt Sie in eine höhere Ebene der Entwickler. Es zeigt, dass Sie mit einem Open-Source-Paket vertraut genug sind, um zu wissen, was falsch ist. Sie kümmern sich genug darum, einen Patch einzureichen, und die Betreuer dieses Pakets sind der Meinung, dass Ihre Arbeit gut genug ist, um aufgenommen zu werden. Als Verallgemeinerung zeigt es, dass Sie die Initiative ergreifen, um schmutzige Dinge besser zu hinterlassen, als Sie sie gefunden haben.

Es klingt wirklich einfach, aber 9 von 10 Entwicklern machen sich nie die Mühe, diesen wichtigen Schritt zu tun.

Ein einzelner akzeptierter Patch sieht also großartig aus. Eine lange Geschichte von 2-3 einfachen Patches pro Quartal ist sogar noch besser. Noch besser wäre es, etwas Bemerkenswertes beizutragen.

  1. Wesentliche Beiträge zu wichtigen Open Source-Projekten (obere 0,1% -1% der Kandidaten)
  2. Erweiterte Geschichte kleiner Beiträge zu Projekten (obere 5% der Kandidaten)
  3. Ein einzelner Einzeiler-Patch für ein relativ unbekanntes Paket (obere 10% der Kandidaten)

Aus dem gleichen Grund neigen Entwickler, die über das Trinken und das ständige Ansehen von Filmen twittern, dazu, mittelmäßige Einstellungen vorzunehmen. Ein Tweet-Stream, in dem jede dritte Nachricht über Technologie handelt, weist auf die Art von tollwütigem Schrottplatz-Hundeentwickler hin, der sich um sein Handwerk kümmert und unermüdlich nach Lösungen sucht.

Das Bloggen ist auch ein guter Indikator für Qualität, aber eher für den Kommunikationsstil als für die technischen Fähigkeiten. Wie viele Programmierer schreiben den Blog-Artikel 1? Hier gilt die gleiche Art von 1%/5%/10% Cutoffs.

51
marshally

Als Entwickler würde ich im Github-Konto nichts anders machen. Es ist nicht Ihr Problem, dass das Github-Konto nicht schnell ausgewertet werden kann. Und genau genommen ist es auch nicht das Problem von Github - es ist für die kollaborative Softwareentwicklung gedacht, nicht für die Bewertung von Entwicklern.

Es sollten spezielle Tools für die Benutzerbewertung vorhanden sein, die mit Github-Daten arbeiten. Im Moment können Sie Websites von Drittanbietern verwenden. Zum Beispiel gibt es http://coderwall.com - ein kurzer Blick auf das Profil zeigt, ob Entwickler jemals einen Patch eingereicht haben, wenn jemand anderes sein Projekt gegabelt hat, wie viele Sprachen er verwendet ...

Eine andere Möglichkeit wäre, mithilfe der Github-API automatisch eine solche Zusammenfassung auf Ihrer Homepage zu erstellen: eine benutzerdefinierte Liste von Projekten mit einer Reihe von Gabeln und Beobachtern, die zuletzt aktualisiert wurden usw.

10
Lukas Stejskal

Seien Sie vorsichtig, wenn Sie Kandidaten anhand eines GitHub-Profils bewerten. GitHub ist kein Lebenslauf. Es gibt viele großartige Ingenieure, die aus vielen Gründen keine auffälligen Profile haben: Sie haben möglicherweise für Closed-Source-Unternehmen gearbeitet oder verbringen mehr Zeit mit anderen Aktivitäten wie Familie, Hobbys usw.

Auch wenn ein Beitrag zu einem Open-Source-Projekt für einen Kandidaten von Vorteil sein kann (wie @marshally erwähnt), sollten Sie auf altmodische Weise bewerten und einstellen und sprechen.

Einige Referenzen, auf die ich kurz nach dem Lesen dieses Threads gestoßen bin:

8
defvol

Ich denke, Sie können, Sie müssen sich nur etwas mehr Zeit nehmen, um zu sehen, ob er tatsächlich auf Github aktiv ist oder nicht, indem Sie sich seinen Aktivitätsstrom ansehen.

Sie können sehen, wie Pushs, Probleme usw. ein großer Indikator dafür sind, dass er tatsächlich aktiv ist und an etwas arbeitet, anstatt nur herumzuspielen.

Wenn jemand Sie bewerten möchte, sollte er sich Ihr "wahres" Bild, den beschissenen Code und auch den guten Code ansehen. Ich habe kürzlich ein Interview geführt und der Interviewer hat mich gebeten, mein Github-Konto zu eröffnen. Dann hat er eines meiner Repos durchgesehen und einen beschissenen Code durchgesehen, den ich vor einem Jahr über eine Sprache geschrieben habe, die ich gerade gelernt habe.

Also fragte er mich, wie können Sie das verbessern? Ich habe alle seine Antworten richtig beantwortet, weil ich wusste, wie ich das verbessern kann, aber es war mir nicht wirklich wichtig, dieses Projekt zu reparieren, weil es für mich nur ein Go-to-Projekt war, um zu lernen.

Gleiches gilt für das Konto stackoverflow.com. Es ist offensichtlicher auf SO, da Sie Ruf usw. haben.

5
zengr

Ich persönlich sehe keinen Wert darin, ihr Profil an sich zu betrachten. Wie Sie zu Recht sagten, gibt es tendenziell einen Rauschabstand, der groß genug ist, um nicht durchgesehen zu werden.

Ich habe mich kürzlich beworben und war von meinem ersten Entwicklerjob ausgeschlossen. Ich fand den Prozess, den sie verwendeten, sehr fair. Anstatt nach Profilen und Ähnlichem zu fragen, konzentrierten sie sich auf die Projekte, die ich in meinem Lebenslauf aufführte.

Es gibt wirklich nur ein paar Dinge, die Sie von einem Kandidaten lernen müssen. Die wichtigsten sind, ob sie sich entwickeln können, ob sie motiviert sind und wie sie ticken. All dies kann aus einem Vorinterview oder einem Gespräch in der ersten Runde entnommen werden. Dies kann telefonisch oder 1 Stunde vor Ort erfolgen.

Die Idee ist, den Kandidaten sprechen zu lassen und herauszufinden, wo seine Leidenschaft liegt. Ich stellte fest, dass dieser entspanntere Stil mich weit mehr öffnen ließ, als mein Profil für einen der Dienste zu senden, die ich im Zusammenhang mit der Entwicklung nutze.

Es war schön, nicht zuerst in ein technisches Interview verwickelt zu werden. Es schien, als hätten sie die richtige Einstellung, eine gute "Team" -Fassung zu finden und dann ihre Fähigkeiten zu bewerten.

4
DeanMc