面試快結束的時候,我會有個習慣,問問這位同學是否有主持或者參與開源項目,如果有就告訴我項目地址。我會認真看這個項目的質量,只要不是臨時抱佛腳給自己貼金或者文末列出的例外情況,我都會在之前談好的待遇基礎上酌情再增加一些。
有些朋友可能會有相反的意見,覺得這個人做開源項目會耽誤正常的工作。恰恰相反,于公于私,都是好事。這不是情懷,這是出于最現實的考慮。
首先,參與開源項目代表了技術能力。
在當前中國互聯網公司激烈的競爭環境下,普遍加班嚴重。但他竟然在這種情況下還能有時間參與開源項目,說明能力的確強。把代碼結構化、模塊化做得好,把產品經理頻繁修改需求造成的時間浪費降到最低,而且自己會用單元測試,把時間都省下來了。“懶”,是工程師的美德。
不是誰都敢把自己的代碼放到 Github 這個“全球最大的同性交友社區”的。
爛項目沒人關注,爛代碼會一堆人罵,只會 Ctrl+C/Ctrl+V的碼農不敢貼。貼到這里的項目,所有人都會看到,會經受全球工程師的“考核”。自己寫的代碼會被拿來和各種同類項目比較,他就 會被催著逐步優化,越做越好。Github 已經成了技術能力的某種過濾器。
其次,主導開源項目代表了產品能力。
實際工作中,由于屁股坐的位置不同,產品和研發互掐是太正常不過的事情了。如果研發能從產品視角考慮一下某個功能,真正了解這個功能的目的并且一起討論出更好的實現方法,那絕對能讓產品小哥(或小妹)感動得痛哭流涕。功能更完善,而且還大大加快了項目進度。
這種產品能力從哪來呢?主導開源項目是其中之一。他自己做開源的時候,會分析大家可能需求什么,然后評估這個需求到底有多少人真正需要,然后動 手開發,并與關注該項目的人互動持續優化功能排除 bug。這不就是產品方法三段論么。他要是天然就有這能力,公司真的能節省大量溝通成本。
再次,參與開源項目代表了生活態度。
可能會有一種情況,工作實在是太清閑,無事可做才做了開源項目,就像“當年明月”寫《明朝那些事兒》。工作清閑的人那么多,為什么只出了一個“當年明月”?你在工作之余除了打游戲、刷微博、微信、調侃、網上閑逛之外,有主動提升自己能力的意愿么?
這個“主動”其實就是生活的態度?;驅ξ粗挛锍錆M好奇,或對將來生活水平有自己的期許,他無需外部壓力,自我驅動提升自己,參與開源項目就是 為了提高自己的能力。這樣的人,技術不會太差,而且愿意分享,對任何公司而言都是塊寶,他能夠帶動整個小團隊的氛圍。俗點說就是“正能量”。
很遺憾,我自己都沒能 100% 做到。這個期許有點兒高了。
例外情況
凡事都有例外情況,尤其是這兩種:
在未征得領導同意的情況下,私自把公司的保密代碼拿出來貼到開源項目里的;
把別人的開源代碼刪除 copyright 信息據為己有的。
這是個人品行問題,一旦發現就走好不送了。