GTLC全球技术领导力峰会·上海站,首批讲师正式上线! 了解详情
写点什么

要招到顶尖人才?那就开源你的代码吧

2018 年 11 月 26 日

要招到顶尖人才?那就开源你的代码吧

“你是否了解 Facebook 的开源软件过程?”


Facebook 开源项目前负责人 James Pearce 在了解工程师为什么要加入公司时,通常会问他们这个问题。Pearce 在 O’Reilly 开源大会的演讲中透露,有三分之二的 Facebook 工程师在加入公司之前就已经知道 Facebook 的开源项目过程,有一半的工程师表示:“这对他们决定加入 Facebook 起到了积极的作用”。


Facebook 在这个方面并不孤独。无论公司规模如何,开源代码对他们来说都是招聘到顶级工程师的最佳方式之一。我们分析了 AngelList 上有史以来应聘最多的 30 家美国科技公司,发现其中一半以上有提供开源项目:



但将开源项目作为招聘手段其实是一门艺术——你需要做的不仅仅是向 GitHub 发布代码。要想从开源代码中获得招聘方面的好处,你需要以营销人员的心态来对待每个项目。


1.编写任何工程师都读得懂的代码

开源软件的目的是让外部工程师能够看到它,并可能一起参与贡献。为此,代码必须让外部工程师能够看得懂。这意味着:


  • 重构你的代码,让它们尽可能简单;

  • 遵循名称、空格等样式约定;

  • 使用环境变量替代私有信息;

  • 注释好你的代码。


Atlassian 的 react-beautiful-dnd 项目(https://github.com/atlassian/react-beautiful-dnd) 就是一个用于在 React 中构建拖拽界面(像 Trello 那样)的工具,是这方面的一个很好的例子。


这个项目的结构是模块化的,代码加了很多注释,非常易于阅读:



在开源代码时,让阅读代码的人在没有看到代码库其余部分时仍然能够读懂它们——因为他们几乎肯定没有度过其余的代码。在上面的示例中,即使是一个简单的导出,Atlassian 的团队也用注释来解释每个函数的作用,选择能够准确反映它们的值的属性名称,并保持一致的样式。


这个代码库在 GitHub 上的 Star 数超过了 10,000,并且有数十个贡献者。道理很简单:外部工程师越容易理解你的代码,他们就越有可能参与贡献。


2.编写好的文档

文档就是你的销售说明。工程师一看到它,就相信你的项目是值得他们做出贡献的。文档需要:


  • 阐明项目的价值主张;

  • 阐明你对贡献者的期望;

  • 列出技术规格、依赖关系和许可;

  • 为特殊用例提供易于访问的参考资料。


Spotify 的 Annoy 是一个“搜索空间中接近给定查询点的点”的库,它在这方面就做得非常好。它的 README 文件种提供了安装说明、项目背景、代码示例、许可证、依赖项以及深入了解底层软件逻辑的信息。


它还提供了 Annoy 与其他库在速度方面的测试基准对比:



只需一页文档,工程师就可以获得所需的信息,以确定 Annoy 是否是他们想要参与贡献的项目。


3.像产品发布一样推广你的项目

2018 年,每天有超过 82,000 个代码库发布到 GitHub。要让你的代码库在众多其他产品中脱颖而出需要付出努力并制定好的战略,这与推出产品也有些相似的地方。为了提高知名度,请考虑在以下几个地方推广新代码库:


  • 高流量网站:Hacker News、Reddit、Tech Ladder;

  • 相关社区:Product Hunt、Gitter、Dev.to(注:AngelList 于 2016 年收购了 Product Hunt);

  • 相关频道:电子邮件、社交媒体等。


你还可以从其他营销策略中获得灵感。例如,Hack4Impact(一个为其他非营利组织开发软件的非营利组织)的团队在当地大学开设工程研讨会,要求学生使用他们的新库,增加早期的 Fork 和 Star 数。


对于需要从较小的领域招聘工程师的公司来说,推广代码库则更为重要。Wallaroo Labs 是一家帮助客户启动大规模数据运营的创业公司,他们的代码库使用了一种叫作 Pony 的语言。当这家公司于 2017 年和 2018 年之间公开所有代码时,开始进行大量推广、撰写博文、参加访谈,并在技术大会上介绍为什么他们要采用 Pony。


Wallaroo 工程副总裁 Sean Allen 表示:“与我们面谈的人中有相当一部分人是在使用 Pony 或对 Pony 感兴趣的同僚,我们的代码库是最大的公开 Pony 代码库。”


将你的代码库视为一种产品,并把你希望参与贡献的工程师视为你的市场。


为什么顶尖工程师需要开源

Artsy CTO Daniel Doubrovkine 说:“如果你想要招到最优秀的人才,公开性是必要的”。他解释说,原因在于“个人工程品牌对于个人贡献者来说真的非常重要。如今的工程师们不太愿意让他们的技能停留在一个地方而不能展示它们。他们希望提高可见度,而这样做可以给他们带来一些可见度。”


为了实现这个目的,Doubrovkine 让他的工程团队采用“默认”开源的工作方式——也就是说,除非工程师有理由不公开发布代码,否则就必须发布到公共代码库中。因此,Artsy 的大部分工程资料都是免费提供的。他说:“最好的公司将业务需求与个人贡献者的愿望结合起来,以创造他们的个人品牌”。


事实上,Artsy 的工程师需要公开分享他们的代码,并在代码中署名。在 Doubrovkine 的招聘宣传中,这些被作为一个卖点,而这一点对于其他公司来说也同样有参考意义。


GitHub 联合创始人 Tom Preston-Werner 说:“聪明的开发者喜欢与聪明的代码打交道。当你开源有用的代码,就会吸引到人才。”


英文原文:https://angel.co/blog/want-to-recruit-better-engineers-open-source-your-code


活动推荐


12 月 7 日北京 ArchSummit 全球架构师峰会上,来自 Google、Netflix、BAT、滴滴、美团 等公司技术讲师齐聚一堂,共同分享“微服务、金融技术、前端黑科技、智能运维等相关经验与实践。详情点击 https://bj2018.archsummit.com/schedule


2018 年 11 月 26 日 17:342925
用户头像

发布了 731 篇内容, 共 368.9 次阅读, 收获喜欢 1861 次。

关注

评论 1 条评论

发布
暂无评论
发现更多内容

找工作不得不知道的事

熊斌

认知提升 求职

大家看看我这个斜杠青年够斜吗?

伯薇

个人成长 斜杠青年 能力提升 好奇心 T型人才

虚拟化Pod性能比物理机还要好,原因竟然是这样!

亨利笔记

Kubernetes 容器 k8s vSphere pod

轻轻一扫,立刻扣款,付款码背后的原理你不想知道吗?

楼下小黑哥

支付宝 微信支付 支付系统 付款码

DDD 实践手册(3. Entity, Value Object)

Joshua

系统设计 领域驱动设计 系统架构 架构模式

科学治疗“知识焦虑症”

陈驰远

个人成长 知识管理

CEPH OSD Down故障分析与处理

木子

[计算机网络1]我所知道的关于TCP的一切

海神名

TCP 计算机网络 网络协议 原理

用 Vim 编辑 Markdown 时直接粘贴图片

mzlogin

vim markdown

我看拼多多黄峥:旧世界瓦解冰消

池建强

拼多多 黄峥

思维偏差与产品设计的关联思考

石君

产品设计 思维方式 安全产品设计

游戏夜读 | 做游戏选什么专业?

game1night

iOS Release 版本开启调试功能

liu_liu

ios release 调试

从Integer开始阅读JDK源码

指尖流逝

Java jdk源码

认识数据产品经理(一 数据产品经理的细分)

马踏飞机747

大数据 数据中台 数据分析 产品经理

leetcode1137:第 N 个泰波那契数

Damien

算法 LeetCode 斐波那契

Java并发编程系列——线程池

孙苏勇

Java Java并发 并发编程 多线程 线程池

企业如何选择物联网中台

老任物联网杂谈

物联网中台 IOT Platform 物联网平台

Netty 源码解析(五): Netty 的线程池分析

猿灯塔

动画设计的十个原则

养牛致富带头人

设计 动画

阿里29大开源项目看看你都用过哪些

Bruce Duan

每天一道 python 面试题 - Python中的元类(metaclass) 详细版本

志学Python

python 爬虫 python元类

我愿沉迷于学习,无法自拔(三)

孙瑜

深度思考 程序员人生 感悟

扩展Redis:增加Redis命令

心平气和

redis

百度开源项目

Bruce Duan

译文MapReduce:大型集群上的简化数据处理

海神名

mapreduce 译文 MIT 分布式计算

电商总裁被降级除名公司合伙人,土豆网创始人被前妻起诉,程序员该如何选择女朋友?

陆陆通通

程序员 蒋凡 女朋友 阿里 婚姻

高仿瑞幸小程序 02 创建Tabbar

曾伟@喵先森

小程序 微信小程序 前端 瑞幸

下一个阶段,就真的容易了吗?

ke_lv

生活

树莓派小车系列-直播

波叽波叽啵😮一口盐汽水喷死你

树莓派 ffmpeg 云直播 盐汽水 raspberry

架构师们必备的三三制需求分析思维模型

常平

DNSPod与开源应用专场

DNSPod与开源应用专场

要招到顶尖人才?那就开源你的代码吧-InfoQ